HiltHilt는 의존성 주입을 위한 라이브러리입니다.의존성 주입객체 간의 의존성을 외부에서 주입하여 코드의 결합도를 낮추고 테스트 가능성을 높이는 방법입니다.객체 생성과 의존성 관리를 프레임워크나 DI 컨테이너에서 처리하도록 위임합니다.DaggerHilt는 Dagger를 기반으로 빌드되었습니다.Dagger가 제공하는 컴파일 시간 정확성, 런타임 성능, 확장성을 사용할 수 있으며, 안드로이드 의존성이 있다는 특징이 있습니다.Hilt 애플리케이션Hilt를 사용하는 모든 앱은 @HiltAndroidApp으로 주석이 지정된 Application 클래스를 포함해야 합니다.애플리케이션 수준 종속 항목 컨테이너 역할을 하는 애플리케이션의 기본 클래스를 포함하여 Hilt의 코드 생성을 트리거합니다.@HiltAndro..
스터디 목적 DI의 원리를 이해하기 위해서 Dagger2와 Hilt 같은 의존성 라이브러리 없이 로그인 플로우를 구현하는 방식을 배운다. 의존성 라이브러리를 사용하지 않고 구현했을 경우, 차이점과 필요성을 알 수 있다. 우선 프로젝트 구조는 아래와 같다. [ Login Activity ] - > [ Login ViewModel ] - > [ UserRepository ] - > [ UserLocalDataSource ] - > [ UserRemoteDataSource ] - > [ Retrofit ] Login Activity에서 사용자가 데이터에 접근하면, Login ViewModel에 접근할 수 있다. Login Viewmodel은 userRepository를 생성해서 기능을 사용하게 되는데, use..
Hilt의 주요 Annotaion 1>HiltAndroidApp 기존의 컴포넌트 생성은 아래의 코드와 같이 onCreate()에서 컴포넌트를 인스턴스화 하였다. hiltAndroidApp 어노테이션만 추가함으로써 컴포넌트를 인스턴스화 할 수 있다. 이 때 의존성 주입은 super.onCreate()에서 이루어진다. 바이트코드 변환 때문에 onCreate에서 컴포넌트 인스턴스 생성이 가능해진다. HiltAndroidApp은 Hilt 코드 생성을 시작하고 반드시 Application 클래스에 추가해야 한다. [ByteCode Transformation] 바이트 코드 변환을 통해서 MemoApplication 클래스는 Hilt_MemoApplication을 상속받을 필요 없이, Application() 상속만..
학습 자료로 드로이드나이츠 인터넷 강의를 참고했습니다. https://www.youtube.com/@DroidKnights DroidKnights www.youtube.com 의존성 주입 ( Dependency Injection) 생성자 또는 메서드 등을 통해 외부로부터 생성된 객체를 전달받는 것 클래스간 결합도를 느슨하게 하며, 인터페이스 기반으로 설계뙤어 코드를 유연하게 한다. Stub 또는 Mock 객체를 사용하여 단위테스트를 하기가 더욱 쉬워진다. [ 의존성 주입을 사용하지 않은 경우 ] 의존성 주입이 없는 경우 아래 코드와 같이 데이터 베이스에 접근한다. 내부에서 자체적으로 데이터베이스의 객체 생성을 책임지고 있다. 아래와 같은 방식으로 인스턴스를 생성해서 저장된 메모리를 불러온다. [ 의존성 ..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.