Hello,
Je voulais partager une étape un peu technique mais importante dans le développement de g8 : la migration vers Kotlin Multiplatform (KMP) est faite !
Toute la partie Android tourne nickel avec la nouvelle architecture KMP.
Alors KMP, ça ne vous dit peut ĂȘtre rien, mais câest une techno qui utilise le langage de dĂ©veloppement Kotlin et permet de partager une grande majoritĂ© du code entre Android, iOS et desktop (appli bureau), tout en gardant des interfaces natives pour chaque plateforme. DâoĂč le nom "Kotlin multi-plateformeâ.
ConcrĂštement, ça veut dire quâĂ terme, g8 fonctionnera sur tĂ©lĂ©phone Android ou iPhone, et sur ordinateur, sans devoir réécrire toute lâapplication trois fois ![]()
Pourquoi ce choix ?
DĂ©jĂ , Kotlin câest le langage que jâai appris Ă mes dĂ©buts et je lâadore (enfin, jâai connu Java pour android aussi.. un beau chantierâŠ
). Il est expressif, concis, et super agréable à utiliser au quotidien.
Et KMP, câest comme Kotlin pour Android, mais on peut rĂ©utiliser jusquâĂ 90-95% du mĂȘme code pour crĂ©er les applis pour dâautres plateformes (iOS, desktop, web). Les 5% restants sont des bouts de code spĂ©cifiques au systĂšme dâexploitation, par exemple le son ou le stockage de fichiers.
KMP câest une techno rĂ©cente, pas encore trĂšs adoptĂ©e dans lâindustrie car il y a dâautres choix plus anciens pour du code multiplateforme, Flutter ou React Native notamment. Mais :
-
Ils sont basés sur des langages que je ne connais pas bien (Dart pour Flutter, JavaScript pour React)
-
Flutter, déjà essayé, pas du tout adopté..
-
Et surtout, câest pas vraiment natif : avec Flutter ou React Native, lâapp doit embarquer tout un environnement pour fonctionner. Avec KMP, le code est compilĂ© sans couche intermĂ©diaire (pour Android, en bytecode JVM comme du code Android standard)
La bonne surprise : lâAPK ne grossit pas !
Un Ă©norme bonus, câest que la migration Android pur > KMP nâalourdit presque pas lâapplication : la taille de lâAPK (le petit paquet dans lequel est inclus lâappli) de đđ est passĂ©e de 9,9 Mo Ă 10 Mo. Autant dire que câest nĂ©gligeable ! Je trouve ça sublime.
2 raisons Ă cela :
- KMP ne rajoute pas de « runtime » supplémentaire (moteur graphique, machine virtuelle) comme le font les autres solutions multi-plateforme
- Le code spĂ©cifique Ă iOS (ou bureau) nâest pas inclus dans lâAPK Android (et inversement).
Et maintenant ?
Cette migration ouvre la porte Ă la version iOS et bureau de g8 â> jây travaille, câest pour bientĂŽt !
En parallĂšle, lâapp Android continue dâĂ©voluer ![]()
âââââââ
Des questions sur KMP ou sur cette migration ? Toujours dispo pour en discuter !