Le monde a-t-il besoin d’un autre framework multiplateforme ? Dur, voici JetBrains avec Compose Multiplatform

  • Français


  • Un framework Kotlin open source pour les applications multiplateformes, basé sur Jetpack Compose pour Android, est maintenant en avant-première.

    Jetpack Compose de Google est un framework officiel pour construire une interface utilisateur dans une application Android, et a atteint la version 1.0 la semaine dernière, en même temps que la première version stable d’Android Studio, 2020.3.1 ou “Arctic Fox”.

    Bien qu’il n’ait atteint que 1.0, Google a déclaré : “Il existe déjà plus de 2 000 applications dans le Play Store utilisant Compose – en fait, l’application Play Store elle-même utilise Compose.”

    Compose est un framework déclaratif qui s’éloigne de l’approche Android traditionnelle d’une hiérarchie ou d’une arborescence de mises en page et de contrôles. Une interface utilisateur Compose est définie en écrivant des fonctions annotées avec l’annotation @Composable, qui décrivent l’état de l’écran : les fonctions génèrent l’interface utilisateur. « Au fur et à mesure que l’état de l’application change, votre interface utilisateur se met automatiquement à jour, ce qui facilite grandement la création rapide de l’interface utilisateur », a déclaré l’équipe Android de Google.

    Jetpack Compose pour Android vient d'atteindre la version 1.0

    Jetpack Compose pour Android vient d’atteindre la version 1.0

    Compose est un framework Kotlin, et Kotlin et Android Studio (l’IDE Android officiel) proviennent de la société d’outils de développement JetBrains. Bien que Jetpack Compose soit uniquement Android (contrairement au framework Flutter de Google), JetBrains pensait que Compose pouvait également être multiplateforme. Compose Multiplatform est un portage du framework pour macOS, Linux, Windows et Web. La version 1.0 Alpha vient de sortir. Bien qu’il s’agisse d’une première version, JetBrains nous a dit qu’elle “fournit des API stables que les développeurs devraient déjà pouvoir utiliser en toute sécurité”.

    Nous avons demandé à Nikolay Igotti, responsable de Compose chez JetBrains, pourquoi la société investit dans Compose for Desktop alors qu’elle dispose déjà d’un framework Java multiplateforme pour les applications de bureau, utilisé dans son IDE IntelliJ IDEA et ses nombreuses variantes. “C’est à peu près Swing avec quelques modifications”, a déclaré Igotti. “Swing est le framework d’interface utilisateur JDK par défaut, Swing et AWT (Abstract Windows Toolkit). Compose est un framework complètement différent, bien que nous fournissions l’interopérabilité… Swing est un framework assez ancien, sorti à la fin des années 90, depuis lors, les gens ont changé le façon dont ils pensent à l’interface utilisateur.”

    Un projet Compose for Desktop dans l'IDE JetBrains

    Un projet Compose for Desktop dans l’IDE JetBrains

    Compose a une chose en commun avec Swing : il dessine ses propres contrôles, contrairement à certains frameworks multiplateformes – SWT de Java (Standard Widget Toolkit) ou Xamarin de Microsoft, par exemple – qui utilisent des contrôles natifs. Compose utilise la bibliothèque graphique open source Skia, également utilisée par Google Chrome, Flutter et de nombreux autres frameworks. Cela signifie-t-il qu’une application Compose n’aura pas une apparence native ? “C’est au développeur de décider comment il thématise son application”, a déclaré Igotti. “C’est une situation similaire à d’autres frameworks comme Flutter à cet égard.”

    Une application Compose for Desktop dépend-elle de la JVM (Java Virtual Machine) ? “Nous réalisons que la distribution d’une application JVM peut être quelque peu délicate”, nous a dit Igotti. “Nous avons notre propre plugin Gradle et cela utilise jpackage et Jlink pour créer des applications natives à partir d’applications JVM. Vous obtenez .dmg pour Mac, MSI pour Windows, package .deb pour Linux, vous ne pensez pas à la JVM. ” Cela dit, c’est une application JVM sous les couvertures, même s’il existe un compilateur Kotlin/Native qui évite cela. “Il sera utilisé à l’avenir ou pour le développement de bureau”, a déclaré Igotti.

    Compose for Desktop : un début

    Compose for Desktop : un début

    Et les applications web ? “Nous utilisons le compilateur Kotlin/JS”, a déclaré Igotti. La version Web de Compose n’est pas aussi avancée que la version de bureau, et les documents avertissent que “l’API n’est pas finalisée et que des modifications importantes peuvent être attendues”. De plus, bien que la version Web utilise le modèle Compose, l’API est différente et utilise HTML et CSS, donc moins de code peut être partagé avec Compose for Desktop.

    « Composer est une façon différente de penser aux applications », a déclaré Igotti. “L’état est une source de vérité pour l’interface utilisateur, et l’interface utilisateur est sans état, elle est toujours calculée à partir de l’état. À cet égard, Compose [for web] partage le même ensemble de primitives, la gestion de l’état est partagée. Si vous parlez de l’ensemble exact de widgets, de la façon dont ils sont organisés, ce n’est pas partagé”, a déclaré Igotti.

    Quel est le principal moteur de l’extension de Compose d’Android à ces autres plates-formes ? « Le public cible de Compose est constitué de trois groupes de personnes. Le premier est constitué des développeurs Android utilisant Kotlin et Compose qui souhaitent livrer sur d’autres plates-formes. Un autre est celui des développeurs Kotlin qui souhaitent écrire de nouvelles applications qui ‘écrivent une fois, s’exécutent n’importe où’. Troisièmement, les personnes qui ne connaissent pas Kotlin ou Compose mais qui souhaitent créer une interface utilisateur attrayante, nous voulons leur fournir les outils nécessaires pour le faire facilement.”

    Igotti n’a pas voulu s’engager sur des dates, mais a déclaré qu’il espérait qu’une version bêta serait livrée “à la mi-automne” et “nous espérons une version 1.0 cette année”. Le projet est open source et “c’est une attitude générale au 21e siècle que les gens ne font pas payer les frameworks”, a déclaré Igotti, avec le modèle commercial JetBrains basé sur l’outillage. “Nous voulons créer un logiciel manquant”, a-t-il déclaré.

    Notez que Compose n’a pas de concepteur visuel. “La plupart des fournisseurs veulent s’éloigner des constructeurs d’interface utilisateur graphique”, a déclaré Igotti, en faveur d’une interface utilisateur déclarative et de moyens de voir cela en avant-première. “Nous fournissons un mécanisme de prévisualisation afin que si vous mettez une certaine annotation sur la fonction composable, elle puisse être prévisualisée sans exécuter l’application.”

    JetBrains considère que les développeurs d’applications de bureau sont mal desservis, une opinion en partie informée par les propres enquêtes de développement de l’entreprise. “Le bureau est comme un citoyen de seconde classe pour beaucoup de gens… cela semble être une niche qui nécessite une certaine attention.”

    JetBrains utilisera-t-il Compose pour ses propres outils ? L’un d’eux, JetBrains Toolbox (qui gère les IDE installés), utilise déjà Compose, mais Igotti a déclaré qu’il y avait trop d’héritage pour s’attendre à ce qu’il remplace le cadre existant pour des produits comme IntelliJ IDEA. “Le composant le plus complexe et le plus important est l’éditeur, il est développé depuis 20 ans et il est très peu probable qu’il soit réécrit à moyen terme. Ce n’est pas JetBrains ou mon objectif de forcer tout le monde à écrire dans Compose. Notre objectif est de donner ceux qui ont besoin d’un meilleur cadre une chance de l’utiliser.”

    Nous avons jeté un coup d’œil rapide à Compose for Desktop à l’aide de l’édition communautaire IntelliJ IDEA et du didacticiel de base : tout cela semblait un peu avant-gardiste, mais nous avons réussi à afficher Hello World à l’écran.

    Le monde a-t-il vraiment besoin d’un autre framework multiplateforme ? Flutter de Google, bien que principalement destiné aux mobiles, cible également désormais le bureau, ainsi que iOS, que Compose ne prend actuellement pas en charge. La langue de Flutter est Dart, cependant, et bien que l’utilisation de Dart augmente (principalement à cause de Flutter), elle est toujours moins populaire que Kotlin, selon la dernière enquête de StackOverflow.

    Il y a des preuves d’élan, avec plus de 5 000 étoiles pour le référentiel GitHub et de nombreux problèmes signalés : les développeurs doivent s’attendre à quelques accrocs mais c’est un signe d’activité. Compose a une approche distinctive de la création d’interface utilisateur et la meilleure façon de l’envisager est peut-être que pour ceux qui préfèrent ce modèle grâce à son utilisation pour Android, la possibilité de cibler d’autres plates-formes sera la bienvenue. ®

    L'équipe de Comparaland

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *