-
Notifications
You must be signed in to change notification settings - Fork 0
Android Team Tech Stack
Dagger-Hilt
2.51.1
์๋๋ก์ด๋ ํ๋ ์์ํฌ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์๋๋ก์ด๋ ์ฃผ์ ์ปดํฌ๋ํธ๋ฅผ ๋น๋กฏํ ๊ฐ์ฒด๋ค์ ์์กด์ฑ์ ์๋์ผ๋ก ์ฃผ์ ํ๊ธฐ ์ํจ
-
์์ ์ฑ
- ์ปดํ์ผ ํ์์ ์์กด์ฑ ๊ทธ๋ํ๋ฅผ ๊ตฌ์ถํ๊ณ ๊ฒ์ฆํ๊ธฐ ๋๋ฌธ์ ๋ฐํ์์์์ ์ค๋ฅ ๊ฐ๋ฅ์ฑ ์ถ์
-
์๋
- ์ปดํ์ผ ํ์ ์ฒ๋ฆฌ๋ฅผ ํตํด ๋ฐํ์์ ์งํํ๋ ๊ฒ๋ณด๋ค ์ฑ ์คํ ์๋ ์ ์ด์ ํ๋ณด ๊ฐ๋ฅ
Annotation ์ฌ์ฉ์ ๋์ ๋ช ์์ฑ
-
์ด๋ ธํ ์ด์ ๊ธฐ๋ฐ์ผ๋ก ์์กด์ฑ ์ฃผ์ ๋ฐฉ์์ ๊ตฌ์ฑํ๋ ๋ฐฉ์์ ์ฅ์
- ํ์ํ ๊ณณ์ ์ด๋ ธํ ์ด์ ๋ง ์ถ๊ฐํ๋ฉด ์์กด์ฑ ์ฃผ์ ์ด ์๋์ผ๋ก ์ด๋ค์ง
- ์ ํด์ง ์ด๋ ธํ ์ด์ ๋ง ์ถ๊ฐํ๋ฉด ๋๋ฏ๋ก, ๊ฐ๋ฐ์๊ฐ ๋ช ํํ ๊ธฐ์ค์ผ๋ก ์ฃผ์ ๊ตฌ์กฐ๋ฅผ ์ ์ ๊ฐ๋ฅ
-
๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Koin ์ฃผ์ ๋ฐฉ์ : DSL ๊ธฐ๋ฐ ํจ์ ์ ์ธ
- Koin๊ณผ ๋น๊ตํ์์ ๋, ์ด๋ ธํ ์ด์ ๊ธฐ๋ฐ์ด ๋์ ๊ฐ๋ ์ฑ์ ๊ฐ์ง๋ค๊ณ ํ๋จ
์๋ฌ๋๊ฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ๋น ๋ฅธ ๊ตฌํ ์ถ๊ตฌ
-
Remote
- NetworkModule
-
Local
- DatabaseModule
- DataStoreModule
-
Data Source
- DataSourceModule
-
Repository
- RepositoryModule
-
๋ชจ๋์
object
๋ก ์ ์ํ๊ณ ๋ด๋ถ์@Provides
ํจ์ ์ ์โ ํ์ํ ์์กด์ฑ ์์ฑ ์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ, ๊ตฌ์ฒด์ ์ธ ๊ตฌํ์ฒด๋ฅผ ๋ฐํํ๋ ํจ์ ์ ์
@Module
@InstallIn(SingletonComponent::class)
object DatabaseModule {
@Provides
@Singleton
fun provideRecipeDatabase(
@ApplicationContext context: Context,
): RecipeDatabase = RecipeDatabase.getInstance(context)
@Provides
@Singleton
fun provideRecipeStepDao(recipeDatabase: RecipeDatabase): RecipeStepDao = recipeDatabase.recipeStepDao()
}
-
๋ชจ๋์
interface
๋ก ์ ์ํ๊ณ ๋ด๋ถ์@Binds
ํจ์ ์ ์โ ๊ฐ์ฒด์ ํ์ํ ์์กด์ฑ์ด ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ง ์๋ ๊ฒฝ์ฐ
@Module
@InstallIn(SingletonComponent::class)
interface DataSourceModule {
@Binds
fun bindAuthorizationRemoteDataSource(
defaultAuthorizationRemoteDataSource: DefaultAuthorizationRemoteDataSource,
): AuthorizationRemoteDataSource
@Binds
fun bindSessionLocalDataSource(defaultSessionLocalDataSource: DefaultSessionLocalDataSource): SessionLocalDataSource
}
-
๋ชจ๋ ์์กด์ฑ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ญ์ ์๋ช ์ฃผ๊ธฐ ๋์ ์ฑ๊ธํค์ผ๋ก ์ฌ์ฉ ์ค
- DataSource, Repository, Database, Network ๊ด๋ จ ๊ฐ์ฒด๋ค
-
๊ฐ ์ปดํฌ๋ํธ์ ์์กด์ฑ์ ๋ง๊ฒ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ ํ์์ฑ ๋จ์ด์ง
- ๋ฐ์ดํฐ ๋ ์ด์ด์ ์กด์ฌํ๋ ๊ฐ์ฒด๋ค๋ง์ ํ ๊ฐ์ฒด์ ์ฃผ์
- ํด๋น ๊ฐ์ฒด๋ค์ ์ด๋ ํ๋ฉด์์๋ ์ฌ์ฉ๋ ์ ์์ โ ์ ํ๋ฆฌ์ผ์ด์ ์๋ช ์ฃผ๊ธฐ ์ ์ญ์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ๊ฒฐ์