Per creare un modulo Kotlin Multiplatform (KMP) all'interno del tuo progetto Android, utilizza il modello Kotlin Multiplatform Shared Module, disponibile in Android Studio Meerkat e nel plug-in Android per Gradle 8.8.0 e versioni successive.
Il modello di modulo automatizza la creazione di un nuovo modulo con la configurazione minima per le piattaforme Android e iOS. KMP supporta anche altre destinazioni, come computer e web, che puoi aggiungere al modulo in un secondo momento. Per l'elenco completo, consulta Stabilità delle piattaforme supportate. Per dichiarare un target, consulta Target nel riferimento DSL Gradle multipiattaforma.
Configura il modulo KMP condiviso
Per creare un modulo KMP condiviso, segui questi passaggi:
- Seleziona File > New > New Module (File > Nuovo > Nuovo modulo).
- Seleziona il modello Kotlin Multiplatform Shared Module nel riquadro Templates:
I campi del modello sono i seguenti:
- Nome del modulo: definisce il nome del modulo Gradle e il nome del framework iOS (può essere modificato in un secondo momento)
- Nome del pacchetto: definisce il nome del pacchetto per i file in questo modulo
- Fai clic su Fine e consenti a Gradle di sincronizzarsi con il progetto. Potrebbe anche esserti chiesto di aggiungere i file del modulo appena creati al controllo del codice sorgente.
Al termine, la visualizzazione Progetto di Android Studio mostra il nuovo modulo condiviso insieme a un set di origini per ogni piattaforma.
Collega il modulo condiviso all'app per Android
La procedura guidata del modulo non aggiunge il modulo appena creato come dipendenza a nessun modulo esistente. Come passaggio successivo, devi collegare il modulo condiviso a uno dei tuoi moduli Gradle esistenti, in modo simile ad altre dipendenze Android:
dependencies {
...
implementation(project(":shared"))
}
Una volta abilitata, puoi accedere al codice come di consueto. Dall'app per Android, puoi accedere al codice disponibile in androidMain o in commonMain.
Per saperne di più sulla struttura dei progetti Kotlin Multiplatform, consulta le nozioni di base sulla struttura dei progetti Kotlin Multiplatform.
Configura il modulo condiviso nell'app per iOS
Swift non può utilizzare direttamente i moduli Kotlin e richiede la produzione di un framework binario compilato.
Il nuovo modello di modulo in Android Studio configura il modulo condiviso per produrre un framework per ciascuna delle architetture iOS. Puoi trovare il seguente codice nel file build.gradle.kts del modulo condiviso:
val xcfName = "sharedKit"
iosX64 {
binaries.framework {
baseName = xcfName
}
}
iosArm64 {
binaries.framework {
baseName = xcfName
}
}
iosSimulatorArm64 {
binaries.framework {
baseName = xcfName
}
}
Consulta Struttura gerarchica del progetto per informazioni sulla definizione di altri tipi di architettura.
Collega la libreria condivisa nel progetto iOS
Per consentire l'accesso al codice condiviso dal progetto iOS, aggiungi una fase di script per generare il framework Kotlin prima di compilare le origini Swift:
- Fai clic con il tasto destro del mouse sul file in Android Studio e seleziona Apri in e Apri nell'applicazione associata. In questo modo, l'app per iOS verrà aperta in Xcode.
- Apri le impostazioni progetto facendo doppio clic sul nome del progetto nel navigatore dei progetti.
- Cambia il nome predefinito Run Script in Compile Kotlin Framework per identificare meglio l'azione di questa fase. Fai doppio clic sul titolo Esegui script per modificarlo.
- Espandi la fase di build e, nel campo di testo Shell, inserisci il seguente codice di script:
Trascina la fase Run Script prima della fase Compile Sources.
Figura 6. Esegui la fase di creazione dello script prima di compilare le origini Crea il progetto in Xcode facendo clic su ⌘B o andando al menu Prodotto e selezionando Crea.
Quando la build viene creata correttamente, viene visualizzata la seguente icona.
Accedere al codice condiviso nell'app per iOS
Per verificare che l'app per iOS possa accedere correttamente al codice dal modulo condiviso, procedi nel seguente modo:
- Nel progetto iOS, apri il file
ContentView.swiftin:Sources/View/ContentView.swift - Aggiungi import
sharedKitall'inizio del file. - Modifica la visualizzazione di testo per includere le informazioni di
Platform_iosKt.platform()nella stringa visualizzata come segue:
Questo aggiornamento verifica se l'app può chiamare la funzione platform() dal modulo condiviso, che dovrebbe restituire "iOS" quando viene eseguita sulla piattaforma iOS.
Risorse aggiuntive
- Se non hai mai utilizzato lo sviluppo KMP, consulta la documentazione ufficiale di KMP per altre guide.
- Se non hai mai sviluppato per iOS, consulta la documentazione di base di Swift.
- Per i problemi comuni di configurazione di KMP, consulta la sezione Risoluzione dei problemi nella guida rapida di KMP.
- Per le app di esempio, consulta Esempi di Android Kotlin Multiplatform.