Pour créer un module Kotlin Multiplatform (KMP) dans votre projet Android, utilisez le modèle Module partagé Kotlin Multiplatform, disponible dans Android Studio Meerkat et le plug-in Android Gradle 8.8.0 ou version ultérieure.
Le modèle de module automatise la création d'un module avec la configuration minimale ciblant les plates-formes Android et iOS. KMP est également compatible avec d'autres cibles, telles que les ordinateurs et le Web, que vous pourrez ajouter au module ultérieurement. Pour obtenir la liste complète, consultez Stabilité des plates-formes compatibles. Pour déclarer une cible, consultez Targets (Cibles) dans la documentation de référence sur le DSL Gradle multiplateforme.
Configurer le module KMP partagé
Pour créer un module KMP partagé, procédez comme suit :
- Sélectionnez File > New > New Module (Fichier > Nouveau > Nouveau module).
- Sélectionnez le modèle Kotlin Multiplatform Shared Module (Module partagé Kotlin Multiplatform) dans le panneau Templates (Modèles) :
Les champs du modèle sont les suivants :
- Module name (Nom du module) : définit le nom du module Gradle, ainsi que le nom du framework iOS (peut être modifié ultérieurement)
- Package name (Nom du package) : définit le nom du package pour les fichiers de ce module.
- Cliquez sur Finish (Terminer) et autorisez Gradle à se synchroniser avec le projet. Vous pouvez également être invité à ajouter les fichiers du module que vous venez de créer au contrôle des sources.
Une fois l'opération terminée, la vue Projet d'Android Studio affiche le nouveau module partagé ainsi qu'un ensemble de sources pour chaque plate-forme.
Associer le module partagé à l'application Android
L'assistant de module n'ajoute pas le module nouvellement créé en tant que dépendance à un module existant. Ensuite, vous devez associer le module partagé à l'un de vos modules Gradle existants, comme pour les autres dépendances Android :
dependencies {
...
implementation(project(":shared"))
}
Une fois activé, vous pouvez accéder au code comme d'habitude. Depuis l'application Android, vous pouvez accéder au code disponible dans androidMain ou commonMain.
Pour en savoir plus sur la structure d'un projet Kotlin Multiplatform, consultez Principes de base de la structure d'un projet Kotlin Multiplatform.
Configurer le module partagé dans l'application iOS
Swift ne peut pas utiliser directement les modules Kotlin. Il nécessite la production d'un framework binaire compilé.
Le nouveau modèle de module dans Android Studio configure le module partagé pour produire un framework pour chacune des architectures iOS. Vous trouverez le code suivant dans le fichier build.gradle.kts du module partagé :
val xcfName = "sharedKit"
iosX64 {
binaries.framework {
baseName = xcfName
}
}
iosArm64 {
binaries.framework {
baseName = xcfName
}
}
iosSimulatorArm64 {
binaries.framework {
baseName = xcfName
}
}
Pour en savoir plus sur la définition d'autres types d'architecture, consultez Structure de projet hiérarchique.
Associer la bibliothèque partagée au projet iOS
Pour permettre l'accès au code partagé depuis le projet iOS, ajoutez une phase de script pour générer le framework Kotlin avant de compiler les sources Swift :
- Effectuez un clic droit sur le fichier dans Android Studio, puis sélectionnez Ouvrir dans et Ouvrir dans l'application associée. L'application iOS s'ouvre alors dans Xcode.
- Ouvrez les paramètres du projet en double-cliquant sur le nom du projet dans le navigateur de projets.
- Remplacez le nom par défaut Exécuter le script par Compiler le framework Kotlin pour mieux identifier la fonction de cette phase. Double-cliquez sur le titre Exécuter le script pour le modifier.
- Développez la phase de compilation, puis saisissez le code du script suivant dans le champ de texte Shell :
Faites glisser la phase Exécuter le script avant la phase Compiler les sources.
Figure 6. Exécuter la phase de compilation du script avant de compiler les sources Compilez le projet dans Xcode en appuyant sur ⌘B ou en accédant au menu Produit et en sélectionnant Compiler.
Une fois la compilation terminée, l'icône suivante s'affiche.
Accéder au code partagé dans l'application iOS
Pour vérifier que l'application iOS peut accéder au code du module partagé, procédez comme suit :
- Dans le projet iOS, ouvrez le fichier
ContentView.swiftdans le répertoireSources/View/ContentView.swift. - Ajoutez l'importation
sharedKiten haut du fichier. - Modifiez la vue Text pour inclure les informations
Platform_iosKt.platform()dans la chaîne affichée, comme suit :
Cette mise à jour vérifie si l'application peut appeler la fonction platform() à partir du module partagé, qui doit renvoyer "iOS" lorsqu'elle s'exécute sur la plate-forme iOS.
Autres ressources
- Si vous débutez dans le développement KMP, consultez la documentation officielle de KMP pour obtenir d'autres guides.
- Si vous débutez dans le développement iOS, consultez la documentation sur les principes de base de Swift.
- Pour les problèmes de configuration courants de KMP, consultez la section Dépannage du guide de démarrage rapide de KMP.
- Pour obtenir des exemples d'applications, consultez Exemples Kotlin Multiplatform pour Android.