Sobes.tech
Junior — Middle

Дар проектҳои худ кадом асбобҳо ё китобхонаҳои Dependency Injection-ро истифода бурдед?

sobes.tech AI

Ҷавоб аз AI

Дар проектҳои Android одатан аз китобхонаҳои зерин барои ворид кардани вобастагиҳо истифода мешаванд:

  • Dagger 2 — як рамкаи DI статикӣ ва компилишудаи Google, ки дар марҳилаи компиляция кодро тавлид мекунад ва иҷрои баландро таъмин мекунад.
  • Hilt — як қабати болоӣ бар Dagger 2, ки истифода ва ҳамгироии он бо компонентҳои Android-ро содда мекунад.
  • Koin — як рамкаи DI сабук дар Kotlin, ки талаб намекунад, ки код тавлид шавад ва барои конфигуратсия осонтар аст, барои лоиҳаҳои хурду миёна мувофиқ аст.

Маслиҳат барои истифодаи Koin:

// Тартиби муайян кардани модул
val appModule = module {
    single { Repository() }
    factory { ViewModel(get()) }
}

// Инициализатсияи Koin дар Application
class App : Application() {
    override fun onCreate() {
        super.onCreate()
        startKoin {
            androidContext(this@App)
            modules(appModule)
        }
    }
}

// Ворид кардан дар Activity
class MainActivity : AppCompatActivity() {
    private val viewModel: ViewModel by inject()
}

Интихоби асбоб вобаста ба талаботи лоиҳа ва афзалиятҳои гурӯҳ мебошад.