0Pricing
Android Academy · Aula

Por que usar injeção de dependências?

Torne o código testável e modular.

Por que usar injeção de dependências? é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 4 aulas no total.

O que é injeção de dependências?

Injeção de dependências (DI) significa fornecer a um objeto os elementos de que ele precisa externamente, em vez de permitir que ele mesmo os crie.

O problema: dependências rígidas

Quando uma classe cria suas próprias dependências, ela fica fortemente acoplada e difícil de alterar ou testar.

class UserViewModel {
    private val repo = UserRepository(
        ApiClient(), AppDatabase.get()
    ) // tightly coupled
}

A solução: injete em vez disso

Passe as dependências pelo construtor. A classe deixa de se preocupar com a forma como elas são criadas.

class UserViewModel(
    private val repo: UserRepository
) {
    // repo supplied from outside
}

Benefício 1: facilidade de teste

Nos testes, você pode passar um repositório falso ou simulado, permitindo testar o ViewModel sem uma rede ou banco de dados reais.

val vm = UserViewModel(FakeUserRepository())

Benefício 2: modularidade

Como as classes dependem de abstrações, você pode trocar implementações — por exemplo, uma API real por uma implementação simulada offline — sem alterar o consumidor.

Dependa de interfaces

Faça as classes dependerem de uma interface, não de um tipo concreto. Essa é a chave para facilitar substituições.

interface UserRepository {
    suspend fun getUsers(): List<User>
}

class NetworkUserRepository(
    private val api: ApiService
) : UserRepository { /* ... */ }

Benefício 3: responsabilidade única

As classes se concentram em sua função, não em construir os objetos colaboradores. A criação de objetos é transferida para um local dedicado.

A DI manual se torna difícil

Você pode fazer DI manualmente, mas, à medida que o grafo cresce, acaba conectando muitos objetos manualmente e passando-os pelos construtores. Isso é trabalhoso e propenso a erros.

val db = AppDatabase.get(context)
val api = ApiService.create()
val repo = NetworkUserRepository(api)
val vm = UserViewModel(repo)
// ...repeated everywhere

Entra um framework de DI

Um framework automatiza essa conexão. Você declara uma vez como criar cada dependência, e ele constrói todo o grafo para você.

Por que usar Hilt

Hilt é o framework de DI recomendado para Android. Construído sobre o Dagger, ele fornece componentes padrão com escopo definido para classes do Android (Application, Activity, ViewModel), com muito menos código repetitivo.

O que Hilt oferece

  • Geração automática do grafo de dependências.
  • Escopos cientes do ciclo de vida.
  • Injeção fácil em Activities, Fragments e ViewModels.

As próximas lições farão essa configuração.

Verificação rápida

Teste sua compreensão da injeção de dependências.

Recapitulação

Você aprendeu:

  • DI fornece dependências externamente, em vez de criá-las internamente.
  • Ela melhora a facilidade de teste, a modularidade e a separação de responsabilidades.
  • Dependa de interfaces.
  • A DI manual não escala bem; o Hilt a automatiza.

Perguntas Frequentes

A aula “Por que usar injeção de dependências?” é grátis?

Sim — o texto completo de “Por que usar injeção de dependências?” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 4 aulas no total.

O que vou aprender em “Por que usar injeção de dependências?”?

Torne o código testável e modular. Você pratica Android Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Android Academy?

Nenhuma experiência prévia é necessária. Android Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Por que usar injeção de dependências?”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Android Academy?

Sim. Cada aula de Android Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Por que usar injeção de dependências?
  2. Configurando o Hilt
  3. Módulos e provedores
  4. Injetando em ViewModels
← Voltar para Android Academy