0Pricing
Android Academy · Leçon

Modules et fournisseurs

Indiquez à Hilt comment créer les dépendances.

Modules et fournisseurs est une leçon Android Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Android Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Android Academy comprend 4 leçons au total.

Indiquer à Hilt comment construire les objets

Hilt peut construire automatiquement une classe si son constructeur est annoté avec @Inject. En revanche, pour les interfaces ou les types que vous ne contrôlez pas, vous devez indiquer à Hilt comment procéder au moyen d’un Module.

Injection par constructeur

Dans le cas le plus simple, annotez le constructeur et Hilt saura comment construire la classe.

class Analytics @Inject constructor(
    private val api: ApiService
)

Quand l’injection par constructeur ne suffit pas

Vous ne pouvez pas annoter le constructeur :

  • d’une interface (elle n’a pas de constructeur) ;
  • d’une classe provenant d’une bibliothèque (par exemple Retrofit ou Room).

Ces cas nécessitent un module.

Définir un module

Un @Module indique à Hilt comment fournir des types. @InstallIn déclare le composant (la portée) auquel il appartient.

import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
object NetworkModule

@Provides pour les types de bibliothèques

Utilisez @Provides sur une fonction qui construit et renvoie la dépendance. Hilt l’appelle lorsque ce type est nécessaire.

@Provides
@Singleton
fun provideRetrofit(): Retrofit =
    Retrofit.Builder()
        .baseUrl("https://api.example.com/")
        .build()

Les fournisseurs peuvent dépendre les uns des autres

Une fonction @Provides peut accepter des paramètres ; Hilt les fournit à partir du graphe.

@Provides
fun provideApi(retrofit: Retrofit): ApiService =
    retrofit.create(ApiService::class.java)

@Binds pour les interfaces

Pour associer une interface à une implémentation, utilisez @Binds dans un module abstrait. Cette solution est plus efficace que @Provides pour une association simple.

@Module
@InstallIn(SingletonComponent::class)
abstract class RepoModule {
    @Binds
    abstract fun bindRepo(
        impl: NetworkUserRepository
    ): UserRepository
}

@Provides ou @Binds

  • @Binds — lorsque vous associez simplement une interface à une implémentation dont le constructeur est injectable. Fonction abstraite.
  • @Provides — lorsque vous devez exécuter du code pour construire l’objet (par exemple un générateur).

Définir une portée avec @Singleton

Annotez un fournisseur avec une portée telle que @Singleton afin que Hilt réutilise une seule instance pour toute l’application au lieu d’en créer une nouvelle à chaque utilisation.

Faire correspondre la portée au composant

La portée doit correspondre au composant : @Singleton avec SingletonComponent, @ActivityScoped avec ActivityComponent, et ainsi de suite.

Résumé des modules

  • @Module + @InstallIn définissent l’emplacement des associations.
  • @Provides construit les types provenant de bibliothèques ou les types complexes.
  • @Binds associe les interfaces à leurs implémentations.

Vérification rapide

Vérifiez votre compréhension des modules et des fournisseurs.

Récapitulatif

Vous avez appris que :

  • L’injection par constructeur fonctionne lorsque vous contrôlez la classe.
  • @Module + @InstallIn indiquent à Hilt comment fournir les autres types.
  • @Provides construit les objets provenant de bibliothèques ou les objets complexes ; @Binds associe les interfaces.
  • Faites correspondre les portées, comme @Singleton, à leur composant.

Questions Fréquemment Posées

La leçon « Modules et fournisseurs » est-elle gratuite ?

Oui — le texte complet de « Modules et fournisseurs » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Android Academy, passe à CoddyKit PRO. Le cours Android Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Modules et fournisseurs » ?

Indiquez à Hilt comment créer les dépendances. Tu pratiques Android Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Android Academy ?

Aucune expérience préalable n'est requise. Android Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Modules et fournisseurs » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Android Academy ?

Oui. Chaque leçon Android Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pourquoi l'injection de dépendances ?
  2. Configurer Hilt
  3. Modules et fournisseurs
  4. Injecter dans les ViewModels
← Retour à Android Academy