🩇 AvancĂ©e majeure : g8 passe en Kotlin Multiplatform!

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 :relieved_face:

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
 :face_holding_back_tears: ). 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 :slight_smile:

——————–

Des questions sur KMP ou sur cette migration ? Toujours dispo pour en discuter !