| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- MVVM
- 코틀린
- 안스
- 안드로이드스튜디오
- 의존성주입
- studio
- coroutine
- Github
- DAGGER
- cursor
- Retrofit
- hilt
- 안드로이드 스튜디오
- Kotlin
- compose
- ADB
- build
- Android
- 깃헙
- 코루틴
- WebView
- RecyclerView
- 스튜디오
- 안드로이드
- Gradle
- 웹뷰
- error
- 에러
- 유튜브
- DI
- Today
- Total
목록DI (4)
코딩하는 일용직 노동자
안드로이드 개발을 하다 보면 **DI(Dependency Injection, 의존성 주입)**라는 벽에 부딪힙니다. "Dagger2는 너무 어렵다", "보일러 플레이트 코드가 너무 많다"는 이야기를 들어보셨을 겁니다.Google이 만든 Hilt는 이 어려운 DI를 아주 쉽게 만들어준 도구입니다. 오늘은 복잡한 이론 대신, **"배달 서비스"**에 비유해서 Hilt의 핵심 사용법을 딱 4단계로 정리해 보겠습니다.💡 Hilt 핵심 개념: "자동 배달 서비스"Hilt를 사용하는 것은 요리(객체 생성)를 직접 하지 않고, 배달(주입)시키는 것과 같습니다.나(Activity): "이거 갖다줘(@Inject)"라고 주문만 하면 됨.Hilt: 주문받은 객체를 문 앞까지 알아서 배달해줌. 1단계: 배달 앱 켜기 (초..
안드로이드 개발에서 Hilt를 사용하여 의존성 주입(Dependency Injection)을 할 때, 모듈(Module) 내에서 의존성을 제공하는 방법으로 `@Provides`와 `@Binds` 두 가지 애노테이션을 사용합니다. 둘 다 의존 객체를 제공하는 역할을 하지만, 사용 목적과 방식, 그리고 성능에서 차이가 있어 상황에 맞게 사용하는 것이 중요합니다.결론부터 말하자면, 인터페이스(interface)와 구현체(implementation)를 묶어주는 단순한 작업에는 `@Binds`를, 복잡한 객체 생성 로직이 필요할 때는 `@Provides`를 사용하는 것이 좋습니다.@Provides: 객체 생성의 모든 것을 책임진다`@Provides`는 Hilt가 직접 생성할 수 없는 타입의 객체를 어떻게 만들어서..
안드로이드 의존성주입에 Koin을 사용할때 Activity 와 그 아래 속한 하나 이상의 Fragment 에서 같은 ViewModel 을 사용할 필요가 있는 경우가 있습니다. 기존에는 by sharedViewModel() 을 이용하면 됐는데 이것이 deprecated 되었습니다. 이제는 by activityViewModel() 을 이용하도록 변경되었습니다. val weatherAppModule = module { // WeatherViewModel declaration for Weather View components viewModel { WeatherViewModel(get(), get()) } } class WeatherActivity : AppCompatActivity() { /* * Declare..
#의존성과 의존성주입(Dependency Injection, DI)이란? class Animal 이 있고, class Cat이 있습니다. 그리고 Cat 에서 Animal 객체를 생성했습니다. class Animal { ... } class Cat { val animal = Animal() } 코드에서처럼 Cat 이 Animal을 멤버로 갖고 있으므로 Cat 은 Animal에 강한 의존성을 가진 관계가 됩니다. class Cat(private val animal: Animal) { ... } fun main() { val animal = Animal() val cat = Cat(animal) } 이번에는 생성자를 통해 Animal객체를 주입해주었습니다. 이로써 클래스간의 관계를 더 약하게 만들 수 있습니다..