Aggiungere Kotlin Multiplatform a un progetto esistente

Per creare un modulo Kotlin Multiplatform (KMP) all'interno del tuo progetto Android, utilizza il modello Modulo condiviso Kotlin Multiplatform, disponibile in Android Studio Meerkat e Android Gradle Plugin versione 8.8.0 e successive.

Il modello di modulo automatizza la creazione di un nuovo modulo con la configurazione minima per le piattaforme Android e iOS.

Configurare il modulo KMP condiviso

Per creare un modulo KMP condiviso:

  1. Seleziona File > Nuovo > Nuovo modulo.
  2. Seleziona il modello Modulo condiviso Kotlin multipiattaforma nel riquadro Modelli:
Creazione di un nuovo modulo KMP
Figura 1. Creazione di un nuovo modulo KMP

I campi nel modello sono i seguenti:

  • Nome del modulo: definisce il nome del modulo Gradle, nonché il nome del framework iOS (può essere modificato in un secondo momento)
  • Nome pacchetto: definisce il nome del pacchetto per i file di questo modulo
    1. Fai clic su Fine e consenti a Gradle di sincronizzarsi con il progetto. Ti potrebbe anche essere chiesto di aggiungere i file del modulo appena creati al controllo di origine.

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, come per le altre dipendenze Android

dependencies {
    ...
    implementation(project(":shared"))
}

Una volta attivata, potrai accedere al codice come di consueto. Dall'app per Android, puoi accedere al codice disponibile in androidMain o in commonMain.

Per ulteriori informazioni sulla struttura del progetto Kotlin Multiplatform, consulta le nozioni di base sulla struttura del progetto 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
  }
}

Per informazioni sulla definizione di altri tipi di architettura, consulta la sezione Struttura del progetto gerarchica.

Per consentire l'accesso al codice condiviso dal progetto iOS, aggiungi una fase di script per generare il framework Kotlin prima di compilare i sorgenti Swift:

  1. Fai clic con il tasto destro del mouse sul file in Android Studio e seleziona Apri in e Apri in applicazione associata. Si aprirà l'app per iOS in Xcode.
Apri nell'applicazione associata
Figura 3. Apri nell'applicazione associata
  1. Apri le impostazioni del progetto facendo doppio clic sul nome del progetto nel navigatore del progetto.
Finestra di dialogo delle impostazioni del progetto Xcode
Figura 4. Finestra di dialogo delle impostazioni del progetto Xcode
  1. Modifica il nome predefinito Esegui script in Compila framework Kotlin per identificare meglio la funzione di questa fase. Fai doppio clic sul titolo Esegui script per modificarlo.
  2. Espandi la fase di compilazione e nel campo di testo Shell inserisci il seguente codice script:
Aggiunta di una nuova fase di compilazione dello script di esecuzione
Figura 5. Esegui la fase di compilazione dello script
  1. Trascina la fase Esegui script prima della fase Compila origini.

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

  2. Compila il progetto in Xcode facendo clic su ⌘B o andando al menu Prodotto e selezionando Compila.

Quando la compilazione è riuscita, viene visualizzata la seguente icona.

Creazione 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 del modulo condiviso, segui questi passaggi:

  1. Nel progetto per iOS, apri il file ContentView.swift all'indirizzo: Sources/View/ContentView.swift
  2. Aggiungi l'importazione sharedKit nella parte superiore del file.
  3. Modifica la visualizzazione di testo in modo da includere le informazioni Platform_iosKt.platform() nella stringa visualizzata come segue:

Questo aggiornamento verifica se l'app Fruitties 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

Se non hai mai sviluppato KMP, consulta la documentazione ufficiale di KMP per altre guide. Se non hai esperienza nello sviluppo per iOS, consulta la documentazione di Swift Basics.