Sobes.tech
Junior — Middle

Pode explicar o funcionamento da biblioteca Dependency Injection Koin em aplicações Android?

sobes.tech IA

Resposta da IA

O Koin é uma biblioteca para Injeção de Dependências (DI) no Android com Kotlin, que simplifica a gestão de dependências sem usar frameworks complexos.

Princípio básico de funcionamento do Koin:

  1. Definição de módulos — descrevem as dependências que o Koin fornecerá.
  2. Início do Koin — inicialização do contêiner DI na aplicação.
  3. Injeção de dependências — obtenção dos objetos necessários através do Koin.

Exemplo:

// Definindo um módulo com dependências
val appModule = module {
    single { Repository() } // singleton
    factory { ViewModel(get()) } // nova instância a cada vez, obtém Repository
}

// Na classe Application
class MyApp : Application() {
    override fun onCreate() {
        super.onCreate()
        startKoin {
            androidContext(this@MyApp)
            modules(appModule)
        }
    }
}

// Em Activity ou Fragment
class MyActivity : AppCompatActivity() {
    private val viewModel: ViewModel by inject()
}

Dessa forma, o Koin cria e passa automaticamente os objetos necessários, facilitando testes e manutenção do código.