Xamarin (6)

Xamarin: C# per sviluppare su Android

Roberto Orgiu -

 

Che ci siano milioni di programmatori C# è un dato di fatto e la diatriba tra i javisti e gli sviluppatori abituati al linguaggio principe di .NET è sempre accesa ma, almeno fino ad oggi, era il linguaggio di Sun (ora di Oracle) a farla da padrona per quanto riguarda lo sviluppo su Android.

La tazzina di caffè non poteva comunque dormire sogni tranquilli, visto che diversi altri pretendenti miravano al suo primato: un’intera flotta di tecnologie mirate al cross-platform è in agguato e pronta ad arpionare il posto più alto qualora se ne presentasse l’occasione; certo, nessuno di questi sfidanti garantisce le stesse prestazioni fornite dal puro sviluppo mediante Android SDK, ma le cose potrebbero leggermente cambiare con l’arrivo di Xamarin, che ha rilasciato, pochi giorni fa, un IDE completo (con plugin per integrarsi con Visual Studio) per sviluppare in C# per iOS e Android.

Come spieghiamo questa idea? Gli sviluppatori del progetto sono fermamente convinti che i due sistemi operativi possano condividere almeno il 90% delle righe di codice, in modo tale che scrivere software per entrambe le piattaforme (e perché non anche per Windows Phone, già che ci siamo?) sia molto più semplice e più veloce.

Ispezioniamo però il suo funzionamento nel dettaglio: come possiamo vedere dall’immagine seguente, l’idea di base è che a cambiare sia solamente l’interfaccia, appoggiata sul codice condiviso da tutti i sistemi supportati.
shared-code-2

Specificatamente per quanto riguarda i due sistemi mobile più diffusi, Xamarin Studio mette a disposizione un market dei componenti, in modo da poter vendere e acquistare codice e accelerare ulteriormente lo sviluppo. Passando alla compilazione vera e propria, il progetto è ambizioso, oltre che decisamente innovativo: gli sviluppatori sono riusciti infatti a fare un binding C# di tutte le API di iOS e Android, che potranno essere utilizzate come normali classi del linguaggio .NET, imitando, in tutto e per tutto, l’aspetto nativo e la velocità delle applicazioni scritte in Java e Objetive-C, in modo tale che, attraverso due processi distinti, si riescano a generare sia binari da dare in pasto all’Apple App Store sia creare gli APK necessari per Android. Nel dettaglio, per quanto riguarda iOS, Xamarin si avvale della compilazione Ahead-of-Time per produrre i file compatibili con architettura ARM, utilizzando invece la compilazione Just-in-Time direttamente su smartphone per la controparte Android.

 

compiler5

 

 

All’apposita pagina del sito di questo software troviamo una comparazione tra l’Objective-C e l’effettivamente più breve C# ma nessuna traccia di un confronto con il rivale diretto (in più campi) Java ma, per par condicio, abbiamo riscritto lo stesso programma e abbiamo affiancato i due sorgenti: come potete vedere, la differenza non è così evidente e, almeno per quanto ci riguarda, l’unico vero motivo per passare al linguaggio di Microsoft sarebbe la possibilità di compilare anche per iOS utilizzando un linguaggio più diffuso di quello utilizzato da Xcode, soprattutto alla luce dell’ingombrante aggiunta di 2,5MB per ogni APK compilato (la magia deve pur avvenire da qualche parte).
CodiceJavaCSharp

 

Se volete testare voi stessi questo nuovo ambiente di sviluppo, vi basta un salto all’apposito link e scaricare gratuitamente il software, altrimenti, se volete solo farvi un’idea di come potrebbe essere questo IDE, date un’occhiata alla galleria oltre il salto.

Fonte: Fonte