일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Kotlin
- Animation
- PagingLib
- MediaSession
- Koin
- mysql
- google play
- mvvm
- RxKotlin
- rx
- list
- SwiftUI Tutorial
- databinding
- SWIFTUI
- junit
- node.js
- Android
- liveData
- 테스트 자동화
- Observable
- Android 13
- android13
- MotionLayout
- Reactive
- 동영상
- GCP
- paging
- node
- MediaPlayer
- 인앱결제
- Today
- Total
목록Android (53)
봄날은 갔다. 이제 그 정신으로 공부하자
모든 Android 앱에는 측정 뷰와 그리기 뷰를 포함한 UI 처리, 사용자 상호작용 조정 및 수명 주기 이벤트 수신을 담당하는 기본 스레드가 있습니다. 이 Thread에서 작업이 너무 발생하면 앱이 멈추거나 느려진 것 같아 원치 않은 사용자 경험을 초래할 수 있으므로 비트맵 디코딩, 디스크 액세스 또는 네트워크 요청 수행과 같은 장기 실행 계산과 연산은 별도의 백그라운드 Thread에서 수행해야 합니다. 즉, 일반적으로 몇 밀리초 이상 걸리는 작업은 백그라운드 Thread에 위임해야 합니다. android 백그라운드 처리 작업은 Thread, AlarmManager, Service, Broadcast Receiver 등을 사용해 처리하였지만 너무 많은 앱 들이 서로 다른 방식으로 백그라운드 처리 작업을..
해당 글은 android DI 라이브러리 2번째 글로 여기에서는 google에서 최근 새롭게 선보인(2020-06) Dagger Hilt에 대해 설명합니다. Dagger Hilt와 Koin을 비교하는 것은 별도의 글에서 설명할 예정(안한다는 얘기를 돌려서하는 중...)이며, 여기에서는 Dagger Hilt에 대해서만 설명합니다. Dagger Hilt란? 의존성 주입(Dependency Injection)은 최근 Android 개발 환경에 있어서 가장 주목받고 있는 디자인 패턴 중 하나입니다. 많은 개발자들이 의존성 주입을 위해 Koin과 함께 Google에서 밀어주고 있는 오픈소스 라이브러리 Dagger 사용하고 있습니다. 하지만 Dagger는 annotation processing, 각 annotati..
android 앱 개발에 다양한 패턴(MVP, MVVM)이 적용되면서 DI에 필요가 증가하였고 현재 많은 android 앱들이 개발에 Koin이나 Dagger와 같은 의존성 주입 라이브러리를 사용하고 있습니다. 해당 글에서는 android 의존성 주입 라이브러리(Data Injection lib) 중 하나인 Koin에 대해 설명합니다. Dagger는 별도의 글에서 설명합니다. Koin이란? Koin은 Java로 구현된 Dagger과 달리 Kotlin언어로 개발된 DI 라이브러리이며, 순수 Kotlin으로만 작성되어있어 Proxy, Annotation 프로세싱을 통한 코드 생성, 리플렉션을 사용하지 않기 때문에 가볍습니다. Koin은 Kotlin에서 제공하는 DSL(Domain-Specific Langua..
초창기 android는 비지니스 로직과 View로직의 분리를 구조적으로 지원하지 않고 개발 구조를 개발자들에 위임하였습니다. 숙련도 있는 일부 개발자들은 높은 자유도를 활용해 높은 안정성에 우수한 성능을 자랑하는 앱을 개발하였지만 대다수의 개발자들은 비지니스 로직과 View 로직을 분리하지 않고 기능 개발에 급급했습니다. 그러다 보니 마켓에 배포된 앱들에서 ANR과 비정상 종료를 보는 것은 어려운 일이 아니었습니다. 이러한 문제를 개선하기 위해 google은 MainThread에서 Network 및 DB 엑세스 제한, 백그라운드 프로세스 실행 제한 등과 같은 많은 제한을 두어 이러한 문제를 해결하였지만 반대로 개발 난이도의 상승을 불러 일으키게 되었습니다. 이에 google은 개발자 지원 정책으로 다양한..
개발하면서 흔히 겪는 상황이 여러개의 화면을 한꺼번에 종료해야되는 상황 입니다. 아래와 같이 다양한 해결 방법이 있습니다. - Activity + Fragment 구조를 통한 해결 방법 - Activity간 Result 전달 방식을 사용한 해결 방법 - Task Affinity를 사용한 해결 방법 문제 해결 방식은 위 3가지 방식 말고도 몇가지가 더 있지만 대표적인 방법 3가지만 기술하였습니다. 아무래도 Task Affinity 방식 외의 방식은 여러개의 화면을 한꺼번에 종료하기에는 최적화 되지 않은 땜빵이라는 느낌이 강해서 해당 문서에서는 "Task Affinity를 사용한 해결 방법"을 중점으로 설명합니다. 나머지 두가지 방식에 대해서는 추후 기회가 되면 별도의 문서로 기술하도록 하겠습니다. (안한다..