일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- ColdStream
- 계층 분리
- SQLite
- 어댑터 효율적으로 사용하기
- android aac
- 클린아키텍처
- 안드로이드 스튜디오 구버전 다운받기
- 안드로이드 DB
- 앱개발
- koltin
- compose
- fragment
- 키보드 숨기기
- hilt
- 코틀린
- 뷰모델팩토리
- 안드로이드
- notifyDataSetChanged 대신 사용하기
- Clean Architecture
- list adapter
- error
- DI
- DiffUtilCallback
- 화면전환
- HotStream
- Kotlin
- Android
- 다른버전 다운로드
- 의존성주입
- notifyDataSetChanged 비효율
- Today
- Total
목록Android (30)
DoReMi

https://developer.android.com/codelabs/jetpack-compose-layouts?hl=ko&continue=https://developer.android.com/courses/pathways/compose?hl=ko#codelab-https://developer.android.com/codelabs/jetpack-compose-layouts#3 Compose의 기본 레이아웃 | Android Developers 이 Codelab에서는 Compose에서 즉시 제공되는 컴포저블과 수정자를 통해 실제 디자인을 구현하는 방법을 알아봅니다. developer.android.com https://developer.android.com/codelabs/jetpack-compose-th..

https://developer.android.com/codelabs/jetpack-compose-migration?hl=ko&continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fcompose%3Fhl%3Dko#0 Jetpack Compose로 이전 | Android Developers 이 Codelab에서는 뷰 시스템의 앱 화면 일부를 Jetpack Compose로 이전하는 방법을 알아봅니다. developer.android.com Compose 시작 xml과 compose와 같이 사용하기 xml 코드에서 compse로 바꿀 부분만 지우고 ComposeView를 추가한다. CompostView에 들어갈 Composable을 작성한다...

Paging이란?? 페이징이란 데이터를 가져올 때 한 번에 모든 데이터를 가져오는 것이 아니라 일정한 덩어리로 나눠서 가져오는 것을 뜻합니다. 예를 들어, 구글에서 어떤 키워드로 검색하게 되면 모든 데이터를 한 번에 가져오는 것이 아니라 10페이지씩 데이터를 가져오게 됩니다. 페이징을 사용하면 성능, 메모리, 비용 측면에서 굉장히 효율적입니다. Jetpack Paging Library Android Jetpack에서는 페이징을 위한 Paging3 라이브러리를 제공합니다. Paging3 라이브러리는 로컬 저장소에서나 네트워크를 통해 데이터를 나누어 효율적으로 로딩할 수 있게 도와줍니다. Paging3는 구글에서 권장하는 Android 앱 아키텍처에 맞게 설계되었으며, 다른 Jetpack 컴포넌트와 잘 동작..

Clean Architecture란? 클린아키텍처는 소프트웨어 시스템의 구조를 설계할 때 지켜야 할 원칙과 방법을 정의한 개념이다. 복잡한 소프트웨어 시스템을 보다 관리 가능하고 유지보수 가능한 형태로 구축하기 위한 지침을 제공한다. 클린아키텍처 사용 이유 각 계층이 분리되어 있기 때문에 한 계층을 변경해도 다른 계층에 영향을 미치지 않아 유지보수가 쉽다. 의존성을 주입하여 유닛 테스트 및 통합 테스트를 수행하기 용이하게 한다. 하나의 시스템의 각 부분을 독립적으로 개발하고 테스트 할 수 있는 환경을 조성한다. 시스템의 변경이나 업그레이드가 필요할 때 전체 시스템을 다시 작성하지 않고 특정 부부만 수정할 수 있다. 예시) Retrofit의 ConvertFactory를 Moshi Factory로 사용하는 ..
Hilt Hilt는 안드로이드에 쉽게 의존성을 관리할 수 있는 라이브러리이다. Dagger를 기반으로 만들어진 라이브러리이며, 기존에 많이 사용 되던 Dagger보다 훨씬 사용하기 편하다. 사용하기 프로젝트 수준 build.gradle buildscript { ... dependencies { ... classpath 'com.google.dagger:hilt-android-gradle-plugin:$version' } } 앱수준 build.gradle ... plugins { id 'kotlin-kapt' id 'dagger.hilt.android.plugin' } android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 ta..
뷰모델 팩토리란? 뷰모델 팩토리는 파라미터가 있는 뷰모델을 객체화 시키는 역할을 한다. 이는 UI-컨트롤러끼리 데이터를 주고받으면서 뷰모델에 어떤 인수를 넣어 초기화하고 싶을 때 뷰모델 팩토리를 이용해 초기화한다. 뷰모델 팩토리를 사용하는 이유 주로 커스텀한 생성 로직을 구현하거나 **의존성 주입(Dependency Injection)**을 쉽게 하기 위함입니다. ViewModelFactory를 사용하면 ViewModel 인스턴스를 생성할 때 특정한 매개변수나 초기화 로직을 적용할 수 있습니다. 적용 코드 View에서 ViewModel 선언 시 private val viewModel: HomeViewModel by viewModels { ViewModelFactory() } 이런식으로 ViewModelF..
ListAdapter? DiffUtil? 왜 써야하는데? 대부분 RecylcerView를 update하기 위해서는 notifyDataSetChanged() 라는 함수를 호출해서 사용했을 것이다. 하지만 notifyDataSetChanged()은 recyclerView의 데이터를 전체 다 업데이트 하게 된다. recylcerView의 데이터가 전부 교체되는 것이 아닌 1개만 변경되는 경우 상당히 비효율적이라고 볼 수 있다. 그래서 등장한 것이 ListAdapter와 DiffUtil이다. DiffUtil이란? 기존 RecyclerView Adapter가 하는 일 미리 생성해둔 뷰홀더 객체에 사용자가 원하는 데이터 리스트를 주입하고 데이터 리스트의 변경사항이 있을 때 이를 UI에 반영한다. RecyclerVi..

State Flow 왜 써야할까? State Flow란? StateFlow 는 현재 상태와 새로운 상태 업데이트를 collector에 내보내는 Observable한 State holder flow 입니다. StateFlow는 SharedFlow의 한 종류이며, LiveData에 가장 가깝습니다. 항상 값을 가지고 있고 오직 한 가지 값만 가집니다. 그러므로 초기값이 존재해야합니다. 여러 개의 collector를 지원합니다. 즉 flow를 공유할 수 있습니다. collector 수에 상관없이 항상 구독하는 것의 최신 값을 받습니다. Hot Stream 방식으로 collect할 때마다 flow가 재실행되지 않습니다. LiveData의 문제점 LiveData를 대신해서 StateFlow를 사용하게 되는 것인데..