L’innovazione e l’evoluzione dello sviluppo di app mobile con gli strumenti Microsoft: da Xamarin Forms a MAUI

,
MAUI: sviluppo di app mobile

Iniziamo come primo passo con il prendere confidenza con questa nuova sigla: MAUI. MAUI è l’acronimo di Multiplatform App User Interface.

Un po’ di storia: dal 2010 ad oggi

MAUI è il nuovo ambiente di sviluppo cross platform ed è l’evoluzione del precedente prodotto Xamarin Forms.

Xamarin Forms nasce nel 2010, dodici anni che in termini di innovazione mobile corrispondono in realtà ad una eternità. In quegli anni infatti veniva presentata al pubblico la prima generazione di dispositivi IOS, gli iPhone4, e contemporaneamente si iniziavano a diffondere anche i cellulari Android. Questi dispositivi andavano rapidamente a sostituire la vecchia generazione di Nokia Symbian, Blueberry e Windows Mobile.

Con l’implementazione di Xamarin, Microsoft forniva agli sviluppatori uno strumento per realizzare app su queste nuove famiglie di dispositivi.

Dopo aver fatto tesoro di tutta l’esperienza, i successi, ed anche gli errori del precedente ambiente, Microsoft ha quindi recentemente presentato il successore, MAUI, confermandosi quindi come uno dei principali player nell’ambito sviluppo cross platform, area nella quale continua ad investire risorse sia economiche che umane.

Gli altri player sono aziende del calibro di Google e Facebook che rispettivamente con React e Flutter si contendono questa fetta di mercato puntando sull’innovazione continua.

Cosa si intende con sviluppo cross-platform

Un ambiente di sviluppo cross platform consente allo sviluppatore di realizzare applicazioni per dispositivi diversi, tipicamente desktop, wearables e mobile, con sistemi operativi diversi, “scrivendo codice” che gira su tutte le piattaforme con un unico linguaggio. Questo permette di risparmiare molto tempo di sviluppo dato che non sarà necessario sviluppare quattro app distinte con quattro linguaggi distinti per Apple, Android, Windows, Mac ed infine, anche se parzialmente, Linux.

Con MAUI abbiamo quindi un solo progetto che poi distribuiamo come app nativa sui vari dispositivi.

cross-platform

Ok ma quindi cosa cambia con MAUI?

Una domanda, quindi, potrebbe sorgere spontanea: se c’era Xamarin perché creare un nuovo ambiente?

Dopo oltre dieci anni di onorato servizio Microsoft Xamarin è stato completamente riscritto e rinnovato e la sua nuova evoluzione porta principalmente cinque importanti cambiamenti:

  1. Maggior codice a fattor comune tra le piattaforme rispetto al predecessore
  2. Introduzione degli “slim renderers”
  3. Introduzione dei “modern patterns” e convergenza di Blazor e Xamarin in un’unica piattaforma
  4. Completo supporto per l’hot reloads
  5. Librerie unificate

Chi usa Xamarin deve quotidianamente gestire alcune situazioni noiose: la gestione delle immagini non a fattor comune tra le varie piattaforme, la necessità di sviluppare alcune parti del codice personalizzato per la singola piattaforma, la gestione complessa delle dipendenze dei pacchetti nuget tra i vari progetti.

Con MAUI questo è stato notevolmente semplificato dato che adesso il progetto è unico e non abbiamo più un progetto distinto per ogni piattaforma. Gli slim renderers sono l’evoluzione dei precedenti custom renderers che sono stati tolti da MAUI. I nuovi slim renderers sono molto più facili da implementare e veloci nell’esecuzione.

Su Xamarin Forms veniva utilizzato principalmente il pattern MVVM (model-view-viewmodel), molto diffuso sul mondo web, mentre MAUI supporta il moderno MVU che è invece ottimizzato per il mondo mobile. Inoltre, il mondo Blazor di sviluppo web è stato incluso in MAUI in modo da far convergere in un’unica piattaforma sia lo sviluppo web che mobile.

Infine, le librerie sono finalmente veramente unificate, anche quelle che in passato erano comunque implementate solo a livello di piattaforma, tipicamente quelle che dipendevano fortemente dalla componente hardware (GPS, sensori, foto, contatti)

Come funziona .NET MAUI

.NET MAUI unifica le API Android, iOS, macOS e Windows in un’unica API che consente agli sviluppatori di scrivere codice una sola volta ed eseguire e distribuirlo sulle varie piattaforme. Il codice risultante è nativo e permette quindi di accedere ad ogni aspetto del dispositivo, utilizzando direttamente le API della piattaforma nativa.

Le app .NET MAUI possono essere sviluppate indifferentemente su PC o Mac, vengono quindi compilate in pacchetti di app native.

Le app Android vengono compilate da C# in un linguaggio intermedio (IL) che viene quindi compilato just-in-time (JIT) in un assembly nativo all’avvio dell’app.

Le app iOS sono invece completamente compilate in AOT da C# nel codice assembly ARM nativo.

Le app macOS vengono create utilizzando Mac Catalyst, una soluzione di Apple che porta la app iOS, creata con UIKit, sul desktop e la amplia con AppKit aggiuntive e API della piattaforma, secondo necessità.

Le app di Windows vengono infine create usano la libreria dell’interfaccia utente di Windows (WinUI) 3 ottenendo quindi app native che possono essere destinate al desktop di Windows e alla piattaforma UWP (Universal Windows Platform).

.NET MAUI

Su Android, iOS e macOS, l’ambiente si basa su Mono, un’implementazione del runtime .NET, su Windows, WinRT svolge lo stesso ruolo per la piattaforma Windows.

 

 

Aumenta la produttività e migliora la percezione del tuo brand. Scopri le nostre soluzioni aziendali che ti consentono di gestire l’intera azienda e di offrire risultati migliori

Dynamics 365 Developer

 

1 commento

Lascia un Commento

Vuoi partecipare alla discussione?
Sentitevi liberi di contribuire!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *