Xamarin: un framework per lo sviluppo multipiattaforma di applicazioni mobili.
Ricerca di una nuova idea di framework: Xamarin
La continua evoluzione dei dispositivi mobili ha giocoforza portato gli sviluppatori a ideare e proporre nuovi framework ispirati alle app native e alle webapp, semplici e veloci e capaci di sviluppare app su tutte le piattaforme mantenendo un unico linguaggio, pur continuando ad utilizzare anche gli strumenti classici della tecnologia web. Questi ultimi, infatti, non consentivano di sfruttare appieno le caratteristiche tipiche delle piattaforme mobili, evidenziando soprattutto carenze nell’integrazione dell’aspetto grafico con la specifica piattaforma. Bisognava, quindi, modificare l’assetto di base tramite una evoluzione che, però, rappresentasse una certa continuità con gli strumenti classici. Le intenzioni erano fondamentalmente due:
- Ridurre i costi di produzione e manutenzione di un’applicazione;
- Trovare un modo rapido per aprirsi verso nuove piattaforme mobili.
Creazione di Xamarin
Per cercare di raggiungere questi obbiettivi, nel maggio 2011, Nat Friedman e Miguel de Icaza fondavano la società informatica Xamarin, con l’intento di fornire agli sviluppatori un modo semplice e veloce per creare app cross-platform basate su Mono e, quindi, su C#. L’idea indipendente dei suoi creatori si concretizzò presto in un progetto capace di riscuotere l’interesse di sviluppatori e aziende, in particolare di Microsoft che, nel 2016, lo acquistò e ne favorì la diffusione a livello mondiale. Il nuovo approccio di Xamarin portò alla nascita di nuove librerie in grado di realizzare la condivisione del codice fra differenti piattaforme (compreso il codice di interfaccia grafica), massimizzandone il riutilizzo tramite, appunto, la condivisione.
La maggior qualità di Xamarin si rivelò subito la versatilità, in quanto consentiva di scrivere il codice di programmazione una sola volta e di sviluppare app su piattaforme diverse, risparmiando tempo e costi di realizzazione. Per questo motivo è tuttora preferito da molte start-up che desiderano ottimizzare tempi e modi di lancio del loro business sul mercato.
Struttura e funzionamento di Xamarin
Xamarin si compone di tre elementi: Xamarin.Android, Xamarin.iOS e Xamarin.Forms. Mentre i primi due eseguono il wrapping delle app native in C#, Xamarin.Forms rappresenta un terzo stadio evolutivo tramite cui è permessa la tanto ambita condivisione e conseguente riutilizzazione del codice.
Lo sviluppatore scrive il codice che ritiene possa funzionare su tutte le piattaforme: sarà la gestione successiva che provvederà a superare le differenze tra le varie applicazioni, ottimizzando l’utilizzo dello strumento.
Certo, quest’ultimo passaggio non è senza ostacoli, in quanto ci sono elementi strutturali e funzionali che non risultano comuni a tutte le piattaforme. Il superamento di tali differenze e la corretta utilizzazione del framework Xamarin dipendono, dunque, dalla sua personalizzazione e dalla possibilità di applicare alcuni modelli estetici che, comunque, non snaturino il suo funzionamento di base e lo scopo che intende realizzare. E’ possibile aggiungere Xamarin alla installazione di Visual Studio, un multilinguaggio creato da Microsoft che, supportando vari altri linguaggi di programmazione, consente la creazione di progetti differenti e differenti app su piattaforme diverse.
Esistono, soprattutto on line – ma non solo- svariati tipi di corsi in Xamarin.Forms, che forniscono le basi per lo sviluppo di applicazioni in multipiattaforma tramite il framework Xamarin, di utilizzo semplice e veloce.
Vantaggi e svantaggi di Xamarin.
Il primo dei vantaggi offerti dall’utilizzo di Xamarin è anche il più evidente: un unico linguaggio ad oggetti, appunto C#, che fornisce ai programmatori un background utile a sviluppare sul mobile. Inoltre il poter scrivere app in C# assicura un notevole risparmio di tempo, specialmente quando la quantità di dati è notevole. Anche la condivisione del codice costituisce un vantaggio per l’utilizzazione di Xamarin, in quanto non si necessita l’acquisizione di altri linguaggi di programmazione, anche se bisogna precisare che questo non vale per tutte le librerie dell’ambiente mobile. E ancora, sviluppare app cross-platform rappresenta una grande efficacia pratica per il programmatore, che scrive il codice solo una volta per utilizzarlo in programmi differenti.
Anche l’essenza di Xamarin è uno dei suoi grandi pregi: un framework cross-platform nativo in grado, così, di offrire prestazioni native ma la cui peculiarità garantisce, nel contempo, l’esecuzione del codice su diverse piattaforme. Tuttavia, questo suo pregio evidente può essere, a volte, anche un suo difetto di carattere pratico:le componenti messe a disposizione da Xamarin.Forms sono pensate per adattarsi al massimo alle differenti piattaforme senza essere troppo specifiche e questo può far sorgere problemi in sede di utilizzazione. Un altro inconveniente riscontrato nell’esecuzione di un progetto realizzato con Xamarin.Forms è la sua lentezza nell’avvio rispetto all’applicazione nativa. Il problema, attribuito inizialmente solo ad errori di sviluppo, si è rivelato presente in tutte le app sviluppate con Xamarin.Forms. La stessa società Xamarin, comunque, consapevole dell’esistenza di tale problema, è intervenuta con miglioramenti tendenti ad ottimizzare ed incrementare le prestazioni di quelle applicazioni.
Infine
Xamarin è uno strumento sicuramente utile e innovativo ed è un progetto certamente interessante, usa un linguaggio semplificato e unificante e ha, per questo, raggiunto l’obbiettivo per cui è stato creato. Necessita della conoscenza competente del linguaggio C# e, in questo caso, può fornire le sue più interessanti prestazioni, sia in tema di costi che in tema di tempi. Si presenta, dunque, come un’ottima soluzione alternativa all’approccio nativo classico e come scelta interessante non solo -si auspica- per grandi aziende, come attualmente succede.