Android/다양한 기능들(Library) 4

[Android] Type Safety Navigation With Compose

Compose에서 화면을 전환하기 위해서는 Navaigation 사용이 필수적이다.하지만 예전 버전의 경우 Route를 String으로 지정해줘야 하는 불편함이 있었다. 그런 불편함을 개선하고 새로 나온 Type Safety Navigation의 사용법과 주의점을 소개하고자 한다.    Dependencies"androidx.navigation:navigation-compose:2.8.0-beta04" // 2.8.0-alpha01 부터 가능"org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.0" // kotlin 2.0"org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3" // kotlin 1.9.22이렇게 두개..

[Android] Dagger Hilt, 제대로 알고 쓰자

Hilt가 뭘까??Hilt는 안드로이드 프로젝트에서 수동 의존성 주입 시 발생하는 보일러 플레이트를 줄이는 의존성 주입 라이브러리이다.Hilt는 Dagger가 제공하는 컴파일 시간 정확성, 런타임 성능, 확장성 및 Android Studio의 이점을 누리기 위해 인기 있는 DI 라이브러리인 Dagger를 기반으로 빌드되었다.  왜 쓰는 걸까??의존성 주입을 위해서는 많은 보일러플레이트가 존재한다. 이러한 보일러플레이트들을 줄이기 위해서 나온 것이 Hilt이다. 여러분들이 가장 많이 겪었을 상황을 아래 예시와 함께 보자.이렇게 ViewModel에 Repository를 Inject해주고 있다.이러한 코드를 사용하기 위해서는 ViewModel은 내부 파라미터를 지원하지 않기 때문에 반드시 DI를 해줘야한다. ..

Coil이 항상 옳을까? Coil vs Glide

왜 이 주제를 선택했을까? 얼마전 당근에 다니고 계시는 선배님과 잠깐 전화로 이야기를 나눌 일이 있었다. 내 이력서를 보시고 다양한 코멘트 들을 해주셨는데 그 중 “내가 사용하는 기술에 대한 명확한 근거가 있어야 한다”라는 내용이 있었다. 그 이야기를 듣고 생각해보니 난 그저 관습적으로 늘 쓰던 기술을 사용한 것 뿐이지 왜 그 기술을 사용 했는지에 대한 명확한 근거가 없었다. 그래서 내가 사용하는 기술과, 그 대체재를 찾아보고 명확한 근거를 수립하여 이후 프로젝트에서 사용할 기술을 정하고자 한다. 이번 글에서 비교해볼 주제는 “이미지 로딩 라이브러리”이다. Coil이란? Coil은 Kotlin Coroutines로 만들어진 Android 백엔드 이미지 로딩 라이브러리로, Cououtine Image Lo..

[Jetpack Compose] Coil - 이미지 로딩 라이브러리

코일이 뭘까? Coil은 Kotlin Coroutines로 만들어진 Android 백엔드 이미지 로딩 라이브러리로, Cououtine Image Loader의 약자이다. 근데 여기서 궁금한게 하나 생길 수 있다. 안드로이드에서 이미지를 로딩하는 라이브러리로 Glide라는 검증된 라이브러리가 있는데 왜 Coil을 쓸까?? 공식문서의 장점을 보자. 빠르다: Coil은 메모리와 디스크의 캐싱, 메모리의 이미지 다운 샘플링, Bitmap 재사용, 일시정지/취소의 자동화 등등 수 많은 최적화 작업을 수행합니다. 가볍다: Coil은 최대 2000개의 method들을 APK에 추가합니다(이미 OkHttp와 Coroutines을 사용중인 앱에 한하여), 이는 Picasso 비슷한 수준이며 Glide와 Fresco보다는..