# dagger hilt
[DI] Dagger Hilt
이전에 Dagger2를 이용하여 dependency injection을 하는 방법에 대해 알아보았습니다. Dagger2의 경우 Module과 Component를 정의하고 Component간 구조를 사용자가 일일이 정의를 해주고 마지막으로 Component를 생성하여 dependency들을 주입하였습니다. Dagger Hilt는 Dagger2를 보다 간편하게 사용하기 위해 boilerplate 코드를 줄여주어 간단하게 dependency injection을 할 수 있습니다. 해당 글에서는 Plugin을 이용한 Dagger Hilt에 대해서 다루며 Plugin을 사용하지 않은 Dagger Hilt는 아래의 GitHub 링크를 참고해주시면 됩니다. Plugin 없는 Dagger Hilt Component 구조와 Scope

DataStore 사용해보기
EditText에 작성된 데이터를 DataStore을 이용해 저장하고 GET Button을 눌렀을 때 아래에 있는 칸에 저장된 데이터를 가지고 오는 프로젝트를 설명하겠습니다. 사용기술 DataBinding MVVM Dagger-Hilt Coroutine build.gradle buildgradle(Module)에서 다음의 라이브러리 들을 추가 해줍니다. > 버전의 차이가 있을 수 있습니다. 그리고 DataBinding을 사용하기 위해 도 추가해줍니다. 그리고 plugins들도 추가해줍니다. 다음은 build.gradle(project)에서 dagger-hilt의 classpath를 넣어줍니다. > Android Studio의 버전이 바뀌었

[Android] Koin을 Dagger-Hilt로 변환하기
Koin < Dagger-Hilt ????? Koin사용법 안드로이드에는 DI 라이브러리로 Dagger, Koin, Hilt 등을 사용하는데 기존 프로젝트에 Koin을 사용하면서 느낀 건 런타임 에러를 잡기다는 거였다.. 그래서 기존의 Koin을 Hilt로 변경하기로 결정! 했습니다. 우선 Koin과 Dagger-Hilt의 장단점을 살펴보면 Koin 장점 러닝커브가 낮다 (쉽게 배울 수 있음) Kotlin에 최적화 되어 있음 단점 런타임에 인스턴스를 동적으로 주입하기 때문에 런타임 퍼포먼스가 떨어짐 런타임 에러가 발생할 수 있음 Dagger-Hilt 장점 Dagger2를 기반으로 만들어졌기 때문에 기존에 Dagger2를 사용하던 분들이라면 쉽게
Dagger-Hilt, 의존성 주입(Dependency Injection)
안녕하세요 이번에는 Dagger-Hilt와 의존성 주입(Dependency Injection)에 대해서 정리해볼려고 합니다. 부족하더라도 봐주시면 감사하겠습니다. Dependency Injection in Andorid 의존성 주입(Dependency Injection)은 Android 개발 환경에서의 디자인 패턴 중 하나입니다. 인스턴스를 클래스 외부에서 주입하기 위해서는 인스턴스에 대한 전반적인 생명주기의 관리가 필요합니다. 프로젝트의 규모가 커질수록 의존성 인스턴스들을 관리하는 것은 생각보다 많은 리소스가 요구되는데, 이를 전반적으로 관리해주는 것이 대표적으로 Google에서 밀어주고 있는 오픈소스 라이브러리 Dagger2 입니다. Dagger2는 자체적으로 Android와 크게 상관관계가 없지만 Android 환경에서 많은 인기를 끌었고, 이를 인지한 Google은 Android 환경에서 사용할 경우 자연스럽게 늘어나는 보일러 플레이트를 줄여주는 Dagge

Dagger Hilt
Dagger Hilt가 뭐야? 는 의존성 주입을 위해 사용하는 Android Jetpack의 라이브러리로 자동으로 수명주기를 관리해요. 정리 > 결합도를 줄이고 좀 더 유연한 코드를 작성하기 위해 사용하는 Android Jetpack의 라이브러리에요. Hilt 셋업을 위해 필수적으로 요구되는 과정 Hilt Application 를 사용하는 모든 앱에는 어노테이션이 있는 Application 클래스가 존재해야 해요. 은 컴파일 시 표준 컴포넌트 빌딩에 필요한 클래스들을 초기화해요. 정리 > Hilt를 사용하기 위해 필요한 클래스들을 초기화하기 위해서는 어노테이션이 있는 Application 클래스가 필수에요. Android 클래스에 의존성을 주입하는 방법 @AndroidEntryPoint 는 어노테이션이 있는 Android 클래스에 의존성을 주입할 수 있어요. 를 이용하여 Android 클래스