JetBrains a publié une nouvelle version de Jetpack Compose for Desktop, un framework de développement d'interface utilisateur multiplateforme open source.
Si vous effectuez un travail de développement, vous avez probablement entendu parler de JetBrains. C'est la société à l'origine de l'immense suite d'IDE qui comprend IntelliJ (la base d'Android Studio), CLion, PhpStorm et bien d'autres. Ce sont aussi eux qui ont fait Kotlin, le langage de programmation multiplateforme extrêmement populaire.
Et JetBrains est de retour. Il y a un peu plus d'un an, Google a introduit un nouveau moteur de mise en page pour Android appelé Jetpack Compose. C'est passé pas mal de changements majeurs depuis, mais il est devenu une alternative compétente (bien que toujours quelque peu instable) aux mises en page XML classiques d'Android.
Qu'est-ce que Jetpack Compose a à voir avec JetBrains? Eh bien, pour commencer, c'est écrit en Kotlin. Mais JetBrains a également travaillé en silence sur le portage de Compose sur l'espace de bureau. Il a été rendu public en tant que premier aperçu du développeur, et maintenant JetBrains est prêt à annoncer officiellement son existence.
Qu’est-ce que Jetpack Compose?
J'en ai un peu parlé en introduction, mais je pense que cela mérite quelques explications supplémentaires. Si vous avez déjà développé sur Android, vous êtes probablement habitué au fonctionnement des mises en page. Tout d’abord, vous concevez votre mise en page dans un fichier XML, puis vous interagissez avec cette mise en page à partir de Java ou Kotlin. Bien qu'il soit fonctionnel, il est un peu obsolète et diviser vos mises en page en plusieurs langues peut être difficile à gérer.
Comme alternative, Google a commencé à développer Jetpack Compose. Compose est un moteur de mise en page pour Android construit sur Kotlin. Toute votre mise en page et votre code logique se trouvent au même endroit, ce qui rend l'interactivité beaucoup plus facile. Il est également déclaratif, au lieu du style impératif des mises en page XML.
Passer d'un moteur de mise en page déclaratif à un moteur impératif peut prendre un certain temps pour s'y habituer, mais Compose est définitivement une amélioration par rapport à XML, même s'il en est encore à ses débuts.
Jetpack Compose pour ordinateur de bureau
Compose est donc une bonne alternative de mise en page pour les applications Android natives. Mais ce n’est pas (normalement) multiplateforme. C'est là qu'intervient JetBrains. La société a porté Jetpack Compose sur l'espace de bureau, avec prise en charge de Windows, Linux et macOS (Intel et ARM).
Bien qu'il existe d'autres moteurs de mise en page pour le bureau, tels qu'Electron, JavaFX et UWP, c'est un peu le bordel en ce moment. Certains ne sont pas multiplateformes et ne fonctionnent donc que sur un système d'exploitation spécifique. D’autres sont techniquement multiplateformes, mais nécessitent beaucoup de travail pour être distribués. Et pourtant, d’autres sont tout simplement pénibles à utiliser, comme JavaFX.
Jetpack Compose for Desktop, en revanche, est relativement facile à utiliser, prend en charge la mise à l'échelle de l'affichage, possède un style intégré et est (presque) entièrement multiplateforme. Bien que vous ne puissiez pas encore compiler toutes les distributions à partir d'un seul système d'exploitation, le code lui-même est entièrement portable. Tout comme avec Android, une application packagée est basée sur Java, bien que les utilisateurs n'aient pas besoin d'installer un JDK pour l'utiliser.
Compatibilité croisée
Étant donné que Compose for Desktop est encore nouveau, il lui manque certaines fonctionnalités. Pour aider les développeurs à contourner ces limitations, Compose for Desktop est interopérable avec deux des moteurs de mise en page Java les plus populaires, JavaFX et Swing. Si vous disposez d'une application de bureau développée dans l'un (ou les deux) de ces moteurs, vous pouvez commencer la transition vers Compose tout en conservant votre base de code actuelle.
Android + Bureau
Et si vous souhaitez amener votre application Compose Android sur le bureau? Eh bien, vous pouvez aussi (en quelque sorte) faire cela. Les éléments de l'interface utilisateur de votre application peuvent facilement être partagés entre Android et le bureau. Vous ne pourrez pas tout partager, mais cela facilite certainement le développement.
Prise en charge du silicium Apple
Je l'ai mentionné plus haut, mais je vais le mentionner à nouveau. Le nouveaux Mac Apple Silicon sont assez étonnants, mais les processeurs sont basés sur l'architecture CPU ARM, ce qui signifie que de nombreuses applications macOS fonctionnent actuellement via le traducteur Rosetta 2 x86. Même si Apple a fait du très bon travail avec cette traduction, les programmes ARM natifs fonctionneront toujours mieux.
Eh bien, Jetpack Compose for Desktop prend en charge Apple Silicon de manière native. Cela signifie que vous n'aurez pas à vous soucier des baisses de performances liées à la traduction ni du support futur lorsque Apple l'interrompra.
Fonctionnalité
C'est donc une bonne chose que JetBrains ait créé un nouveau moteur de mise en page pour ordinateur de bureau, mais qui peut dire qu'il est meilleur que ce que nous avons actuellement ?
Moi.
J'ai utilisé la dernière version disponible au moment de la rédaction de ceci (0.2.0-build132) pour créer une application simple d'octroi d'autorisations pour SystemUI Tuner. Comme je ne suis pas très familier avec Compose et la conception déclarative, c'était un peu plus difficile pour moi qu'une application de mise en page XML, mais je l'ai fait. Et c'est beaucoup plus facile à utiliser que JavaFX.
Bien que la prise en charge des thèmes (c'est-à-dire le mode sombre) soit encore un peu incertaine, il est assez facile de créer une mise en page interactive, et à part quelques scintillements lors du redimensionnement de la fenêtre, tout fonctionne bien.
Si vous souhaitez consulter l'application, le code source est disponible sur GitHub. Importez-le simplement avec IntelliJ ou Android Studio et il devrait être prêt à fonctionner.
Personnellement, je suis plutôt enthousiasmé par Jetpack Compose for Desktop. Je ne savais même pas qu'il existait auparavant, mais c'est déjà mon moteur de mise en page de bureau préféré. Vous pouvez en apprendre davantage sur le Site Web Jetpack Compose pour ordinateur de bureau ou sur GitHub.
Qu'est-ce que tu en penses? Vaut-il la peine d'être vérifié et peut-être même d'utiliser à la place d'autres frameworks disponibles? Fais-moi savoir!
Crédits images en vedette: JetBrains sur GitHub