Kotlin Multiplatform Mobile (KMM) est un SDK pour le développement mobile multiplateforme, fourni par JetBrains. Il utilise les fonctionnalités multiplateformes de Kotlin et comprend divers outils et fonctionnalités conçus pour rendre l’expérience globale de création d’applications mobiles multiplateformes aussi plaisante et efficace que possible.Les versions Android et iOS d’une application ont souvent beaucoup en commun, mais elles peuvent également présenter des différences significatives, en particulier au niveau de l’interface utilisateur. Ces différences sont plus ou moins importantes, pouvant aller de subtiles variations du comportement de défilement jusqu’à une logique de navigation complètement divergente. Pour autant, la logique métier de l’application, notamment en ce qui concerne les fonctionnalités de gestion des données, d’analyse et d’authentification, est souvent identique. C’est pourquoi il est naturel de partager certaines parties d’une application entre plusieurs plateformes tout en gardant d’autres parties complètement séparées.
Avec KMM, vous pouvez bénéficier de cette flexibilité tout en conservant les avantages de la programmation native. Utilisez une seule base de code pour la logique métier des applications iOS et Android et n’écrivez du code spécifique à la plateforme qu’en cas de nécessité, pour implémenter une interface utilisateur native ou lorsque vous travaillez avec des API spécifiques à la plateforme.
KMM s’intègre harmonieusement à votre projet mobile. Le code partagé, écrit en Kotlin, est compilé en bytecode JVM avec Kotlin/JVM et en binaires natifs avec Kotlin/Native. Vous pouvez donc utiliser vos modules de logique métier KMM comme n’importe quelle autre bibliothèque mobile standard.
Netflix entre dans le bain
Parmi les entités qui ont fait un retour d'expérience positif avec l'intégration de KMM figurent entre autres :
- Quizlet qui a migré sa logique métier d’une approche JavaScript partagée vers KMM et a considérablement amélioré les performances de ses applications Android et iOS.
- Fastwork qui a introduit KMM pour les couches domaine et données de son application afin de partager la logique métier et le service API entre les plateformes mobiles, ce qui a considérablement augmenté la productivité de son équipe.
- Yandex.Disk qui a commencé avec l’intégration d’une petite fonctionnalité. Suite à la réussite de l’expérience, la société a implémenté toute sa logique de synchronisation des données dans KMM.
Cette fois-ci, Netflix a choisi de tenter l'expérience. Dans un billet de blog, Netflix explique :
« Au cours des dernières années, Netflix a développé une application mobile appelée Prodicle pour innover dans la production physique d'émissions de télévision et de films. Le monde de la production physique évolue rapidement et les besoins varient considérablement d'un pays, d'une région à l'autre et même d'une production à l'autre. La nature du travail signifie que nous développons des logiciels gourmands en écriture, dans un environnement distribué, sur des appareils où moins d'un de nos utilisateurs sur trois ont une connectivité très fiable lorsqu'ils sont sur le plateau, et avec une marge d'erreur limitée. Pour ces raisons, en tant que petite équipe d'ingénierie, nous avons constaté que l'optimisation de la fiabilité et de la rapidité de livraison des produits est nécessaire pour répondre avec succès aux besoins en constante évolution de nos clients.
« La forte probabilité d'une connectivité réseau non fiable nous a amenés à nous tourner vers des solutions mobiles pour une persistance robuste côté client et un support hors ligne. La nécessité d'une livraison rapide des produits nous a conduits à expérimenter une architecture multiplateforme. Nous allons maintenant plus loin en utilisant Kotlin Multiplatform pour écrire une fois dans Kotlin une logique métier indépendante de la plateforme et en compilant vers une bibliothèque Kotlin pour Android et un Universal Framework pour iOS via Kotlin / Native. »
Netflix rappelle que Kotlin Multiplatform Mobile aborde le développement mobile multiplateforme différemment de certaines technologies bien connues dans l'espace. Là où d'autres technologies font abstraction ou remplacent complètement le développement d'applications spécifiques à une plateforme, Kotlin Multiplatform est complémentaire aux technologies spécifiques à la plateforme existantes et vise à remplacer la logique métier indépendante de la plateforme. C’est un nouvel outil dans la boîte à outils par opposition au...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.