Configura il tuo ambiente (Kotlin Multiplatform)

Kotlin Multiplatform (KMP) consente la condivisione del codice Kotlin su diverse piattaforme. Prima di iniziare a creare app con KMP, dovrai e configurare l'ambiente come descritto in questo documento. Puoi anche fare riferimento La documentazione ufficiale di Jetbrain.

Installare o aggiornare gli strumenti necessari

  • Installa o esegui l'aggiornamento all'ultima versione stabile di Android Studio.
  • Aggiornare il plug-in Kotlin integrato in Android Studio. all'ultima versione per evitare problemi di compatibilità.
  • (Facoltativo) Per lo sviluppo iOS, installa Xcode per creare il UI e aggiungi codice Swift o Objective-C a seconda delle esigenze.

Crea un progetto multipiattaforma Kotlin

Puoi usare la procedura guidata multipiattaforma di Kotlin di JetBrains per creare un nuovo progetto KMP. Assicurati di scegliere il pulsante Non condividi UI per mantenere la UI nativa.

Struttura del progetto

I progetti KMP seguono una struttura simile a quella dei progetti Android.

Un progetto KMP contiene moduli specifici della piattaforma insieme a un modulo condiviso. Aggiungi il codice specifico della piattaforma al modulo pertinente. Ad esempio, aggiungi il tuo UI dell'app per Android nel modulo androidApp e UI dell'app per iOS in iosApp. Qualsiasi codice che vuoi condividere tra le piattaforme viene inserito nel modulo condiviso.

Il modulo condiviso utilizza Gradle come sistema di compilazione, proprio come il resto progetto. Puoi dichiarare dipendenze comuni e specifiche della piattaforma utilizzando set di origini dati. Ad esempio, se la tua app utilizza Ktor per il networking, devi aggiungere una dipendenza OkHttp per Android e una dipendenza darwin per iOS. Tieni presente che alcune richiedono solo dipendenze comuni e non hanno bisogno di specifiche della piattaforma delle dipendenze.

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)
   }
}

Quando aggiungi una nuova libreria al modulo condiviso della tua app, assicurati di controllare le dipendenze richieste per ogni piattaforma.