Retour aux articles
  • 04.03.2021

Pourquoi utiliser Kotlin Multiplatform en 2021 ?

Pourquoi utiliser Kotlin Multiplatform en 2021 ?

Jusqu’à récemment, les développeurs avaient une préférence pour les applications natives. Aujourd'hui la tendance s’inverse, les sociétés et les développeurs recherchent une technologie qui leur permette de partager du code entre les plateformes tout en garantissant l'absence de tout problème de performances.

React Native de Facebook est toujours le framework de référence pour la création d'applications multiplateformes. Malgré cela, Flutter de Google a pris de l'ampleur et est en train d'avaler React Native, et les frameworks Xamarin et Ionic commencent à voir leur popularité décliner.

Pourtant, malgré l'abondance des technologies multiplateformes, il est rare de trouver une application hybride qui soit aussi performante qu'une application native. Les raisons de cette différence drastique de performances pourraient être attribuées au fait que la plupart de ces frameworks contiennent essentiellement des vues d'interface utilisateur encapsulé, seul Flutter possède un framework qui exécute une API de dessin de bas niveau en natif.

 

Kotlin Multiplatform 

Les lacunes de tous les autres framework font que Kotlin Multiplatform devient la meilleure alternative. Kotlin Multiplatforms de JetBrains qui permet aux développeurs d'exécuter le code Kotlin en natif sur Android, iOS, Windows, Linux, macOS et d'autres appareils embarqués. Le fait que Kotlin Multiplatforms offre la possibilité de créer des applications multiplateformes avec exactement la même expérience que les applications natives garantit un avenir prometteur à ce framework.

Kotlin Multiplatform vs React Native vs Flutter

Malgré les avantages d'un écosystème mature, React Native n'a pas vraiment tenu sa promesse d'un code unique qui fonctionne à la fois sur Android et sur iOS. 

Au-delà du langage de conception unique fourni par React Native pour écrire le code de l'interface utilisateur, un développeur sera toujours obligé de faire reposer sa base de code sur les API spécifiques à la plate-forme pour Android et iOS. Ce problème n'a conduit qu'à des problèmes d'extensibilité avec beaucoup de code ponté entre JavaScript et les plateformes natives. Les animations sur React Native étaient loin d'être natives et causaient des limitations de performances.

En revanche, Flutter a résolu un grand nombre de ces problèmes pour les développeurs multiplateformes. Tout d'abord, il dispose de son propre moteur de rendu, qui permet à la fois de créer et d'exécuter des applications performantes. La fonction de rechargement à chaud (hot-reload) de Flutter facilite également le débogage sur Android et iOS. En ayant ses propres composants natifs, Flutter a fait en sorte qu'il n'y ait pas beaucoup de communication avec les API natives. Le framework Flutter a permis de remédier aux inconvénients de la plupart des outils multiplateformes en fournissant les ressources nécessaires à la création d'animations complexes. 

Pourtant, Flutter souffre principalement du manque de support pour des plateformes telles que watchOS et les applications tvOS et d'un langage qui n'est pas beaucoup utilisé. Dart, le langage utilisé dans Flutter, est minuscule comparé à Kotlin, qui dispose d'une énorme base de développeurs. Le manque d'accès, les modificateurs, les classes de données et la sécurité des types font que Dart ressemble plus à Java qu'à un langage moderne.

Kotlin Multiplatform semble plus prometteur que Flutter

Kotlin/Native, qui fait partie du framework Kotlin Multiplatform, permet d'exécuter la compilation du code Kotlin directement dans des binaires natifs et de fonctionner également sans machine virtuelle. 

Désormais, un développeur Android ayant de l'expérience avec Kotlin peut réutiliser son code dans iOS sans avoir besoin d'un framework ou d'un langage tiers. L'utilisation de Kotlin Multiplatform est donc une évidence puisqu'elle réduit considérablement le coût et le temps de développement des applications mobiles. 

Il y a un inconvénient à l’utilisation de Kotlin Multiplatform, il ne permet pas le partage de la logique de l'interface utilisateur pour le moment. Par conséquent, le développeur devrait écrire tout le code de l'interface utilisateur dans iOS en utilisant les frameworks SwiftUI / UIKit.

La bonne nouvelle est que JetPack Compose, le framework d'interface utilisateur déclaratif d'Android, est entièrement écrit dans les API de Kotlin. Il sera donc possible que Google rende son framework d’UI entièrement indépendant de la plateforme, permettant ainsi aux développeurs de concevoir des applications natives basées sur le code Kotlin sur Android et iOS.

La capacité de Kotlin à prendre en charge plusieurs cibles d'exécution, comme le fait Dart, garantit que le langage JetBrains continuera à jouer un rôle important dans Android et les futurs systèmes d'exploitation de Google. Plus important encore, la prise en charge native de Kotlin sur différentes architectures de plateforme garantit que les développeurs Android natifs ne seront pas forcés de passer à Flutter. Kotlin rend la transition vers le développement d'iOS transparente et efficace.

Tous les frameworks multiplateformes ont souffert des différences de performances entre les applications natives et hybrides. Kotlin Multiplatform est prêt à changer cela en offrant aux développeurs la possibilité d'utiliser le langage de développement d'Android pour créer des applications sur d'autres plateformes. La récente décision de Netflix de passer à Kotlin Multiplatform est un bon signal que le projet JetBrains a un avenir prometteur dans le développement d'applications.