Perchè scegliere Android come piattaforma di sviluppo?
Introduzione ad Android
L’utilizzo degli smartphone, i telefonini intelligenti, è un fenomeno che da pochi anni a questa parte è cresciuto esponenzialmente, grazie alle nuove tecnologie che permettono di costruire prodotti sempre più affidabili e completi e ad un costo sempre minore. Questo ha permesso infatti di potersi estendere su una fascia di clienti sempre maggiore: i primi smartphone infatti avevano un prezzo decisamente elevato e quindi non accessibile a tutti, mentre ora se ne pùo comprare uno senza troppe pretese per poche decine di euro. Si è inoltre passati da telefoni la cui unica funzione era effettuare chiamate, a telefoni in cui non manca nulla: fotocamera, GPS, lettori multimediali e quant’altro. Da un lato, l’introduzione di queste funzioni ha reso il dispositivo più complicato da utilizzare, soprattutto per una clientela non giovane, dall’altro lo ha reso più completo e versatile, creando numerose opportunità agli sviluppatori per inventare e re-inventare applicazioni per svolgere le funzioni più svariate.
Esistono però moltissimi tipi di smartphone che montano sistemi operativi differenti: si va da Android a Apple, da RIM a Windows Phone. Ognuno di questi ha caratteristiche diverse, che lo rende migliore per una certa clientela piuttosto che per un’altra. Tra i tanti sistemi operativi presenti, uno di cui vale la pena parlare è Android. Tutto il mondo Android ruota attorno alla parola “open source”: infatti si ha libero accesso a tutti gli strumenti utilizzati dagli sviluppatori stessi di Android e quindi il potenziale delle applicazioni sviluppate da terzi non è soggetto a limitazioni, visto anche che applicazioni native e di terze parti hanno lo stesso peso. Inoltre, chiunque può sviluppare per Android senza dover acquisire software o licenze particolari.
Perchè la piattaforma Android?
Il mercato della telefonia mobile ha conosciuto, negli ultimi anni, un notevole sviluppo. In breve tempo si è passati da dispositivi che oggi ci parrebbero enormi e poco pratici, con lo schermo in bianco e nero e l’antenna sporgente, a dei veri e propri mini computer, sempre più curati nel design e nelle prestazioni, i cosiddetti smartphone. Chi oggi vuole acquistare uno di questi telefoni intelligenti, di sicuro si imbatterà in un logo molto conosciuto: un simpatico robottino verde. Questo è il simbolo di Android, una piattaforma di esecuzione gratuita per dispositivi mobili, creata nel 2003 da Andy Rubin e acquistata da Google nel 2005.
Va fatta da subito una precisazione sul termine piattaforma, spesso abusato: una piattaforma è una base software/hardware sulla quale vengono eseguite o sviluppate applicazioni.
E’ importante quindi distinguere le piattaforme di esecuzione, cioè quelle dedicate all’esecuzione di programmi, comunemente note come sistema operativo, da quelle di sviluppo, cioè quelle utilizzate per sviluppare programmi. I due concetti non sono comunque così distanti: una piattaforma di sviluppo solitamente è anche di esecuzione, ma non necessariamente una piattaforma di esecuzione è anche di sviluppo.
Nel mercato sono attualmente disponibili molte piattaforme di esecuzione, come Windows Phone, iOS, Symbian, LiMo, Bada, BlackBerry OS: perchè allora molti sviluppatori scelgono proprio Android?
Quando un programmatore decide di sviluppare un’app, deve anche scegliere su quale piattaforma questa potrà essere eseguita. Si ritrova quindi davanti a due strade:
- Scegliere un linguaggio come Java, per Android, che è conosciuto, diffuso e molto utilizzato ma che dà forse troppe libertà.
- Scegliere un linguaggio meno flessibile ma che permetta di concentrarsi di più sul programma e meno sull’interfaccia, in quanto questa sarà gestita dal sistema operativo. Anche qui si arriva ad un bivio: il C# di Windows Phone oppure l’Objective-C di Apple.
Il linguaggio Java, rispetto al C, gestisce automaticamente il ciclo di vita di un’applicazione e anche l’allocazione della memoria, rendendo più semplice lo sviluppo. Android inoltre è completamente open source, quindi rende possibile reperire, modificare e ridistribuire il codice sorgente adattandolo ad ogni dispositivo e creandone la propria versione personalizzata ed ottimizzata. E’ anche il sistema operativo mobile più diffuso, ha una gestione di grafica e audio di alta qualità, le applicazioni native e di terze parti sono di uguale importanza e possono essere aggiunte o rimosse senza alcun vincolo.
La scelta di Android non porta tuttavia solo vantaggi dal punto di vista informa- tico, ma anche dal punto di vista economico. Pubblicare applicazioni sullo store di Android (Google Play), ha un costo di iscrizione di 25/30 euro ed è possibile programmare l’app con tutti i sistemi operativi per desktop più diffusi: Windows, OS X e Linux. Scegliere iOS invece comporta un costo 4 volte superiore per l’iscrizione all’App Store e serve necessariamente un computer Mac per programmare, anche questo molto costoso.
Principali differenze che distinguono i diversi sistemi operativi
Vediamo ora le principali differenze che distinguono i diversi sistemi operativi che dominano il mercato. Come vedremo nel prossimo paragrafo, Android è la piattaforma più diffusa, seguita in seconda in posizione da Apple. Il sistema proprietario Apple è sicuramente più user friendly, cioè è più adatto ad una clientela poco abituata ad utilizzare smartphone, ma d’altro canto per poter sincronizzare il telefono con il PC (scambio di foto, musica, e tanto altro ancora) o ottenere aggiornamenti software, richiede il costante utilizzo di programmi forniti da Apple, come iTunes.
La libertà di poter installare qualsiasi applicazione, anche non ufficiale, rende Android migliore per gli sviluppatori, che possono così provare le loro applicazioni sui terminali senza dover per forza ricorrere ad un emulatore. Poter ottenere il codice sorgente ha come effetto la possibilità di avere sempre diverse versioni del sistema operativo ottimizzate per ogni tipo di telefono e con funzionalità che la versione originale non aveva. Una famosa distribuzione di Android modificata, detta Custom ROM, è la Cyanogen Mod. L’utilizzo di una custom ROM dà all’utente i privilegi di root, cioè quei permessi che consentono all’utente di fare qualsiasi cosa col telefono, anche accedere o modificare risorse il cui accesso era stato impedito dalla ROM originale. Si può fare qualcosa di simile anche in iOS tramite il cosiddetto “jailbreak”, che permette sì di avere nuove funzionalità, ma la licenza del sistema rimane comunque di Apple. Dal punto di vista della flessibilità, iOS è molto meno personalizzabile di Android, il quale lascia maggior voce in capitolo all’utente. Guardando al kernel, invece, entrambe sono basate su kernel Linux.
Symbian, invece, sistema proprietario Nokia fino a poco tempo fa, è stato abbandonato e sostituito da Windows Phone, sviluppato da Microsoft. Quest’ultimo ha introdotto una grande novità: le tiles. Le tiles sono delle tessere che si trovano al posto delle classiche icone e che rendono la ricerca di app e informazioni nel proprio telefono estremamente rapida. La sostanziale differenza tra i due sistemi operativi sta nel fatto che Windows Phone si concentra maggiormente sulla condivisione di informazioni su social network. Per il resto i sistemi sono quasi equivalenti, se non per il fatto che lo store di Android è sicuramente più ricco di app, motivo per il quale molta gente opta per il robottino piuttosto che per Windows Phone.