![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsUCJD%2FbtrQEH9D3VV%2FSpIdHGIpfk6aWnucm641pk%2Fimg.jpg)
안드로이드 [Kotlin] - 의존성 주입(DI) 알아보기 - Hilt
2022. 11. 7. 19:10
Android
📌 들어가며 의존성 주입은 객체지향 프로그래밍의 개념 중 하나이다. 이것을 이해하기 위해서는 객체지향 설계의 5대 원칙으로 불리는 SOLID 원칙에 대해 알아보아야 한다. 바로 직전 포스팅에 SOLID 원칙에 대해 정리한 글이 있으니 꼭 읽어보고 오기 바란다. https://jminie.tistory.com/179 OOP - SOLID 원칙 SOLID 원칙 단일 책임 원칙 (Single Responsibility Principle, SRP) 개방-폐쇄 원칙 (Open-Closed Principle, OCP) 리스코프 치환 원칙 (Liskov Substitution Principle, LSP) 인터페이스 분리 원칙 (Interface Segregation Principle, ISP) jminie.tisto..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV0pCS%2FbtrPlGrZoA0%2FYKGBR3Ki2sKbGPYvKVyY51%2Fimg.jpg)
안드로이드 [Kotlin] - WorkManager의 탄생배경과 활용
2022. 10. 24. 16:19
Android
🗒 WorkManager 이론 📌 안드로이드의 백그라운드 작업 실행 시점에 다른 분류 Exact Timing : 즉시 처리되어야 하는 작업 Deferrable : 처리를 위한 조건이 만족될 때까지 기다릴 수 있는 작업 실행 완료 여부에 따른 분류 Best-Effort : 처리를 위해 노력하지만 취소될 수도 있는 작업 Guranteed Execution : 앱이 종료되거나 기기가 재부팅되어도 수행되어야 하는 작업 안드로이드에는 위 표처럼 이미 백그라운드 Task를 처리하기 위한 많은 라이브러리들이 존재한다. WorkManager는 이 중에서 Defferd와 Guaranteed Execution의 작업들을 대체하기 위해서 탄생하였다. 그렇다면 이미 라이브러리가 존재하는데 왜 구글은 WorkManger를 새로..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkE9Nv%2FbtrNusCKrI7%2FGDVK3rGL6lIbwHTbTWy9O1%2Fimg.jpg)
안드로이드 [Kotlin] - ViewModel 파헤쳐보기
2022. 10. 3. 14:07
Android
Android ViewModel에 대해 알아보기 전에 우선 ViewModel이 왜 필요한 지부터 생각해보자. 📌 UI 상태 저장 및 복원의 필요성 화면 회전 또는 멀티 윈도우 모드로 전환하는 것과 같이 Configuration이 변경되어도 사용자는 Activity의 UI상태가 그대로 유지하기를 기대한다. Android Configuration이 변경되는 경우 언어 설정을 변경할 때 화면을 가로/세로 회전할 때 폰트 크기나 폰트를 변경했을 때 기기 서비스 국가가 변경되었을 때 등 위와 같은 경우 Activity의 onCreate() 콜백 함수가 다시 실행되기 때문에 데이터가 보존되지 못한다. 이를 대체하기 위한 첫 번째 방법은 onSaveInstanceState() 메서드이다. onSaveInstanceS..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcY6txD%2FbtrMDaITQ9b%2FbZVUFCTkJGUTKbWo8CP5dk%2Fimg.jpg)
안드로이드 [Kotlin] - Task와 Launch Mode 그림으로 이해하기
2022. 9. 20. 20:42
Android
안드로이드 시스템은 자동으로 Task를 관리하지만, Launch Mode를 통해 Activity가 Task에 관리되는 방식을 설정할 수 있다. 즉 Activity 실행 시 쌓이는 Task(Back Stack)에 대한 운영 방식을 우리가 설정할 수 있다는 뜻이다. 여기서 Task와 Back Stack의 차이를 공식문서에서는 이렇게 말하고 있다. https://developer.android.com/guide/components/activities/tasks-and-back-stack 작업 및 백 스택 이해 | Android 개발자 | Android Developers 일반적으로 앱에는 여러 활동이 포함됩니다. 각 활동은 사용자가 실행할 수 있는 특정 종류의 작업을 중심으로 설계되어야 하며 다른 활동을 시작..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNsjwy%2FbtrMjdzSTRb%2Fq6DY4UeKk6HpXUkJdXWzqk%2Fimg.jpg)
안드로이드 [Kotlin] - Paging3 사용기 (Room 데이터, 네트워크 데이터)
2022. 9. 18. 16:26
Android
📌 Paging이란? Paging이란 데이터를 가져올 때 한 번에 모든 데이터를 가져오는 것이 아니라 일정한 덩어리로 나눠서 가져오는 것을 뜻한다. 예를 들어 구글 같은 포털 사이트에서 검색을 할 때 모든 데이터를 한꺼번에 가져오는 것이 아니라 페이지 단위로 데이터를 가져오는 것을 볼 수 있다. 페이징을 사용하면 성능, 메모리, 비용 측면에서 효율적이다. 📌 Paging3 라이브러리 Android Jetpack에서는 페이징을 위한 Paging3 라이브러리를 제공하고 있다. Paging3 라이브러리는 로컬 저장소에서나 네트워크를 통해 데이터를 나누어 효율적으로 로딩할 수 있게 도와준다. Paging3 라이브러리는 구글에서 권장하는 Android App Architecture에 맞게 설계되어있다. 다른 Je..