Jetpack compose, 1 an plus tard

Actualités > Mobilité > Jetpack compose, 1 an plus tard
Catégories
NATHAN VANDE PERRE

Publié le :

Par NATHAN VANDE PERRE

Pour rappel, Jetpack Compose est un framework créé par Google et JetBrains qui permet la création d’interfaces utilisateur pour les applications Android.

Chez XPEHO, nous aimons la mobilité. Nous avons donc monté une équipe constituée de développeurs passionnés par le développement mobile.

Comme indiqué dans notre dernier article (https://medium.com/@xpeho/les-animations-flutter-7bb7db56609c), nous nous lançons dans le partage de connaissances à travers des meetups, des publications de vidéos ou encore des articles.

Aujourd’hui, nous avons décidé de creuser un peu plus du côté de Jetpack Compose !

Jetpack Compose

Comme vous le savez si vous nous suivez, nous avons déjà testé Jetpack Compose lors de sa sortie. Si vous avez manqué notre premier article sur le sujet, nous vous invitons à le consulter. Aujourd’hui, nous souhaitons analyser l’évolution de ce framework.

Pour rappel, Jetpack Compose est un framework créé par Google et JetBrains qui permet la création d’interfaces utilisateur pour les applications Android, comme peut le faire Flutter ou React, mais en Kotlin. Il permet de créer des applications Android de manière simplifiée et plus en accord avec les normes actuelles, en partant de zéro, tout en donnant la possibilité de l’intégrer à une application Java existante.

Ici, nous n’utilisons plus de fichiers XML mais des éléments @Composable qui peuvent faire penser aux widgets de Flutter ou aux composants de React.

L’état des lieux

Nous pouvons déjà constater une nette amélioration du framework en moins d’un an. Google et JetBrains mettent l’accent sur l’implémentation de nouvelles fonctionnalités. Il reste bien entendu certaines lacunes, dont nous parlerons dans la suite de l’article.

Les @Composable

Comme évoqué précédemment, Jetpack Compose se base principalement sur l’utilisation des @Composable, qui composent tous les éléments de notre écran. Ils permettent de créer et de placer facilement un élément, ainsi que de le personnaliser grâce à plusieurs attributs.

Exemple :

Il existe une multitude de @Composable déjà définis et utilisables, mais il vous est également possible d’en créer de toute pièce et d’y ajouter tous les attributs que vous souhaitez. Il est aussi possible d’utiliser des éléments @Composable déjà existants pour les enrichir.

Au cours de nos développements, nous sommes tombés sur certains points gênants concernant les @Composable. Par exemple, comme nous l’avons vu précédemment, il est possible de personnaliser nos @Composable via des attributs, mais pas que. Il est possible et parfois obligatoire d’appliquer des modifications via un “modifier” qui ne prend pas des attributs mais une suite de fonctions, ce qui peut parfois rendre la personnalisation confuse. Un deuxième point gênant est le manque de documentation. Lors de l’utilisation d’un @Composable, nous retrouvons tous les points nécessaires au bon fonctionnement de celui-ci. Cependant, il faut connaître son existence. Il semble que rien ne soit fourni pour répertorier la liste des @Composable disponibles, ce qui est dommage pour un débutant.

Un second point gênant est le manque de documentation, lors de l’utilisation d’un @Composable, nous retrouvons tous les points nécessaire au bon fonctionnement de celui-ci, seulement il faut connaître son existence, il semble que rien ne soit fourni pour répertorier la liste des @Composable disponibles ce qui est dommage pour un débutant.

La prévisualisation

Un autre outil très pratique que nous offre Jetpack Compose est la prévisualisation de l’écran. Cela nous permet d’avoir une idée du rendu de notre code.

Attention toutefois, il arrive que certaines modifications ne soient pas directement appliquées lors de la prévisualisation, nous n’en verrons la différence qu’au build.

Conclusion

Nous avons parlé des 2 intérêts majeurs de Jetpack Compose, des avantages et des inconvénients de ceux-ci, mais le framework ne se limite pas qu’à ça. Il manque encore de maturité sur plusieurs points mais mérite qu’on s’y attarde, donc si cela vous intéresse jetez-y un oeil.

De notre côté nous ne manquerons pas de nous tenir informés de son évolution.