본문 바로가기

IT/Android

8/30 read post

728x90
반응형

1.

출처 : https://medium.com/proandroiddev/enabling-cache-offline-support-on-android-using-room-4b82ae0c9c88

제목 : Enabling cache & offline support on Android using Room

요약 : 캐시를 room 으로 구현한 방법을 설명합니다. 데이터 흐름을 그림으로 설명하고 코드로 어떻게 data 를 가져오는지 설명합니다. force 가 아닐때는 database 에서 가져오도록 구현합니다.

 

2.

출처 : Animating RecyclerView items

제목 : Animating RecyclerView items

요약 : 리사이클러 뷰에서 아이템이 맨 위 또는 만 아래 영역에 들어가거나 나갈 때 애니메이션이 재생되도록 구현하는 법을 코드로 설명합니다. onScrolled 에서 margin과 top,bottom 위치로 체크를 하고 처음에는 전체 뷰에, 개량해서 viewHolder 를 통해 원하는 viewHolder 에만 적용하는 과정을 설명합니다.

 

3.

출처 : How to Use MediatorLiveData With Multiple LiveData Types

제목 : How to Use MediatorLiveData With Multiple LiveData Types

요약 : 하나의 항목이 아니라 여러 항목에 대한 정보를 얻고 싶을 때 liveData 를 이용하여 처리하는 방법을 설명합니다. MediatorLiveData 를 사용하여 같은 type의 liveData 뿐만 아니라, 다른 type 의 liveData 를 처리하는 pair, TripleMediatorLiveData 예제를 설명하고 이를 switchMap 으로 합치는 과정을 설명합니다.

 

4.

출처 : https://medium.com/better-programming/koin-a-kotlin-native-dependency-injection-library-8e13b81bd48e

제목 : Koin —A Kotlin Native Dependency Injection Library

요약 : Koin 모듈을 사용해서 특정 구성 요소와 관련된 종속성을 범위 지정하는 방법을 설명합니다. koin 에는 세자기 종류의 범위 single, factory, scoped 가 있는데 그중에서 scoped 를 사용하는 방법을 설명합니다.

 

5.

출처 : https://proandroiddev.com/why-you-need-use-cases-interactors-142e8a6fe576

제목 : Why you need Use Cases/Interactors

요약 : usecase 가 왜 필요한지에 대해 설명하고 있습니다. usecase 를 사용하면 아키텍처의 일관성과 향후 변경사항으로부터 코드를 보호할 수 있고, 비지니스 로직을 usecase 에 구현하여 usecase 만 보고도 문서없이 코드를 이해할 수 있습니다.

 

6.

출처 : KSP 맛보기

제목 : KSP 맛보기

요약 : KSP 를 활용하여 activity 에서 저장하고 복원하는 로직중 반복되는 코드를 처리하는 방법을 설명합니다. 각 클래스에서 변수에 어노테이션을 추가해 process에서 그룹화 해서 각 클래스마다 binding 파일을 만들어 처리하는 과정을 설명합니다.

 

7.

출처 : 코루틴 디스패쳐 조금 더 살펴보기

제목 : 코루틴 디스패쳐 조금 더 살펴보기

요약 : 코루틴 디스패쳐 중 Default 디스패쳐와 IO 디스패쳐에 대해서 설명합니다. 둘은 CorotineScheduler 라는 동일한 스케쥴러를 사용하고 내부적으로 어떤 과정을 거쳐서 스케쥴링이 되는지 설명합니다.

 

8.

출처 : https://proandroiddev.com/kotlin-coroutines-patterns-anti-patterns-f9d12984c68e

제목 : Kotlin Coroutines patterns & anti-patterns

요약 : 코루틴의 패턴과 안티패턴에 대해서 설명합니다. 2018년 글이라 다소 오래되어 현재와 안맞는게 있을수 있습니다. supervisorJob 을 사용하여 예외처리 하는 방법과 루트 코루틴은 main 디스패처를 사용하라고 권장하고, 불필요한 async/await 를 사용하지 말라고 설명합니다. 그리고 범위 작업 취소 방지 하는 방법과 암시적 디스패처로 suspend 를 구현하면 위험한 점, global scope 를 사용하지 말라고 설명합니다.

 

9.

출처 : https://proandroiddev.com/optimizing-nested-recyclerview-a9b7830a4ba7

제목 : Optimizing Nested RecyclerView

요약 : 중첩된 리사이클러 뷰에서 성능을 최적화 하기 위해 리사이클러뷰 풀을 공유해서 사용하는 방법을 설명합니다. 큰 예시없이 풀 설정하는 방법만 소개합니다.

 

10.

출처 : 콜드 플로우 효율적으로 사용하기

제목 : 콜드 플로우 효율적으로 사용하기

요약 : 내부적으로 버퍼를 생성하는 flow builder 나 operator 를 사용하면 provider는 collector 가 중단 되어도 데이터를 emit 하게 되어 비효율적일 수가 있습니다. 이 과정을 로그로 설명하고, 이에 대한 대안으로 repeatOnLifecycle, flowWithLifeCycle 이 있지만, 이것은 일시 정지가 아닌 취소하고 재수집이기 때문에 상황에 맞게 적절히 사용해야 한다고 설명합니다.

선정 : 내부 버퍼가 생긴경우 생산되는 데이터가 계속 동작한다는 사실을 알게 되어 선정합니다.

 

소요시간 : 4시간 이상

728x90
반응형