Aggiungere Kotlin Multiplatform a un progetto esistente

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:

  1. Seleziona File > New > New Module (File > Nuovo > Nuovo modulo).
  2. Seleziona il modello Kotlin Multiplatform Shared Module nel riquadro Templates:
Creazione di un nuovo modulo KMP
Figura 1. Creazione di un nuovo modulo KMP

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
    1. 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.

Visualizzazione del progetto che mostra i nuovi moduli condivisi
Figura 2. Visualizzazione del progetto che mostra i nuovi moduli condivisi

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.

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:

  1. 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 nell'applicazione associata
Figura 3. Apri nell'applicazione associata
  1. Apri le impostazioni progetto facendo doppio clic sul nome del progetto nel navigatore dei progetti.
Finestra di dialogo delle impostazioni progetto Xcode
Figura 4. Finestra di dialogo delle impostazioni progetto Xcode
  1. 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.
  2. Espandi la fase di build e, nel campo di testo Shell, inserisci il seguente codice di script:
Aggiunta di una nuova fase di build dello script di esecuzione
Figura 5. Run script build phase
  1. Trascina la fase Run Script prima della fase Compile Sources.

    Esegui la fase di build dello script prima di compilare le origini
    Figura 6. Esegui la fase di creazione dello script prima di compilare le origini

  2. 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.

Build riuscita mostrata in Xcode
Figura 7. Build riuscita

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:

  1. Nel progetto iOS, apri il file ContentView.swift in: Sources/View/ContentView.swift
  2. Aggiungi import sharedKit all'inizio del file.
  3. 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.

Simulatore Xcode che esegue l'app per iOS
Figura 8. Simulatore Xcode che esegue l'app per iOS

Risorse aggiuntive