Kotlin Multiplatform Mobile (KMM) è un SDK, creato da JetBrains, per sviluppare applicazioni mobile Android ed iOS.

L’idea è quella di condividere la business logic tra le due piattaforme mantenendo una UI nativa, come mostrato dall’immagine di seguito.

kmm-shared-native-modules-scaledVediamo ora come utilizzarlo, come funziona, e quali sono i vantaggi e gli svantaggi.

Come creare un progetto KMM

Per utilizzare KMM in un progetto bisogna installare il [plugin KMM per Android Studio].

Fatto ciò, saremo in grado di:

– Creare un nuovo progetto multiplatform

– Creare un nuovo modulo multiplatform per poterlo aggiungere ad un progetto esistente

– Eseguire un’applicazione iOS che utilizza un modulo multiplatform direttamente da Android Studio

Per l’ultimo punto, purtroppo, bisogna utilizzare il sistema operativo macOS.

Come funziona KMM

Come abbiamo detto, ora siamo in grado di scrivere del codice Kotlin che verrà condiviso tra l’app Android e quella iOS, ora vediamo come questo sia possibile.

Il codice condiviso viene compilato in maniera diversa in base alla piattaforma.

Quando si sta sviluppando per Android, il modulo KMM viene compilato utilizzando il compilatore Kotlin/JVM, e viene così prodotto un .jar che l’app Android può utilizzare, come una qualsiasi altra dipendenza esterna.

Quando si sta sviluppando per iOS, il modulo KMM viene compilato utilizzando il compilatore Kotlin/Native, e viene così prodotto un .framework che l’app iOS può utilizzare, come una qualsiasi altra dipendenza esterna.

Queste procedure sono trasparenti allo sviluppatore che non deve occuparsi di nulla, deve semplicemente scrivere il codice condiviso e potrà poi utilizzarlo sia nell’app Android che in quella iOS.

 Vantaggi

Il suo punto di forza è l’utilizzo di Kotlin, già conosciuto dagli sviluppatori Android, per scrivere la business logic e poterla cosi condividere tra entrambe le piattaforme.

Non dovendo condividere la UI, siamo in grado di offrire un’esperienza personalizzata per gli utenti Android e per quelli iOS.

Per quanto riguarda le performance, si ottengono le stesse di quando si scrivono due app native, non avendo necessità di un ulteriore livello di astrazione.

Inoltre, al contrario di altri framework/SDK cross/multi platform come Flutter e ReactNative, non c’è la necessità di imparare un nuovo linguaggio, come Dart e Typescript, per sviluppare un’applicazione mobile, essendo Kotlin già utilizzato per lo sviluppo di app Android.

Ovviamente, gli sviluppatori iOS dovranno avvicinarsi a Kotlin, ma questo è sicuramente più facile rispetto all’avvicinarsi a Dart o Typescript data la somiglianza con Swift.

Svantaggi

Attualmente, KMM è appena passato dalla fase Alpha a quella Beta, [JetBrains lo ha annunciato proprio qualche giorno fa].

Non essendo ancora nella fase Stable ed utilizzando anche Objective-C per creare il framework da mettere a disposizione dell’app iOS, possiamo incontrare qualche incompatibilità tra Kotlin e Swift, ma nulla che non possa essere temporaneamente risolto con qualche workaround.

È la soluzione definitiva?

Negli anni molti framework/SDK cross/multi platform sono stati sulla cresta dell’onda per poi essere abbandonati, quindi non possiamo dire che questa sia la soluzione definitiva allo sviluppo di app mobile con un solo linguaggio. Quello che è certo è che KMM è una soluzione molto promettente con indubbi vantaggi rispetto ad altre soluzioni, pertanto se non hai ancora provato ad utilizzarlo, questo è il momento giusto per farlo!

Vi aspettiamo al prossimo workshop gratuito per parlarne dal vivo insieme a Emanuele Papa!

 Clicca qui per registrarti!

Non perderti, ogni mese, gli approfondimenti sulle ultime novità in campo digital! Se vuoi sapere di più, visita la sezione “Blog“ sulla nostra pagina!

[/vc_column_text][/vc_column][/vc_row]