일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코틀린
- Android
- BOJ
- onMeasure
- onLayout
- recyclerview
- hilt
- room
- 알고리즘
- lifecycle
- AppBarLayout
- kotlin
- notification
- View
- Behavior
- 알림
- sqlite
- Coroutine
- HTTP
- 안드로이드
- LiveData
- 백준
- CoordinatorLayout
- activity
- Algorithm
- CollapsingToolbarLayout
- ViewModel
- Navigation
- DataBinding
- CustomView
- Today
- Total
목록Jetpack (2)
개발일지
Android에서 Jetpack Navigation Component를 사용할 때 Global Action을 RecyclerView ViewHolder에서 바로 findNavController를 사용하는 경우 종종 does not have a NavController set Exception이 발생한다. * Dialog에서 RecyclerView를 사용하는 경우 자주 발생한다. itemView.findNavController() 위에 문제를 발생하는 코드를 아래로 고치자. Navigation.findNavController(activity, R.id.nav_host) Hilt를 사용하여 DI 패턴을 적용하면 RecyclerViewAdapter에서 Activity나 Fragment를 쉽게 가져올 수 있다.

DataStore Jetpack DataStore는 SharedPreferences를 대체하기 위해 나왔다. DataStore는 Key-Value뿐만 아니라, Protocol Buffers를 이용하여 Object를 저장할 수 있고, 동기/비동기를 지원하며 IO에 대한 Exception도 제공하기 때문에 유연하게 코드를 작성할 수 있다. * Android Developer에서 복잡한 구조의 데이터는 Room을 사용해서 저장하는 것을 권장한다. SharedPreferences 단점 Key-Value 형태로 XML파일에 값을 저장하고 String 또는 Primitives 값만 저장할 수 있다. => 이를 해결하고자 JSON이나 XML형식의 String으로 저장하지만 Type Safety를 보장하지 않기 때문에..