Jetpack Compose : Comment Créer des Interfaces Android en Toute Simplicité

jetpack compose

Jetpack Compose est une librairie servant aux développeurs Android qui travaillent sur la création d’interfaces utilisateur (UI). Co-développée par Google et JetBrains (la société derrière Kotlin) elle simplifie et optimise la manière dont les développeurs construisent leurs applications.

Librairie Open Source et basée sur Kotlin, Jetpack Compose a pour but, à terme, de remplacer son prédécesseur XML. Ce dernier est un langage informatique servant lui aussi à organiser et structurer des données sous forme de texte (souvent utilisé dans le développement Android pour définir l’apparence des écrans d’une application).

Comment fonctionne Jetpack Compose ?

Jetpack Compose repose sur un “paradigme déclaratif”. Concrètement, les développeurs décrivent ce qu’ils veulent afficher à l’écran. Le système s’occupe ensuite de mettre à jour automatiquement l’interface si les données changent. 

XML quant à lui nécessite de définir l’apparence des éléments dans un fichier séparé et de les gérer ensuite avec du code, le plus souvent dans des fichiers Java ou Kotlin. Il s’agit là d’une approche impérative. En opposition à cette dernière, Jetpack Compose permet de tout écrire au même endroit, en déclarant simplement ce qui doit être affiché et comment cela doit réagir. 

Ainsi, le développement devient plus intuitif et le nombre d’étapes techniques est réduit. De plus, le fonctionnement de Jetpack Compose permet aussi à l’interface de s’adapter automatiquement aux changements des données. L’objectif principal est d’accélérer le développement et de réduire les erreurs grâce à une approche plus simple et plus lisible.

Comment créer une interface utilisateur avec Jetpack Compose ?

L’interface utilisateur est construite à l’aide de fonctions composables. Chaque fonction créée sert à afficher un élément sur l’interface (ex : une image, un bouton, etc) et est considérée comme un composable. Ces fonctions sont les éléments de base d’une application construite à l’aide de Jetpack Compose.

Au moment de coder, 2 options s’offrent à vous : utiliser des fonctions composables préexistantes. Parmi les plus courantes, on retrouve naturellement : Text(), Image() ou encore Button(). La seconde option consiste à créer ses propres fonctions composables. Ceci permet de développer des éléments plus complexes, en combinant plusieurs fonctions. Ainsi, un développeur Android peut construire une interface de façon organisée et facilement modulable.

Comparaison : Jetpack Compose et XML


Aspects

Jetpack Compose

XML (ancienne méthode)

Approche de la conception de l’UI

Déclarative et basée sur des fonctions Kotlin. Vous décrivez ce que vous voulez afficher.

Impérative et hiérarchique, où vous devez définir précisément chaque étape de l’affichage.

Description de l’interface

L’interface est définie directement dans du code Kotlin.

L’interface est spécifiée dans des fichiers XML séparés.

Réactivité (gestion des changements)

L’interface se met à jour automatiquement en fonction de l’état des données.

Nécessite une gestion manuelle des changements d’état pour mettre à jour l’interface.

Réutilisabilité

Les éléments d’interface sont définis sous forme de blocs réutilisables (composables).

La réutilisation est possible mais souvent plus complexe, via des fragments ou des layouts inclus.

Animations et interactions

Plus faciles à intégrer, grâce à une gestion simplifiée via Kotlin.

Plus compliquées à implémenter, avec un code plus détaillé.

Modularité et gestion du code

Le code est organisé en fonctions modulaires et indépendantes, facilitant sa gestion.

Le code peut devenir difficile à gérer dans de grandes applications en raison de la séparation entre XML et logique de code.

Performance

Plus rapide et mieux optimisé dans la plupart des cas

Peut ralentir dans les mises en page complexes

Communauté et support

Communauté est en pleine croissance, possède moins de ressources et supports que XML

Communauté très mature, avec de nombreuses ressources et un large éventail de supports.

Compatibilité avec les anciens appareils

Peut rencontrer des difficultés sur certains appareils plus anciens (version antérieures à Android 5.0 – 2014)
Offre une meilleure compatibilité avec les versions plus anciennes d’Android.

En conclusion : Quels sont les avantages de cette librairie ?

Comme mis en évidence au travers du tableau présenté plus haut, Jetpack Compose présente de nombreux avantages à être utilisé pour le développement d’interfaces utilisateur sur Android. 

Tout d’abord, l’élaboration du code est simplifiée de par la syntaxe moderne et le paradigme déclaratif sur lequel repose la librairie. Plus besoin de gérer la séparation entre des fichiers XML et des fichiers contenant du code Java ou Kotlin, tout est écrit au même endroit. Ceci rend le code plus lisible et facilite donc l’entretien des interfaces. Autre avantage non négligeable : la mise à jour automatique de l’interface lorsque les données changent. Très pratique, le développement devient ainsi beaucoup plus interactif et intuitif. Enfin, Jetpack Compose optimise la performance des interfaces en réduisant la surcharge souvent présente dans les mises en page XML complexes.

Bien que cette librairie soit encore jeune, sa communauté se développe rapidement. Si la méthode XML reste à l’heure actuelle majoritaire, il apparaît toutefois qu’une transition depuis XML vers Jetpack Compose se mette petit à petit en place. J’espère avoir réussi à vous convaincre des avantages que présente cette nouvelle librairie et si vous êtes intéressé par la création d’interfaces utilisateur à l’aide de Jetpack Compose, vous trouverez déjà une multitude de tutoriels et de cours en ligne, il ne vous reste donc plus qu’à coder !

Article rédigé par SAINTES Colombe.