Configurer votre environnement (multiplateforme Kotlin)

La multiplateforme Kotlin (KMP) permet de partager du code Kotlin sur différentes plates-formes. Avant de commencer à créer des applications avec KMP, vous devez configurer votre environnement comme décrit dans ce document. Vous pouvez également consulter la documentation officielle de JetBrain.

Installer ou mettre à jour les outils requis

  • Installez la dernière version stable d'Android Studio ou installez la dernière version.
  • Mettez à jour le plug-in Kotlin fourni avec Android Studio vers la dernière version pour éviter les problèmes de compatibilité.
  • (Facultatif) Pour le développement iOS, installez Xcode pour compiler l'UI et ajouter le code Swift ou Objective-C selon vos besoins.

Créer un projet multiplateforme Kotlin

Vous pouvez utiliser l'assistant multiplateforme Kotlin de JetBrains pour créer un projet KMP. Veillez à sélectionner l'option Do not share UI (Ne pas partager l'UI) pour conserver l'UI native.

Structure du projet

Les projets KMP suivent une structure de projet semblable à celle des projets Android.

Un projet KMP contient des modules spécifiques à la plate-forme ainsi qu'un module partagé. Ajoutez le code spécifique à votre plate-forme dans le module concerné. Par exemple, ajoutez l'interface utilisateur de votre application Android dans le module androidApp et celle de votre application iOS dans iosApp. Tout code que vous souhaitez partager entre les plates-formes est placé dans le module shared (partagé).

Le module partagé utilise Gradle comme système de compilation, tout comme le reste du projet. Vous pouvez déclarer des dépendances communes et spécifiques à une plate-forme à l'aide d'ensembles de sources. Par exemple, si votre application utilise Ktor pour la mise en réseau, vous devez ajouter une dépendance OkHttp pour Android et une dépendance Darwin pour iOS. Notez que certaines bibliothèques ne nécessitent que des dépendances courantes et n'ont pas besoin de dépendances spécifiques à la plate-forme.

sourceSets {
   commonMain.dependencies {
       //put your multiplatform dependencies here
       //...
       implementation(libs.ktor.client.core)
       implementation(libs.ktor.client.content.negotiation)
       implementation(libs.ktor.serialization.kotlinx.json)
       //...
   }
   androidMain.dependencies {
       implementation(libs.ktor.client.okhttp)
   }
   iosMain.dependencies {
       implementation(libs.ktor.client.darwin)
   }
}

Lorsque vous ajoutez une bibliothèque au module partagé de votre application, assurez-vous de vérifier les dépendances requises pour chaque plate-forme.