| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Abstract Factory
- compose
- 팩토리 메소드
- 추상 팩토리
- Design Pattern
- Singleton
- PrototypePattern
- Kotlin
- 빌터패턴
- 안드로이드 디자인시스템
- android designsystem
- 싱글톤
- define
- 코틀린
- ㅋㅁ
- 코루틴
- Functional Programming
- 옵저버 패턴
- designPattern
- builderPattern
- 디자인패턴 #
- Observer Pattern
- ㅓ
- Coroutines
- 함수형프로그래밍
- factory method
- 디자인패턴
- 프로토타입 패턴
- 추상팩토리패턴
- material3
- Today
- Total
목록전체 글 (339)
오늘도 더 나은 코드를 작성하였습니까?
Registration Fragment는 여전히 수동 종속성 주입을 사용하고 있으므로 지금 마이그레이션해 보자. EnterDetailsFragment와TermAndConditionsFragment가 모두 Dagger에 의해 주입되기를 원하기 때문에 AppComponent 인터페이스에 추가하여 Dagger에 알려야 합니다. AppComponent.kt @Singleton @Component(modules = [StorageModule::class]) interface AppComponent { ... fun inject(activity: RegistrationActivity) fun inject(fragment: EnterDetailsFragment) fun inject(fragment: TermsAn..
여러 가지 이유로 Component에서 동일한 종속성 인스턴스를 제공받을 필요가 있다. 1. 서로 다른 type들이 종속성을 주입받아 생성되어 제공될때 동일한 종속성을 주입받아야 하는 경우. 2. 객체를 만드는 cost이 많이 들고 종속성으로 선언될 때마다 새 인스턴스를 만들고 싶지 않은 경우. scope를 사용하면 동일한 객체를 Component로 부터 주입받을 수 있습니다. scope는 Component내의 제공받는 객체의 생명주기를 뜻합니다. scope를 Component가 주입하는 type에 지정한다는 것은 해당 type을 제공해야 할 때마다 동일한 인스턴스가 사용된다는 것을 의미합니다 AppComponent의 경우 javax.inject 패키지와 함께 제공되는 only scope annotati..
app이 실행되는 기간동안 Application Graph가 메모리에서 지속적으로 남아 있어야 하기 때문에. Application Class에 Dagger Graph를 생성해야된다. graph는 app의 생명주기에 영향을 받는다. 코드랩의 경우 Application Context를 주입을 필요로 하기 때문에 Application Class에 그래프를 생성한다. 장점으로 그래프는 다른 Android 프레임워크 클래스(해당 컨텍스트로 액세스할 수 있음)에서 사용할 수 있습니다. 테스트에서 사용자 정의 Application 클래스를 사용할 수 있으므로 테스트에도 좋습니다. Graph 인스턴스(예: AppComponent)를 MyApplication에 추가 open class MyApplication : App..
코드랩을 통해 구현할 application graph - 화살표는 객체간 종속성을 표기한다. - 애플리케이션 그래프: 앱의 모든 클래스와 그들 사이의 종속성 @Inject annotation - Dagger에게 이 type의 객체를 주입하는 방법(how)을 알려준다. - Dagger는 아래 코드에서 @Inject를 통해 registrationViewModel을 생성하기 위해 userManger이 필요한것을 알고, 또 userManger를 생성을 생성하는 방법또한 알아야한다. class RegistrationViewModel @Inject constructor(val userManager: UserManager) { ... } *kotlin에서는 주생성자 앞에 @Inject를 애노테이션을 붙이기전에 con..