Ciao ragazzi,
oggi finalmente vi parlerò di Xamarin. Dico finalmente perché è veramente da tanto che voglio presentarvelo, cercando di affrontarlo in maniera non troppo tecnica. Inizio col dirvi che io amo Xamarin e da quasi 2 anni, spesso la sera, dopo il lavoro, mi siedo davanti il mio PC a programmare con Xamarin. Ho iniziato da autodidatta con molta fatica e adesso, dopo essermi impratichito un bel po', ne sono appassionato al punto tale da sentire il bisogno di divulgare a tutti voi le mie conoscenze su Xamarin.
Immagine CC00 Creative Commons
Che cos'è Xamarin?
È un framework open source per lo sviluppo di app cross-platform -e anche native- in C#. Sviluppare app cross-platform è un enorme fortuna per il programmatore in quanto significa scrivere una sola volta il codice ed utilizzarlo su sistemi differenti, senza nemmeno doversi studiare i loro linguaggi nativi. Con Xamarin dunque posso scrivere un'intera app in C#, eseguibile su Android, iOS, Windows Phone e perfino Windows10 (per PC) , senza conoscere Java, Swift, Objective C.
Perché proprio Xamarin?
In effetti, oltre Xamarin, sono diverse le alternative che ad oggi ci permettono di realizzare app cross-platform, ma devo dire che prima di conoscerlo non avevo mai visto niente di simile, neanche lontanamente.
Tra i migliori framework ho trovato Apache Cordova, anch'esso open source, che permette di scrivere app per smartphone come se fossero delle applicazioni web.
Leggero, rapido, facile e compatto. Mi ha stupito ma enormemente limitato rispetto al mio beniamino.
Prima di tutto è impossibile sfruttare a pieno le caratteristiche tipiche delle diverse piattaforme mobile, ed inoltre lentezza nell’esecuzione dell'app e in lettura/scrittura sulla memoria fisica del dispositivo.
Per non parlare della grafica: mentre Xamarin in fase di compilazione del codice va ad integrare tutte le potenzialità e le caratteristiche native del sistema sul quale l'app verrà eseguita, la maggior parte dei altri framework non lo permette.
L'immagine qui sopra che ho realizzato, mostra come la stessa porzione di codice, viene interpretata come un classico switch di Android o di iOS a seconda di dove viene eseguito. Magari vi sembrerà una banalità ma gli esperti dicono che gli utenti vogliono, anzi esigono, i controlli nativi (per i novizi: con controlli si intendono quegli oggetti grafici atti all'interazione utente come uno switch, una textbox, uno slider e così via). Infine un utente che ha acquistato un iPhone gradisce un controllo in stile iOS, dunque nativo, piuttosto che uno generico.
Vi piacerebbe un corso su Xamarin.Forms?
La mia introduzione sul mondo di Xamarin finisce qui, anche se le cose da dire sarebbero pressoché infinite. Mi piacerebbe sapere cosa ne pensate e se vi entusiasma l'idea di un vero è proprio corso diviso in capitoli su Xamarin, nello specifico su Xamarin Forms. Ho sottolineato Xamarin.Forms in quanto è la parte di Xamarin che permette la realizzazione Delle app cross-platform. Infatti, anche se non ve l'ho detto prima, Microsoft offre anche la possibilità di creare singoli progetti esclusivamente platform specific, ad esempio esclusivamente per Android, creando un progetto Xamarin.Android .
Il corso che vi propongo è una sfilza di numerose ma brevi lezioni di natura abbastanza tecnica.