[Hilt] 1.Hilt 개요

https://dagger.dev/hilt/ 1. Hilt Hilt는 안드로이드 애플리케이션에 의존성주입하는 Dagger의 표준적인 방법을 제공한다. Hilt의 목적은 다음과 같다. 안드로이드 애플리케이션을 위한 Dagger와 관련 기반 코드들을 간소화 한다. 쉬운 설정과 가독성/이해도 그리고 앱간 코드 공유를 위한 표준 컴포넌트, 스코프 세트를 생성한다. 다양한 빌드 유형에 대한 서로 다른 바인딩을 제공하는 쉬운 방법을 제공한다 Hilt 설계 더보기…

Android 11 새로운 점 요약(What’s new in Android)

 위의 영상을 요약한 내용입니다. 3가지 주제를 다룹니다. 안드로이드 11의 다양한 기능 플랫폼 외의 도구와 라이브러리 더 많은 정보를 얻기 위한 리소스에 대한 내용 Window Insets Window Insets은 화면에 대한 여러 정보를 가지고 있어, 같은 공간에서 컨텐츠가 잘 어우러지도록 할 수 있습니다. 예를 들어 키보드가 나오기 시작하면 화면 공간은 작아지고, 더보기…

글쓴이 Charlezz,

Jetpack 새로운 점 요약(What’s new in Android Jetpack)

 위의 영상을 요약한 내용입니다. 구글 안드로이드 소프트웨어 엔지니어인 이짓 보이어가 안드로이드 Jetpack에 대해서 설명을 시작합니다. 상위 1000개의 앱에서 47%가 두 개 이상의 Jetpack 라이브러리를 사용한다네요. Hilt Jetpack 설명하다가 바로 의존성 주입 이야기를 시작하며 Hilt라는 카드를 꺼냅니다. Hilt는 Dagger 기반의 안드로이드 전용 의존성 주입 라이브러리입니다. 구글이 Jetpack의 첫 소개로 Hilt를 더보기…

코틀린에서 Annotation Processor를 디버깅 하는 방법

코틀린에서 Annotation Processor를 디버깅 하는 방법 https://medium.com/@cafonsomota/debug-annotation-processor-in-kotlin-6eb462e965f8 아래에 나올 내용은 위 링크의 내용을 번역하고, 추가적인 내용을 덧붙인 글입니다. 코틀린 언어를 사용하면서 애노테이션 프로세서 다루는 경우 어떻게 디버깅을 할 수 있는지 알아봅시다. 로그 출력하기 어노테이션 프로세서가 컴파일 타임에 작업을 수행하는 동안 로그를 출력하기기 위해서는 ProcessingEnvironment.getMessager().printMessage(…)를 호출 해야 한다. ProcessingEnvironment 객체는 AbstractProcessor 더보기…

SavedStateHandle을 다루는 ViewModel을 위한 Dagger 설정하기

SavedStateHandle을 다루는 ViewModel을 위한 Dagger 설정하기 Warning : 이 포스팅은 ViewModel과 Dagger에 대한 내용을 다루고 있지만, ViewModel과 Dagger에 대해서는 설명하고 있지 않습니다.  자세한 내용은 이전 포스팅을 참고해주세요. Dagger2를 알아보자 AssistedInject란 무엇인가? ViewModel 초보를 위한 가이드 SavedStateHandle과 함께 ViewModel의 상태를 저장하자 예제코드 다운로드 build.gradle에 의존성 설정하기 //SavedState implementation “androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0” //Dagger2 implementation 더보기…

Dagger를 돕는 AssitedInject 무엇인가?

Warning : 이 포스팅은 Dagger2에 대한 이해가 필요하며, Dagger2에 대해서는 다루지 않고 있습니다. Dagger2에 대한 내용은 Dagger2를 알아보자편을 참조해주세요. AssistedInject란 무엇인가? Square에서 만든 수동 의존성 주입도구로 Dagger2와 함께 사용된다. 팩토리패턴(Factory Pattern)은 어떤 오브젝트를 생성하기 위한 패턴으로 매개 변수화 및 종속성을 결합하는 객체를 만들기 위해 잘 설정된 패턴이다. 팩토리는 불안정할 수 더보기…

글쓴이 Charlezz,

Dagger에 손가락 베이지 않도록 Hilt 등장

Dagger를 도와줄 Hilt라이브러리가 출시되었다 (아직 Alpha단계) https://proandroiddev.com/hilt-first-impressions-31f55cf57b3f 위의 아티클을 읽고 느낀 Hilt의 장단점을 정리해보았다. 힐트의 장점 힐트는 선택적으로 적용하는 라이브러리, Dagger 조작에 제한을 두지만 많은 보일러플레이트 코드를 제거할 수 있음 힐트는 컴포넌트 정의 필요 없음. 이미 정의된 컴포넌트 사용. 대신에 @InstallIn과 @HiltAndroidApp 어노테이션 사용 모듈에 @InstallIn을 추가적으로 더하고 어느 컴포넌트에 더보기…

글쓴이 Charlezz,

보일러플레이트 코드란?(Boilerplate code)

보일러플레이트란? 컴퓨터 프로그래밍에서 보일러플레이트 또는 보일러플레이트 코드라고 부르는 것은 최소한의 변경으로 여러곳에서 재사용되며, 반복적으로 비슷한 형태를 띄는 코드를 말한다. 보일러플레이트의 어원 보일러플레이트 코드의 어원은 신문사업에서 나왔다. 1890년대에 광고나 컬럼과 같이 계속 사용되는 텍스트 인쇄판은 부드러운 납 대신 강철로 찍기 시작했다. 이를 Boilerplate라고 불렀다. 1950년대까지 수천 개의 신문이 미국 최대 공급업체인 더보기…

SavedStateHandle과 함께 ViewModel의 상태를 저장하자

UI 상태 저장 및 복원의 필요성 안드로이드의 Activity는 시스템의 요청에 의해 언제든지 소멸될 수 있다. 사용자는 UI상태가 동일하게 유지되길 기대하기 때문에 Activity의 상태를 적시에 보존하고 복원하는 작업이 필요하다.  화면 회전 또는 멀티 윈도우 모드로 전환하는 것과 같이 Configuration이 변경되어도 사용자는 Activity의 UI상태가 그대로 유지하기를 기대한다. Activity는 Configuration이 변경되면 기존 Activity를 더보기…

ViewModel이란 무엇인가? ViewModel 초보를 위한 가이드

ViewModel이란? ViewModel이란 Android Jepack의 구성요소 중 하나로, 본래 ViewModel이란 이름은 소프트웨어 개발 디자인 패턴중 하나인 MVVM(Model – View – ViewModel) 디자인 패턴으로부터 파생되었다. MVVM의 관점에서 부르는 ViewModel과 Android Jetpack에 포함된 ViewModel 클래스를 구분하기 위해 흔히 Android Jetpack에 포함된 ViewModel을 Android Architecture ViewModel의 약자인 AAC ViewModel이라고 부르기도 한다. ViewModel은 왜 필요하지? 더보기…