Développement d’applications Android/iOS avec Kotlin Multiplatform - KMP / KMM
Le développement d’applications mobiles natives implique souvent un double coût : un développement iOS pour les terminaux Apple, et un développement Android (smartphones Google Pixel, Samsung, Huawei, Fairphone …). En plus de ce double coût de développement, vient souvent un risque de différences métiers entre les deux applications développées liées à un manque de cohésion entre les équipes de développement iOS et Android.
Au cours de différentes expériences en tant que développeur et lead mobile, nous avons réfléchi avec des collègues à l’amélioration de cette cohésion d’équipe et à la diminution des coûts. Il m’est ainsi possible de vous partager cette expertise dans mes accompagnements.
Kotlin Multiplatform (KMP)
Kotlin Multiplatform est une technologie permettant de préserver les avantages des applications natives tout en partageant une partie de code en commun entre les deux plates-formes.
Il est aujourd’hui possible de partager la quasi-totalité du code métier des applications mobiles à l’aide de Kotlin Multiplatform.
Je travaille également à partager la couche de présentation (vue, vue-modèle) de certaines applications. Compose Multiplatform permet d’aller plus loin avec KMP et de mutualiser la création des vues des applications mobiles. S’agissant d’un Framework qui est encore au stade alpha, il n’est pas destiné encore aux applications grand public en production mais peut être intéressant dans le cadre de développement de MVP, de PoC ou d’applications métiers à périmètre restreint.
Au delà du code … la méthodologie
Les coûts de développement ne s’arrêtent pas à la quantité de code généré. Le développement de deux applications distinctes, une pour Android, et une seconde pour iOS, présentent également certains risques et tâches pouvant être dupliquées :
- divergence fonctionnelle liée à une interprétation différente des spécifications
- temps passé en double à essayer de comprendre les spécifications fonctionnelles et techniques
- travail en double sur les échanges liés au design et à leur utilisation
Pour limiter ces risques et remédier à ces surcoûts, il existe des solutions que je peux vous aider à mettre en place au sein des équipes de développement :
- réalisation d’un design system
- ateliers de réflexion sur le design
- définition des besoins liés au développement pour le designer
- définition des processus de validation
- mise en place de cahiers de tests communs entre les plates-formes
- définition d’architectures logicielles communes et de pseudo-code.
Un travail d’équipe
Je travaille régulièrement avec les mêmes collègues, indépendants également, qui ont des compétences complémentaires (développement iOS, design d’application UI/UX). Nous avons ensemble développé nos méthodes et outils de travail afin d’optimiser notre travail en équipe, d’améliorer notre communication et de proposer une meilleure qualité sur les produits réalisés.
Si votre besoin va au-delà du développement d’une application Android, je peux ainsi vous proposer des profils freelance complémentaires. Vous vous dotez ainsi d’une équipe de développement d’applications mobiles au complet et déjà rodée.