Jetpack Compose, la nouvelle boîte à outils d'interface utilisateur de Google pour Android, est désormais en version alpha

Jetpack Compose, la boîte à outils d'interface utilisateur de Google pour développer des applications Android, est désormais en version alpha. Il est entièrement interopérable avec les vues standard d'Android.

Lorsqu’il s’agit de développer une application, il existe de nombreuses façons de procéder. Vous pouvez choisir pour quelle(s) plateforme(s) développer, quel(s) langage(s) de programmation vous souhaitez utiliser, et bien plus encore.

À l'automne 2019, Google introduit un nouveau framework pour créer des interfaces utilisateur sous Android, à l'aide de Kotlin. Jusqu'à présent, il était dans un état de développement, avec des changements fréquents et des tonnes de fonctionnalités manquantes. Mais aujourd'hui, Google a poussé Jetpack Compose à l'état de version alpha, ce qui signifie qu'il est sur le point d'être utilisé dans des projets de qualité production.

Qu’est-ce que Jetpack Compose?

Lors de la création d'une application Android, vous devez généralement gérer deux composants principaux: le code, pour les éléments basés sur la logique; et le XML, pour les mises en page. Par défaut, Android utilise Java pour le code et son propre ensemble de balises XML pour les mises en page.

Pour beaucoup, Java et XML conviennent parfaitement, en particulier pour les applications les plus simples. Mais les deux systèmes ont leurs limites et leurs inconvénients. Avec l'introduction de Kotlin comme officiel (et recommandé) pour le développement Android, le côté codage de la création d'une application Android est sans doute devenu beaucoup plus facile. Grâce aux fonctionnalités pratiques de Kotlin telles que la protection nulle intégrée et les fonctions d'extension, le code semble plus propre et plus facile à lire.

Mais Kotlin n'a rien changé aux mises en page d'Android. Pour créer une mise en page complexe, vous deviez toujours créer un fichier XML et le concevoir ici. Cela présente certains inconvénients notables, notamment la séparation inhérente entre le code et XML. Si vous avez une chaîne constante dans votre code, par exemple, vous ne pouvez pas simplement la référencer à partir de XML, donc si cette chaîne change dans le code, vous devez également penser à la mettre à jour en XML.

Entrez Jetpack Composer. C'est la réponse de Google au processus de conception de mise en page XML de plus en plus maladroit dans Android. Au lieu de concevoir l'interface utilisateur de votre application en XML, vous pouvez le faire directement à partir de votre code. Bien qu'il soit possible de créer des mises en page basées sur du code, elles sont généralement moins maintenables que XML et impliquent des bibliothèques faciles à briser. Compose, en revanche, est conçu pour fonctionner directement dans Kotlin: plus de XML.

Jetpack Compose constitue également un changement assez radical par rapport à la conception impérative standard des mises en page XML. Au lieu de cela, il ressemble davantage à React ou Flutter, avec des dispositions déclaratives qui se mettent à jour automatiquement lorsque les données changent, au lieu de compter sur le développeur pour implémenter cette logique.

Ce qui est pris en charge

Jetpack Compose est donc désormais en version alpha. Qu'est-ce que cela signifie? Eh bien, beaucoup de choses.

Interopérabilité avec les vues

Tout comme Kotlin est entièrement interopérable avec Java, Jetpack Compose est entièrement interopérable avec les vues standard d'Android. Cela signifie pas mal de choses.

D'une part, il sera beaucoup plus facile de migrer vers Jetpack Compose si vous le souhaitez. Au lieu d'avoir à convertir toutes vos vues et mises en page personnalisées en Composables, vous pourrez simplement créer vos nouvelles mises en page et composants dans Compose. Vous disposez d'une bibliothèque qui utilise des vues « héritées », mais votre application est conçue avec Compose? Aucun problème. Vous pouvez ajouter la Vue directement dans votre fonction Composable. Vous n'avez pas encore sauté le pas vers Compose, mais vous souhaitez utiliser une bibliothèque qui s'appuie sur Composables? Encore une fois, pas de problème. Insérez simplement le Composable directement dans votre mise en page.

Quant aux thèmes, ils ne sont pas aussi plug-and-play que l'interopérabilité des mises en page. Cependant, Google a créé une bibliothèque pour adapter vos thèmes XML standard en thèmes compatibles Compose, aidant ainsi à garder les choses centralisées et à éviter la duplication.

Animations

Il n'y a pas vraiment grand chose à dire ici, sauf que Jetpack Compose prend en charge les animations, tout comme le framework View d'Android. Vous pouvez déplacer, redimensionner et faire pivoter à votre guise.

Listes paresseuses

Une liste paresseuse est essentiellement la version Compose d'un RecyclerView. Il présente uniquement les éléments selon les besoins, économisant ainsi de la RAM et augmentant les performances. Bien entendu, étant Compose, les listes sont nettement plus simples à mettre en œuvre.

ContrainteMise en page

L'une des vues les plus puissantes d'Android est ConstraintLayout. Cela vous permet de positionner, de dimensionner et de pondérer les vues enfants les unes par rapport aux autres, tout en facilitant certaines animations. Si vous craigniez de perdre cette fonctionnalité dans Compose, vous ne devriez pas l'être, car elle est également disponible ici.

Composants matériels de l'interface utilisateur

Un autre ensemble de vues puissantes est la bibliothèque Material Components de Google. La plupart de ce qui se trouve ici sont des vues et des mises en page standard que vous pouvez trouver dans le framework View natif. Mais ils ont été modifiés ou enveloppés pour fournir des fonctionnalités supplémentaires et faciliter la création de thèmes, et ils ont également été intégrés à Compose.

Essai

Une partie importante du développement d’une application consiste à la tester. Pour une application simple, vous pouvez le faire manuellement en l'installant et en l'utilisant. Cependant, les projets plus complexes peuvent bénéficier grandement des frameworks de tests automatisés qui font l’essentiel du travail à votre place. Jetpack Compose prend en charge les tests automatisés afin que vous puissiez rendre votre application aussi stable que possible.

Fonctionnalités d'accessibilité

L'accessibilité est un élément important de notre société. Sans les fonctionnalités d’accessibilité de notre technologie, de nombreuses personnes seraient tout simplement exclues des avantages qu’offrent nos téléphones, nos téléviseurs et tout ce qui existe. Jetpack Compose est encore en version alpha, la prise en charge de l'accessibilité n'est donc pas complète, mais Google le garde à l'esprit lors du développement et une prise en charge rudimentaire est déjà présente.

Android Studio

Cependant, toutes les fonctionnalités de Jetpack Compose ne se trouvent pas dans Jetpack Compose lui-même. Android Studio et Kotlin disposent également de plugins et d'extensions pour faciliter la composition.

Plugin du compilateur Kotlin

Comme avec Kotlin JVM, il existe un plugin de compilateur dans Android Studio pour convertir correctement vos fonctions Compose en code qu'Android peut réellement comprendre et suivre.

Aperçus interactifs

Tout comme avec vos mises en page XML standard, Android Studio est livré avec un aperçu de mise en page pour Jetpack Compose. Bien que cela ne soit pas aussi pratique que les aperçus XML à certains égards, vous devez créer votre projet pour l'aperçu à mettre à jour et à créer une fonction d'aperçu dédiée. Cela présente un avantage notable: interactif aperçus.

Un aperçu interactif n'est qu'un aperçu normal, mais interactif. Fou, je sais. Ce que cela signifie, cependant, c'est que vous pouvez réellement saisir du texte dans des zones de texte, cliquer sur des boutons et, bien sûr, interagir avec vos Composables, sans même avoir à les déployer.

Déploiement composable unique

Si vous souhaitez réellement déployer (c'est-à-dire installer) votre mise en page pour voir comment elle fonctionne sur un appareil réel, cette fonctionnalité peut vous aider. Avec les mises en page XML normales, afin de voir comment une mise en page fonctionne dans le monde réel, vous devez créer et installer l'intégralité de l'application. Si la mise en page que vous souhaitez tester ne se trouve pas sur l'écran principal, vous devrez peut-être appuyer beaucoup pour y accéder.

Et c’est là qu’intervient la possibilité de déployer un seul Composable. Au lieu de devoir créer et installer votre application, puis d'accéder à la mise en page que vous testez, vous pouvez simplement déployer la mise en page. Android Studio générera et ouvrira une activité wrapper qui affiche simplement le Composable que vous avez déployé. Cela peut rendre les tests et la conception beaucoup plus rapides et peut même aider à isoler les problèmes liés à l'interaction des éléments.

Achèvement du code

Si votre IDE ne permet pas la complétion de code, est-ce même un IDE? Non, ce n'est pas le cas. Bien sûr, Android Studio prend en charge la complétion complète du code pour Jetpack Compose.


Bien que ce ne soit pas tout ce que Jetpack Compose apporte, les fonctionnalités et le comportement ci-dessus montrent à quel point Google souhaite que ce cadre soit puissant. Et, bien qu'il soit encore en version alpha, c'est une longueur d'avance sur son précédent statut de « développement ». Si vous attendiez de vraiment utiliser Jetpack Compose (comme moi), le moment est peut-être venu de réessayer.