본문 바로가기

IT/Android

9/28 read post

728x90
반응형

1.

출처 : JvmOverloads Annotation in Kotlin

제목 : JvmOverloads Annotation in Kotlin

요약 : JvmOverloads 어노테이션에 대해서 설명합니다. JvmOverloads 어노테이션을 사용하면 Java 에서 기본 파라미터 값을 대체하는 함수에 대한 오버로드를 생성하도록 컴파일러에 지시합니다.

 

2.

출처 : JvmField Annotation in Kotlin

제목 : JvmField Annotation in Kotlin

요약 : JvmField 어노테이션에 대해서 설명합니다. JvmField 어노테이션을 사용하면 코틀린에서 데이터 객체에 getter함수 없이 접근할 수 있는 것처럼 자바에서도 마찬가지로 getter 함수 없이 접근하도록 할 수 있게 해줍니다.

 

3.

출처 : https://itnext.io/an-update-to-the-fragmentviewbindingdelegate-the-bug-weve-inherited-from-autoclearedvalue-7fc0a89fcae1

제목 : An update to the FragmentViewBindingDelegate: the bug we’ve inherited from AutoClearedValue

요약 : jetpack lifecycle 에서 발생할 수 있는 버그에 대해서 설명합니다. addObserver 가 onStart 에서 불려지게 되는데 fragment 가 onViewCreate 된 다음에 바로 onDestoryView 를 타는 경우가 있습니다. CommitNow 를 사용하고 난 뒤에 detached 가 되면 이현상이 발생됩니다. 저자는 그래서 viewLifecycleOwnerLiveData 의 observeForever 를 사용하라고 권장합니다.

 

4.

출처 : ViewLifecycleLazy and other ways to avoid View memory leaks in Android Fragments

제목 : ViewLifecycleLazy and other ways to avoid View memory leaks in Android Fragments

요약 : 3번글에 있는 문제에 대해서 다른 방법을 제시합니다. AutoClearedValue 는 view 계층이 파괴될 때 하나 이상의 view 에 연결된 값을 자동으로 지우는 delegate 를 제공하는 것인데 여기에서는 ViewLifecycleLazy 라는 다른 대리자 및 방식을 설명합니다. 이 방법이 더 간단한 이유는 lazy 하게 등록되기 때문에 불필요한 코드가 필요하지 않고 readOnlyProperty 대신 inline fun Lazy 을 사용하기 때문이라고 설명합니다.

 

5.

출처 : Android BottomSheetDialogFragment with Callbacks to parent Fragment and transparent layer

제목 : Android BottomSheetDialogFragment with Callbacks to parent Fragment and transparent layer

요약 : bottomSheetDialogFragment 와 parent Fragment 간의 callback 을 통한 데이터 전송하는 코드 예제를 설명합니다. 생성자에 listener callback 을 전달하여 구현하는 방식입니다.

 

6.

출처 : Android Bottom Sheet —  How to use it in practice

제목 : Android Bottom Sheet — How to use it in practice

요약 : android bottom sheet 에 대해서 설명합니다. 구성요소의 상태는 state_collapsed, state_expanded, state_dragging, state_settling, state_hidden 중 하나의 상태를 가지며 app:behavior_hideable, app:behavior_peekHeight, app:behavior_skipCollapsed 의 동작 플래그를 가집니다. 이후 코드로 구현하는 방법을 설명합니다.

 

7.

출처 : Android ViewModels : Under the hood

제목 : Android ViewModels: Under the hood

요약 : viewModel 을 사용하면 configiration changed 가 일어나 activity 가 다시 생성되도 viewModel 이 유지됩니다. lifecycle 을 인식합니다. 프래그먼트 간에 데이터를 쉽게 공유할 수 있습니다. activity/fragment instance 를 유지하지 않으므로 메모리 누수를 방지하는 데도 도움이 됩니다. viewModel 이 구성변경시에도 유지되는 이유를 설명합니다. viewModel 이 직접 유지되지는 않고 내부적으로 viewModel 들의 map 인 viewModelStore 가 유지됩니다.

선정 : viewModel 이 유지되는 이유를 설명하고 있어 선정합니다.

 

8.

출처 : Android Image StartCrop and EndCrop Scaling

제목 : Android Image StartCrop and EndCrop Scaling

요약 : 이미지 scaleType 에서 제공하는 centerCrop 은 가운데만 잘리는데, 가운데가 아닌 양끝 각각 을 자르는 방법을 설명합니다. matrix scale type 을 이용하여 startCrop, endCrop 을 구현하는 방법을 설명합니다.

 

9.

출처 : Modern Android Architecture with MVI design pattern

제목 : Modern Android Architecture with MVI design pattern

요약 : MVI 는 공통적인 불변 상태를 가지고, 단방향 및 순환 데이터 흐름이고, 버그 수정이 쉽고, 코드 테스트가 쉽습니다. 단위 테스트로 어플리케이션의 모든 계층을 테스트 하는 기능도 가능합니다. 반면에, 2가지 약점이 있습니다. 다른 아키텍처에 비해 더 많은 상용구를 가지고 자료가 많지 않아 배우는 것이 더 어렵습니다.

 

10.

출처 : 뱅크샐러드 안드로이드 앱에서 Koin 걷어내고 Hilt로 마이그레이션하기 | 뱅크샐러드

제목 : 뱅크샐러드 안드로이드 앱에서 Koin 걷어내고 Hilt로 마이그레이션하기

요약 : Koin 을 사용하다가 hilt 로 마이그레이션 이유와 과정을 소개합니다. Koin 을 사용하다가 바꾸게 된 계기는 해당 컴포넌트가 모듈에 선언되어 있는지를 빌드 타임에 알수 없기 때문에 런타임에 문제가 발견되는 것 때문이었습니다. 힐트의 장점은 보일러 플레이트 코드를 줄이고 설정을 간소화 하고 테스트 하기가 쉽고 종속성 cycle 이 없다는 것입니다. 이후 마이그레이션 하는 과정을 설명합니다.

소요시간 : 2시간 40분

728x90
반응형