A la découverte de Compose Multiplatform

Chez Sedona, nous avons à cœur de suivre les évolutions technologiques pour proposer des solutions innovantes à nos clients. Ces dernières années le développement mobile hybride s’est amélioré pour faciliter la création d’applications iOS et Android avec un code source partagé. Ces applications hybrides s’opposent donc par définition aux applications natives qui elles ont leur propre code source pour chaque plateforme et s’appuient sur les langages de développements spécifiques à chaque OS.  

Il existe plusieurs technologies hybrides sur le marché comme Flutter, Ionic ou encore React Native mais celle qui nous intéresse aujourd’hui est Compose Multiplatform qui combine la puissance du langage de programmation Kotlin et du framework graphique Jetpack Compose. 

L’essor de Kotlin Multiplaform Mobile (KMM) 

KMM est apparu comme une solution aux défis posés par la création d’applications fonctionnant sur plusieurs plateformes. Développé par JetBrains, les créateurs du langage Kotlin, KMM permet aux développeurs de partager la logique métier entre différentes plateformes, telles qu’Android, iOS ou encore le web. Cela permet non seulement de gagner du temps et d’économiser des ressources, mais aussi de garantir la cohérence et la maintenabilité entre les différentes plateformes. 

KMM y parvient en fournissant un ensemble d’outils et de bibliothèques permettant aux développeurs d’écrire du code partagé en Kotlin, tout en fournissant des implémentations spécifiques à la plateforme si nécessaire. Cette approche établit un équilibre entre la réutilisation du code et l’optimisation spécifique à la plateforme, offrant aux développeurs la flexibilité dont ils ont besoin. 

Compose Multiplatform 

Développé par Google, Jetpack Compose fournit un ensemble de composants graphiques réutilisables afin de concevoir des écrans d’application mobile sur Android. De manière similaire à React (Native) ou encore SwiftUI, il s’appuie sur un modèle de programmation déclaratif permettant aux développeurs de décrire une interface utilisateur à l’aide d’une syntaxe concise et intuitive, réduisant notamment les incohérences liées à une mauvaise gestion de l’affichage des données. 

Alors que Kotlin Multiplatform permet aux développeurs de mutualiser les règles métiers, Compose Multiplatfom pousse le concept un peu plus loin en mutualisant la partie graphique. Cela permet non seulement d’accélérer le développement, mais surtout de réduire les différences entre les interfaces utilisateurs iOS et Android. 

Synergie 

Le mariage de KMM et Compose permet aux développeurs de partager du code simplement tout en créant des interfaces dynamiques et cohérentes entre les différentes plateformes. Avec Kotlin Multiplatform, la majorité de la logique métier, des modèles de données et des opérations réseaux peuvent être partagés ce qui garantit un comportement identique et réduit la probabilité de bugs causés par des implémentations différentes. Compose Multiplatform quant à lui étend la puissance de Jetpack Compose à plusieurs plateformes, permettant aux développeurs de créer des interfaces utilisateurs visuellement riches et responsives. 

Le gain de temps durant la phase de développement se poursuit durant la phase de recette car il suffira de tester la partie spécifique sur chaque OS (gestion du Bluetooth, de la géolocalisation, du Player audio ou vidéo, etc.) et la partie mutualisée sur un seul. 

Conclusion 

Kotlin Multiplatform et Compose Multiplatform représentent un changement de paradigme dans le monde du développement d’applications mobiles, car il s’appuie sur des technologies déjà utilisées par les développeurs natifs. 

Chez Sedona nous avons décidé de capitaliser sur notre expertise en développement d’applications mobiles natives en alliant nos savoir-faire sur Android et iOS. Notre expérience en développement Kotlin et Compose nous permet de recourir aux développements spécifiques iOS lorsque cela s’avère nécessaire. 

Cependant ces technologies restent encore assez jeunes à ce jour (de nombreuses fonctionnalités sont encore en Alpha ou Bêta) et ne sont pas encore viables pour tous les usages. Si l’application requiert de nombreuses fonctionnalités spécifiques à une plateforme, KMM et Compose Multiplatform ne sont peut-être pas le meilleur choix et le développement natif serait sûrement plus efficient. 

Kotlin Multiplatform et Compose Multiplatform restent néanmoins très prometteuses. Il pourrait s’agir d’une alternative viable à Flutter et au développement natif, mais l’avenir nous le dira. En attendant, nous continuerons à étudier l’ensemble des technologies afin de toujours proposer la solution adaptée aux besoins et au budget de nos clients. 

Bibliographie 

 Article rédigé par Clément Genot