Actualités sur les produits

Cinq ans de Jetpack Compose

Temps de lecture : 5 min

Aujourd'hui, nous fêtons officiellement les cinq ans de la sortie de Jetpack Compose 1.0. De la version 1.0, annoncée le 28 juillet 2021, à notre dernière version 1.11, les API ont considérablement évolué au fil des ans, et nous prenons le temps de célébrer cet événement.

Lorsque nous avons annoncé officiellement la version 1.0, nous avons promis un moyen plus simple, plus rapide et plus intuitif de créer des interfaces natives sur Android. Avec le recul, on peut dire que Compose n'a pas seulement tenu cette promesse, mais qu'il a également complètement changé l'écosystème Android, avec plus de 68% des 1 000 principales applications qui l'utilisent en production aujourd'hui. 

Historique

Au cours des cinq dernières années, Compose a connu une croissance constante. Au début,  nous vous avons montré comment créer des mises en page avec les éléments de base Box, Row et Column. Aujourd'hui, nous avons étendu Compose pour qu'il fonctionne non seulement sur les appareils mobiles, mais aussi sur d'autres facteurs de forme tels que Compose pour TVWearOSGlance pour les widgets et même les lunettes d'affichage avec Jetpack Compose Glimmer

jetpack_compose_everywhere.png

Nous avons enregistré un épisode d'Android Developers Backstage avec Clara Bayarri, responsable de l'ingénierie pour Jetpack, et deux anciens responsables de l'équipe, Romain Guy et Chet Haase, ainsi que Tor Norbye, directeur de l'ingénierie. Dans cet épisode, ils discutent de l'historique de Compose et des débuts du développement.

timeline.png
Les points forts de Compose au fil des ans

Retour sur le passé

Les débuts de Compose étaient très différents de ce que vous connaissez aujourd'hui. Deux projets se déroulaient en parallèle au sein de l'équipe Android. 

À l'époque, l'équipe du kit d'outils Views envisageait de dissocier le kit d'outils d'interface utilisateur en une bibliothèque pour accélérer le développement et permettre aux développeurs d'adopter et de contrôler plus facilement les mises à jour. Pendant ce temps, une équipe travaillait sur une nouvelle idée pour créer des mises en page déclaratives en intégrant du code XML dans Kotlin, ce qui ressemblait à ceci :

jetpack_compose_early_code.png

Ces deux efforts ont fusionné pour produire ce que vous connaissez aujourd'hui : un kit d'outils d'interface utilisateur entièrement déclaratif qui exploite la puissance d'un plug-in de compilateur, d'un environnement d'exécution et de Kotlin :

@Composable
fun Newsfeed(stories: List<Story>) {
    LazyColumn {
        items(stories) { story ->
            Card {
                val author = story.author
                Image(painterResource(author.profilePhoto),
                    contentDescription = author.name)
                Text(author.name)
                Text(story.content)
                if (story.hasCommentsEnabled()) {
                    for(comment in story.comments) {
                        Text(comment.mainContent)
                    }
                }
            }
        }
    }
}

Et vous, la communauté, nous avez aidés très tôt ! Avant 2021, Compose avait une phase pré-alpha, ce qui a permis de s'assurer qu'il était adapté pour résoudre les problèmes de nos développeurs.

L'un de nos meilleurs souvenirs est l'Android Dev Challenge. Nous avons mis au défi la communauté de créer quatre tâches différentes avec Compose, en remplissant nos flux d'applications pour chiots, d'horloges et d'applications météo, et en nous fournissant une tonne de commentaires directs qui ont contribué à façonner la version 1.0.

Compose a continué d'évoluer, passant d'un lancement avec un ensemble de composants Material 2 à la prise en charge de Material 3 Expressive.

material2.png
Material 2 dans Compose

Perspectives d'avenir

À ce jour, Compose 1.11 est la dernière version, et la version 1.12 sera bientôt disponible. Elle offre bien plus que la version 1.0, il y a cinq ans. Cette année, nous avons introduit des API plus adaptatives, telles que FlexBoxGridMediaQuery et Styles. Ces API vous permettent de passer au niveau supérieur de développement d'interface utilisateur adaptative premium avec Compose. 

Lors de Google I/O 2026, nous avons annoncé que nous étions désormais Compose-first, ce qui signifie que tous les futurs développements d'interface utilisateur se feront uniquement dans Compose, tandis que le kit d'outils Views passera en mode maintenance. Material Design  se concentre également entièrement sur Compose, ce qui marque la fin de l’findViewById era

La communauté est au cœur de Compose

Au fil des ans, vous nous avez inspirés avec des exemples créatifs de votre utilisation de Compose. Nous aimerions mettre en avant quelques exemples supplémentaires de travaux intéressants. JetBrains est un excellent partenaire de Google avec Compose, en étendant Compose pour qu'il fonctionne sur plusieurs plates-formes avec Compose Multiplatform et en permettant aux développeurs d'applications pour ordinateur, iOS et Web de profiter également des avantages de Compose.  

Nous avons vraiment apprécié suivre nos newsletters les plus appréciées,  de JetpackCompose.app's Dispatch à AndroidWeekly en passant par jetc, qui aident les développeurs Android à se tenir au courant des dernières nouveautés dans le monde de Compose et d'Android. 

sinasamaki est un autre contributeur exceptionnel. Il a créé de nombreuses expériences agréables à l'aide de Compose, comme ce modificateur de ruban amusant et l'effet de glitch :

ribbon_modifier_sinasamaki.gif

Saket Narayan a toujours été une source d'inspiration pour la création d'outils utiles pour Compose, tels que telephoto, une bibliothèque qui prend en charge les gestes panoramiques et de zoom, ainsi que le sous-échantillonnage automatique des grandes images, ou la dernière bibliothèque, Touch Robot, qui vous permet de tester facilement les animations d'interaction :

paparazzi.gif(end = 3_000) {
  DebitCard(
    Modifier.testTag("card")
  )

  val touchRobot = rememberTouchRobot()
  LaunchedEffect(Unit) {
    touchRobot.onNode(hasTestTag("card")).performGesture {
      draw(
        path = createAndroidHeadPath(),
        duration = 3.seconds,
      )
    }
  }
}

/** A path drawing the Android head. */
fun createAndroidHeadPath(bounds: Rect): Path = TODO()
saket_touch_robot.gif

Jake Wharton, qui a utilisé Compose de manière innovante (comme molecule, et même la création d'une interface utilisateur avec Compose pour le terminal avec mosaic). Chris Banes, qui a créé de nombreuses bibliothèques Compose au fil des ans, avec notre dernière préférée, Haze, pour le flou d'arrière-plan, et de nombreux experts Google pour les développeurs Android tels que Akshay Chordiya, Huyen Tue Dao et Katie Barnett, qui ont contribué au succès de Compose. Mais il ne s'agit pas de sélectionner des personnes. De nombreux contributeurs ont contribué au code de Compose, et beaucoup d'entre vous continuent de nous inspirer avec vos exemples amusants, vos bibliothèques et vos conférences approfondies. Sans la communauté, Jetpack Compose n'aurait pas le succès qu'il connaît aujourd'hui. 

À bientôt pour les cinq prochaines années, et plus encore !

Jetpack Compose est passé d'une idée expérimentale à la norme pour le développement d'interfaces utilisateur Android. Merci à toute l'équipe du kit d'outils de Google et à l'incroyable communauté mondiale de développeurs qui ont écrit des bibliothèques, signalé des bugs et repoussé les limites de ce que l'interface utilisateur déclarative peut faire. 

Cette semaine, nous fêterons cet événement avec des fêtes d'anniversaire en personne dans le monde entier et une "fête d'anniversaire" en direct sur la chaîne YouTube des développeurs Android le 30 juillet à 13h00 UTC. Nous discuterons de Compose et répondrons à vos questions !

À bientôt pour les cinq prochaines années, et bonne composition !

Écrit par :
Continuer la lecture