0Pricing
Kotlin Academy · Leçon

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 plateforme
  • androidMain — code propre à Android
  • iosMain — 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 shared avec commonMain, androidMain et iosMain
  • 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

  1. Structure d’un projet KMM
  2. expect et actual
  3. Partager la logique métier
  4. API des plateformes
← Retour à Kotlin Academy