Il desiderio di qualunque sviluppatore di app per dispositivi mobili, considerata anche l’ampiezza dell’offerta del mercato, è quello di scrivere codice che funzioni indipendentemente dalla piattaforma in cui è eseguito.
In questo modo è possibile manutenere un solo codice senza dover disperdere le energie (e sperperare denaro) sulla gestione di codice “ad hoc” per ogni singola piattaforma.
Microsoft offre due strumenti per soddisfare queste esigenze, oggi sempre più pressanti. Il primo è Xamarin, acquisito da Microsoft a febbraio 2016, mentre il secondo si chiama Cordova e, ancora una volta, affonda le sue radici nel mondo del software opensource.
Cordova e Xamarin sono le due “punte di diamante” che possono essere sfruttate per portare le proprie app per dispositivi mobili su cloud e quindi sulla piattaforma Microsoft Azure.
L’utilizzo di Cordova è consigliabile soprattutto a coloro che dispongono di competenze nello sviluppo JavaScript mentre Xamarin è indicato in particolare a chi lavora o ha lavorato con C# e si interessa, ovviamente, di sviluppo “mobile”.
Nulla vieta di riutilizzare poi il codice messo a punto con Xamarin per creare applicazioni desktop o lato server: Microsoft, da qualche anno a questa parte, ha infatti introdotto le portable class libraries ossia librerie che ospitano codice condivisibile fra le varie piattaforme.
Cordova, precedentemente conosciuto con l’appellativo di PhoneGap è stato rilasciato qualche anno fa come prodotto opensource “sotto l’ombrello” Apache.
Esso consente di scrivere applicazioni per i dispositivi mobili utilizzano quelle stesse tecnologie che tutti gli sviluppatori web conoscono, ossia HTML, CSS e JavaScript.
Erroneamente considerato da molti un framework, Cordova è uno strumento che, a sua volta, permette di utilizzare i framework più congeniali per lo sviluppatore.
Sviluppo di app che funzionano su tutti i dispositivi mobili con Xamarin
Come accennato in precedenza, Xamarin è uno strumento che si rivolge principalmente agli sviluppatori Microsoft perché consente di riutilizzare le conoscenze in ambito .NET e Visual Studio per realizzare applicazioni in grado di funzionare anche su piattaforme “non-Microsoft”. Leggasi, Android e iOS.
Grazie a Xamarin lo sviluppatore può accedere alle caratteristiche di Android e iOS utilizzando strumenti, linguaggi e sintassi che sono molto vicini alle competenze di un programmatore che ha prevalentemente realizzato applicazioni per le piattaforme Microsoft.
Il vantaggio di usare Xamarin consiste nel fatto che tutte le funzionalità non strettamente legate ad una specifica piattaforma possono essere condivise – ad esempio mediante librerie – tra tutte le piattaforme ove la stessa applicazione si troverà a lavorare. Si tratta di una caratteristica interessantissima perché lo sviluppatore non sarà mai costretto a riscrivere ampie porzioni di codice.
Xamarin, tuttavia, non nasconde la piattaforma sottostante: di base, quindi, almeno per ciò che riguarda la creazione dell’interfaccia utente, lo sviluppatore deve comunque possedere alcune specifiche competenze sia per Android che iOS.
Un paio di anni fa (a fine maggio 2014) è nato anche Xamarin Forms, una “declinazione alternativa” di Xamarin che utilizza un approccio differente.
Xamarin Forms tende la mano a quegli sviluppatori che dispongono già di competenze in fatto di realizzazione di applicazioni per Windows e Windows Phone. La stessa applicazione scritta una volta sola in C# e XAML (linguaggio di markup sviluppato da Microsoft e basato su XML che viene adoperato per descrivere l’interfaccia grafica delle applicazioni) viene “interpretata” sulle varie piattaforme (gli elementi descritti utilizzando XAML, ad esempio, vengono “tradotti” in controlli nativi su ciascuna piattaforma).
Per lo sviluppo di app dispositivi mobili, Microsoft offre IDE come Xamarin Studio oppure lo stesso Visual Studio. L’edizione 2016 della Build Conference di Microsoft ha infatti segnato il “cambio di passo”: Xamarin entra a far parte di Visual Studio e può essere usato gratuitamente dagli sviluppatori.
Xamarin risolve tutte e tre le problematiche che spesso “affliggono” ogni programmatore che approccia il tema dello sviluppo cross platform:
1) Accesso alle funzionalità native di ciascuna piattaforma.
2) Utilizzo di un middleware che non rallenta lo sviluppo dell’applicazione.
3) Performance dell’applicazione sulle altre piattaforme.
Chi sviluppa con Xamarin non è assolutamente penalizzato rispetto al programmatore che lavora nativamente su una specifica piattaforma. Anche perché, ad esempio, il team di Xamarin tipicamente rilascia una nuova versione dello strumento non appena Google ed Apple distribuiscono release aggiornate dei loro sistemi operativi. Tutte le nuove API aggiunte in Android e in iOS vengono immediatamente “fatte proprie” da Xamarin. Il “middleware Xamarin”, insomma, viene istantaneamente aggiornato.
Sebbene molto potente, in precedenza Xamarin si proponeva come un set di strumenti piuttosto costoso e quindi proibitivo per una discreta fetta di programmatori. L’integrazione di Xamarin in Visual Studio è una mossa vincente: Microsoft vuole presentare la sua suite di sviluppo come il punto di riferimento per coloro che desiderano realizzare applicazioni multipiattaforma.
Microsoft getta così nuovi ponti fra le sue tecnologie e le piattaforme che una volta erano considerate rivali. Piattaforme che oggi, nella nuova filosofia della società di Redmond, sono divenute interessanti e imprescindibili opportunità.