Kotlin Multiplatform (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 JetBrains.
Installer ou mettre à jour les outils requis
- Installez ou passez à la dernière version stable d'Android Studio.
- 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 créer l'UI et ajouter du code Swift ou Objective-C si nécessaire.
Créer un projet multiplateforme Kotlin
Vous pouvez utiliser l'assistant Kotlin Multiplateforme de JetBrains pour créer un projet KMP. Veillez à sélectionner l'option 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 votre code spécifique à la plate-forme au module approprié. Par exemple, ajoutez l'UI de votre application Android dans le module androidApp et l'UI de votre application iOS dans iosApp. Tout code que vous souhaitez partager entre les plates-formes doit être placé dans le module partagé.
Le module partagé utilise Gradle comme système de compilation, tout comme le reste du projet. Vous pouvez déclarer des dépendances courantes et spécifiques à la plate-forme à l'aide de sourcesets. 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 ne nécessitent pas 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.