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, devi configurare il tuo ambiente come descritto in questo documento. Puoi anche consultare la documentazione ufficiale di Jetbrain.

Installa o aggiorna gli strumenti richiesti

  • Installa o aggiorna l'app all'ultima versione stabile di Android Studio.
  • Aggiorna alla versione più recente il plug-in Kotlin integrato in Android Studio per evitare problemi di compatibilità.
  • (Facoltativo) Per lo sviluppo su iOS, installa Xcode per creare l'UI e aggiungi codice Swift o Objective-C in base alle esigenze.

Crea un progetto multipiattaforma Kotlin

Puoi utilizzare la procedura guidata multipiattaforma Kotlin di Jetbrains per creare un nuovo progetto KMP. Assicurati di scegliere l'opzione Non condividere la UI per mantenere l'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 l'UI dell'app per Android nel modulo androidApp e la tua UI dell'app per iOS in iosApp. Qualsiasi codice che vuoi condividere tra piattaforme va nel modulo condiviso.

Il modulo condiviso utilizza Gradle come sistema di compilazione, proprio come il resto del progetto. Puoi dichiarare le dipendenze comuni e specifiche della piattaforma utilizzando i set di origini. 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 librerie richiedono solo dipendenze comuni e non hanno dipendenze specifiche della piattaforma.

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 dell'app, assicurati di verificare le dipendenze richieste per ogni piattaforma.