Structure d’un projet KMM
Code partagé et code propre à la plateforme
Structure d’un projet KMM est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kotlin Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kotlin Academy comprend 4 leçons au total.
Qu’est-ce que KMM ?
Kotlin Multiplatform Mobile (KMM) vous permet de partager du code entre iOS et Android tout en conservant des interfaces utilisateur natives. Vous écrivez la logique métier une seule fois en Kotlin.
Le module partagé
Un projet KMM s’articule autour d’un module partagé. Il est compilé en bibliothèque JVM pour Android et en framework natif pour iOS.
- Android l’utilise comme une dépendance ordinaire
- iOS l’importe comme un framework Objective-C/Swift
Ensembles de sources
Le module partagé est divisé en ensembles de sources :
commonMain— code partagé et indépendant de la plateformeandroidMain— code propre à AndroidiosMain— code propre à iOS
commonMain
commonMain peut uniquement utiliser la bibliothèque standard Kotlin et les bibliothèques multiplateformes. Il ne doit pas référencer directement les API Android ou iOS.
// shared/src/commonMain/kotlin/Greeting.kt
class Greeting {
fun greet(): String = "Hello, KMM!"
}Configuration des cibles
Le fichier partagé build.gradle.kts déclare les plateformes à compiler avec le plugin multiplateforme.
kotlin {
androidTarget()
iosX64()
iosArm64()
iosSimulatorArm64()
}Le framework iOS
Les cibles iOS sont regroupées dans un seul framework qu’Xcode importe.
kotlin {
listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach {
it.binaries.framework {
baseName = "Shared"
}
}
}Dépendances communes
Les bibliothèques multiplateformes (coroutines, sérialisation, Ktor) sont placées dans commonMain afin que toutes les cibles les partagent.
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1")
}
}
}Module de l’application Android
Le module de l’application Android dépend de shared comme n’importe quel module Gradle et construit l’interface Android avec Jetpack Compose ou des vues.
// androidApp/build.gradle.kts
dependencies {
implementation(project(":shared"))
}Application iOS
L’application iOS est un projet Xcode standard. Elle lie le framework Shared généré et appelle les classes Kotlin depuis Swift.
// Swift
// import Shared
// let text = Greeting().greet()Que partager
Code généralement partagé : communication réseau, modèles de données, dépôts, cas d’utilisation et validation. Conservez l’interface utilisateur, la navigation et les capteurs de la plateforme en code natif.
Une salutation autonome
La logique partagée est du Kotlin ordinaire. Voici la même classe exécutée de manière autonome pour montrer qu’il s’agit d’un code tout à fait classique.
class Greeting {
fun greet(): String = "Hello, KMM!"
}
fun main() {
println(Greeting().greet())
}Vérification rapide
Où placez-vous le code qui doit être dépourvu de toute référence aux API Android ou iOS ?
Récapitulatif
Vous avez appris la structure de KMM :
- Un module
sharedaveccommonMain,androidMainetiosMain - Les cibles sont déclarées dans le plugin multiplateforme ; iOS obtient un framework
- Android dépend du module via
project(":shared"); iOS importe le framework
Ensuite : expect et actual.
Questions Fréquemment Posées
La leçon « Structure d’un projet KMM » est-elle gratuite ?
Oui — le texte complet de « Structure d’un projet KMM » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kotlin Academy, passe à CoddyKit PRO. Le cours Kotlin Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Structure d’un projet KMM » ?
Code partagé et code propre à la plateforme Tu pratiques Kotlin Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Kotlin Academy ?
Aucune expérience préalable n'est requise. Kotlin Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Structure d’un projet KMM » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Kotlin Academy ?
Oui. Chaque leçon Kotlin Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Structure d’un projet KMM
- expect et actual
- Partager la logique métier
- API des plateformes