polito.it
Politecnico di Torino (logo)

Studio di Kotlin Multiplatform Mobile come strumento per lo sviluppo di applicazioni mobile cross-platform = Study of Kotlin Multiplatform Mobile as tool for cross-platform mobile application development

Fabio Pellone

Studio di Kotlin Multiplatform Mobile come strumento per lo sviluppo di applicazioni mobile cross-platform = Study of Kotlin Multiplatform Mobile as tool for cross-platform mobile application development.

Rel. Giovanni Malnati. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Del Cinema E Dei Mezzi Di Comunicazione, 2022

[img]
Preview
PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial Share Alike.

Download (4MB) | Preview
Abstract:

Negli ultimi anni l'utilizzo di smartphone è cresciuto notevolmente, portando in molti a decidere di sviluppare applicazioni per dispositivi mobile. Una delle scelte più diffuse è quella di sviluppare nativamente per una delle due piattaforme più diffuse, Android o iOS, ma sono nati, nel tempo, anche degli strumenti per lo sviluppo di applicazioni che possano essere eseguite su entrambe. In questa tesi è stato studiato Kotlin Multiplatform Mobile, un framework per lo sviluppo mobile cross-platform di recente creazione sviluppato da JetBrains, azienda che ha creato anche il linguaggio attualmente più utilizzato per sviluppare applicazioni per Android, Kotlin. Per analizzare il framework e verificare se questo possa essere utilizzato in produzione, è stata creata un'applicazione cross-platform prendendo spunto da un'app Android già esistente, Kilood, sviluppata per il corso di Digital Interaction Design. In fase di progettazione è stata posta particolare attenzione sulla scelta dell'architettura più efficace e delle librerie più utili tra quelle compatibili. Nello specifico, è stato scelto di seguire il pattern architetturale Model-View-ViewModel (MVVM) seguendo i principi della Clean Architecture. Dal momento che la tesi è stata scritta in collaborazione con Synesthesia Srl, è stato utilizzato il pattern architetturale attualmente in uso nell'azienda, che presenta un'ulteriore suddivisione dei livelli logici definiti da MVVM e che consente una migliore organizzazione del codice in un progetto di questo tipo. Per il codice comune sono state scelte delle librerie già molto utilizzate per lo sviluppo multiplatform per via della loro ottima integrazione con il framework. Il codice che gestisce la composizione della UI deve essere specifico per le piattaforme, perciò è stato necessario scegliere due librerie differenti per implementarlo: Jetpack Compose per Android e SwiftUI per iOS. Le due librerie, in ogni caso, sono molto simili in quanto entrambe sfruttano il paradigma della programmazione dichiarativa per rendere la creazione della UI molto più intuitiva e semplice, rendendo il codice più efficiente, oltre che più facile da leggere. Durante lo sviluppo è stato necessario sopperire ad alcune limitazioni del framework creando delle classi e funzioni specifiche per permettere, in particolare, l'utilizzo dei Flow anche sulla piattaforma iOS ed una gestione delle chiamate asincrone efficiente su entrambe le piattaforme.

Relators: Giovanni Malnati
Academic year: 2021/22
Publication type: Electronic
Number of Pages: 122
Subjects:
Corso di laurea: Corso di laurea magistrale in Ingegneria Del Cinema E Dei Mezzi Di Comunicazione
Classe di laurea: New organization > Master science > LM-32 - COMPUTER SYSTEMS ENGINEERING
Aziende collaboratrici: Synesthesia srl
URI: http://webthesis.biblio.polito.it/id/eprint/23565
Modify record (reserved for operators) Modify record (reserved for operators)