Accompanist Kotlin : guide complet avec exemples pratiques

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Accompanist pour Kotlin : guide complet avec exemples

1. Qu'est-ce que c'est et pourquoi l'utiliser ?

Accompanist est une collection de bibliothèques d'extension (extensions) pour Jetpack Compose, développée par l'équipe Google. Elle fournit des solutions prêtes à l'emploi pour des tâches qui ne font pas encore partie de l'API stable de Compose, ou qui nécessitent une implémentation complexe "from scratch". Cette bibliothèque résout les problèmes courants rencontrés par tout développeur Compose : gestion des gestes, barres système, animations, WebViews, adaptation aux différents écrans, et bien plus encore.

Pourquoi l'utiliser ? D'abord, Accompanist vous fait gagner du temps. Au lieu d'écrire votre propre gestionnaire de gestes ou un modificateur personnalisé pour les barres système, vous utilisez un composant prêt et testé. Ensuite, la bibliothèque suit les recommandations officielles de Google et sert souvent de prototype pour les futures API stables de Compose. Par exemple, HorizontalPager d'Accompanist a ensuite été intégré à Compose Foundation sous le même nom HorizontalPager.

Au moment de la rédaction de cet article, Accompanist inclut des modules tels que : systemuicontroller (gestion de la barre d'état et de navigation), permissions (demande de permissions au runtime), webview (intégration WebView), pager (défilement horizontal/vertical de pages), swiperefresh (geste pull-to-refresh), placeholder (chargement squelette), adaptive (mises en page adaptatives), navigation-animation (animations de transition), et d'autres.

2. Installation

Accompanist est une bibliothèque pour Gradle (Android/Kotlin Multiplatform). L'installation se fait en ajoutant les dépendances dans le fichier build.gradle.kts (ou build.gradle) de votre module. Les commandes pip, npm, cargo ou go get ne sont pas utilisées, car il ne s'agit pas de Python, JavaScript, Rust ou Go.

La commande exacte pour ajouter un module spécifique (par exemple, systemuicontroller) :

// build.gradle.kts (Module)
dependencies {
    implementation("com.google.accompanist:accompanist-systemuicontroller:0.34.0")
    // Pour les autres modules :
    // implementation("com.google.accompanist:accompanist-permissions:0.34.0")
    // implementation("com.google.accompanist:accompanist-pager:0.34.0")
    // implementation("com.google.accompanist:accompanist-swiperefresh:0.34.0")
    // implementation("com.google.accompanist:accompanist-webview:0.34.0")
    // implementation("com.google.accompanist:accompanist-placeholder:0.34.0")
}

Important : vérifiez toujours la version actuelle sur GitHub Releases. La version 0.34.0 est la dernière version stable au moment de la rédaction. Assurez-vous que vos versions de Kotlin et Compose sont compatibles avec la version choisie d'Accompanist.

3. Démarrage rapide — exemple minimal fonctionnel

Créons un écran qui change la couleur de la barre d'état lorsqu'on appuie sur un bouton. Pour cela, nous utiliserons le module systemuicontroller.

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import com.google.accompanist.systemuicontroller.rememberSystemUiController

@Composable
fun QuickStartExample() {
    val systemUiController = rememberSystemUiController()
    var isDark by remember { mutableStateOf(false) }

    // Définit la couleur de la barre d'état en fonction de l'état
    LaunchedEffect(isDark) {
        if (isDark) {
            systemUiController.setStatusBarColor                    

Recommendations