Retour aux articles
  • 15.11.2021

Qu’est ce que Jetpack Compose ?

Qu’est ce que Jetpack Compose ?

Qu’est ce Jetpack Compose ?

Jetpack compose est une boîte à outils moderne d'interface utilisateur pour Android introduite par Google. Elle simplifie le processus de développement d'applications et l'accélère. Avec Jetpack Compose, il est possible d’écrire moins de code par rapport à l'approche actuelle de construction de vues - ce qui signifie également moins de bugs potentiels. Il y a une autre grande chose à son sujet - il utilise Kotlin. Les développeurs utilisant React ou Flutter, seront probablement familier avec le concept et trouveront de nombreuses similitudes.

Comment fonctionne Jetpack Compose ?

L'un des principaux éléments constitutifs de Compose est la fonction composable. Elle émet une partie de l'interface utilisateur. La construction avec Compose consiste à imbriquer les fonctions composables les unes dans les autres.

Jetpack Compose : L'approche déclarative

Jetpack Compose est construit sur un paradigme de programmation différent. Il utilise un paradigme déclaratif. Cela signifie qu’on doit changer notre approche de : "Comment faire quelque chose" à "Quel objectif je veux atteindre". Dans un mode de programmation déclaratif, on essayera de décrire un résultat attendu au lieu de décrire chaque étape pour atteindre l'objectif.

Dans l'approche impérative actuelle, les choses sont un peu plus compliquées. Pour rendre une liste d'éléments, on utilise RecyclerView. Il s'agit d'un composant qui permet d'afficher efficacement de grands ensembles de données. Le problème est que chaque RecyclerView a besoin d'un adaptateur, chaque élément de la liste a besoin d'un ViewHolder, et ainsi de suite. Un adaptateur est un endroit où les programmeurs doivent décrire comment RecyclerView va rendre chaque élément. Et si on veut rendre différents types de données, cela peut être un peu compliqué. Par exemple, pour afficher du texte, une image et une vue étendue personnalisée, on doit écrire une logique pour indiquer au RecyclerView comment le faire. C'est l'exact opposé de Jetpack Compose et de l'approche déclarative.

Jetpack Compose pour Kotlin

Jetpack Compose est exclusif à Kotlin. Il utilise des fonctionnalités telles que les coroutines, et la gestion des annotations @Composable est effectuée par un compilateur Kotlin. Il n'y a aucun moyen d'y accéder à partir de Java par exemple.

Jetpack Compose pour un projet existant

Jetpack Compose a été conçu pour être totalement interopérable.

Il existe deux façons principales d'intégrer Compose à une interface utilisateur basée sur des vues :

  • Ajout d'éléments Compose dans l’UI existant
  • Ajout d'éléments de l'interface utilisateur basée sur les vues dans les fonctions composables.

Jetpack Compose : Intégrations

Compose a été construit avec l'intégration à l'esprit et est capable de s'intégrer avec toutes les autres bibliothèques Jetpack.

Il est également facile d'intégrer d'autres bibliothèques majeures et modernes, telles que :

  • Glide et Coil pour le chargement des images
  • Dagger/Hilt pour l'injection de dépendances
  • Kotlin Coroutines, Flow pour l'exécution de code asynchrone
  • Retrofit et Ktor pour l'intégration de réseaux
  • Lottie pour les animations

Jetpack Compose ne devrait limiter aucune bibliothèque connue. La question est de savoir si cette bibliothèque aura encore un sens ou non. Et comment l'utiliser avec Compose.

Jetpack Compose pour du développement multiplateforme

Avec Jetpack Compose Multiplatform, il est possible d'utiliser la même approche déclarative. Et les API utilisées pour les applications Android modernes pour les applications de bureau et de navigateur. Ces dernières sont alimentées par Kotlin sur la JVM et Kotlin/JS pour le web.

Jetpack Compose est une boîte à outils d'interface utilisateur moderne, puissante et prometteuse, sur laquelle il faudra garder un œil. S'il est utilisé correctement, il peut accélérer le processus de développement et réduire la taille de l'application. De plus, avec Compose, on peut écrire moins de code, ce qui potentiellement signifie moins de bogues.