In questa guida affronteremo gli argomenti principali riguardanti lo sviluppo di applicazoni su piattaforma Android. Dato che lo sviluppo di applicazioni per dispositivi mobili consta di tantissimi argomenti, in questa guida trascureremo volutamente gli aspetti più avanzati di programmazione, essendo il nostro scopo quello di fornire una base di partenza a chi si affaccia per la prima volta allo sviluppo di applicazioni per dispositivi Android.
Cos’è Android?
Android è un sistema operativo per dispositivi mobili basato su una versione modificata di Linux. Esso è stato originariamente sviluppato da una piccola azienda, la Android Inc, ma nel 2005 Google ne acquistò i diritti per farne il sistema di base sul quale fare lavorare il suo team di sviluppo dedicato al settore mobile avendo previsto per tempo l’enorme potenziale offerto dal mercato (allora emergente) di smartphone e table.
Il modello di sviluppo di Android
Google ha deciso di rilasciare Android in modalità open source, il che significa che chiunque voglia utilizzare tale sistema può farlo semplicemente scaricando l’intero codice sorgente. Tuttavia i produttori di hardware possono aggiungere le proprie estensioni al sistema e personalizzare Android per differenziare i propri prodotti dagli altri.
Questo semplice modello di sviluppo ha reso Android molto attraente agli occhi di alcune compagnie, soprattutto quelle che hanno risentito del successo dell’ iPhone di Apple. Molte compagnie per molti anni, infatti, hanno sviluppato sistemi operativi proprietari ma dopo l’uscita dell’iPhone si sono trovate in difficoltà a competere con esso e hanno visto Android come una soluzione a questo problema. In pratica queste compagnie (prime fra tutte la Samsung) hanno continuato a produrre i propri dispositivi hardware ma hanno cominciato ad utilizzare Android come sistema operativo, abbandonando lo sviluppo (costoso) di soluzioni proprietarie.
Il principale vantaggio nell’utilizzo di Android è che esso offre un approccio unificato allo sviluppo di applicazioni. Gli sviluppatori, infatti, possono raggiungere un enorme platea di devices senza doversi preoccupare dell’azienda produttrice o del singolo modello di device: Android offre una piattaforma diffusa che, in larga parte, ha evitato la frammentazione del mercato rendendo più facile la vita di migliaia di sviluppatori in tutto il mondo.
L’evoluzione di Android
Dalla prima versione sono stati rilasciati diversi aggiornamenti di Android, dalla versione 1.1, passando per la versione 2.3 (Gingerbread) e arrivando all’attuale versione 4.4 (KitKat). Nel febbraio del 2011 Google rilasciò Android 3.0, una versione esclusiva per tablet che supporta dispositivi widescreen e dotata di una nuova interfaccia utente ottimizzata per i tablet, di un multitasking avanzato, di nuove caratteristiche relative al browser web e soprattutto del supporto per i processori a multi-core.
Nell’ottobre del 2011 venne rilasciato Android 4.0, una versione che portò tutte le novità introdotte nella versione 3.0 anche sugli smartphone, con nuove funzionalità come lo sblocco del dispositivo con il riconoscimento facciale. Come detto è stata ultimamente rilasciata la versione 4.4. Per gli scopi del presente corso ci riferiremo alle versioni 4.x che sono quelle attualmente più diffuse.
Caratteristiche hardware supportate
Poiché Android è open source ed è disponibile gratuitamente per i produttori che vogliano effettuarne personalizzazioni, non ci sono configurazioni hardware o software prestabilite. Orientativamente Android supporta le seguenti caratteristiche:
- Archiviazione ‐ Viene utilizzato SQLite, un leggero database relazionale per l’archiviazione e gestione dei dati.
- Connettività ‐ Sono supportati GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE e WiMAX.
- Messaggistica ‐ Sono supportati SMS e MMS
- Browser web ‐ Sono supportati diversi browser web come Opera
- Multimedialità ‐ Sono supportati i formati più diffusi, compresi MPEG-4, MP3, MIDI, WAV, JPEG, ecc.
- Hardware ‐ Sono supportati accelerometro, fotocamera, sensori di prossimità, compasso digitale, GPS e schermo multitouch
- Multitasking ‐ E’ supportato il multitasking delle applicazioni
L’architettura di Android
Prima di approfondire il funzionamento di Android è interessante dare un’occhiata ai vari livelli di questo sistema operativo
Come possiamo vedere, il sistema operativo Android è suddiviso in cinque sezioni su quattro livelli:
Linux kernel ‐ Si tratta del nucleo su cui si basa il sistema operativo. Questo livello contiene tutti i driver di basso livello per i vari componenti hardware di un dispositivo Android
Libraries ‐ Librerie che contengono tutto il codice che fornisce le principali funzionalità del sistema operativo. Ad esempio, la libreria WebKit fornisce funzionalità per la navigazione sul web attraverso il browser del dispositivo
Android runtime ‐ Allo stesso livello delle librerie il runtime fornisce un insieme di librerie base che consentono agli sviluppatori di implementare applicazioni Android utilizzando il linguaggio di programmazione Java. Questa sezione include anche la macchina virtuale Dalvik, che consente ad ogni applicazione di essere eseguita in un proprio processo, con la propria istanza della macchina virtuale
Application framework ‐ Espone le potenzialità del sistema operativo Android agli sviluppatori di applicazioni affinchè essi possano utilizzarle nelle proprie applicazioni
Applications ‐ Al livello più alto ci sono le applicazioni, sia quelle incluse nel dispositivo, che quelle installate o sviluppate successivamente
Device equipaggiati con Android
Attualmente i dispositivi Android sono di diverse forme e dimensioni e includono, oltre a tablet e smartphone, anche e-reader, netbook, lettori MP4 e Internet TV. Sono in fase di sviuppo, inoltre, versioni "speciali" di Android dedicate allo sviluppo di smartwatch ed una (molto attesa) dedicata all’ambito della wearable technology (progetto Google Wear) pertanto c’è da attendersi un aumento esponenziale dei devices sui quali verrà montato questo OS o suoi diretti derivati.
Il marketplace di Android
Uno dei fattori principali che determinano il successo (o meno) di una piattaforma per dispositivi mobili è la varietà di applicazioni che essa mette a disposizione degli utenti. A partire dalla fine del 2008, Google ha messo a disposizione degli utenti l’Android Market (oggi Google Play), un’applicazione on-line attraverso la quale gli utenti del robottino verde possono installare applicazioni aggiuntive sui propri dispositivi. Su Google Play sono disponibili sia applicazioni gratuite che a pagamento. Il mercato di quest’ultmo tipo di app (quelle a pagamento, appunto) è cresciuto in modo esponenziale negli ultimi anni tant’è che molti sviluppatori sono riusciti a crearsi un lavoro decisamente profittevole sfruttando il boom di questo settore ed, in particolare, del sistema operativo Android.
Le community di sviluppatori Android
Un altro aspetto da tenere in considerazione se si decide di iniziare a sviluppare per questo OS, è la presenza di una grande community mondiale di sviluppatori Android, cosa che consente di ottenere più facilmente soluzioni ai possibili problemi che uno sviluppatore può incontrare nel suo lavoro quotidiano. Nel mondo sono tantissime le comunità di questo tipo: a livello internazionale sicuramente Stackoverflow rappresenta un punto di riferimento, per quanto riguarda l’Italia, invece, il mio suggerimento è di iscrivervi al forum Android di Mr.Webmaster dove troverete sicuramente l’aiuto di cui avete bisogno.
Conclusioni
Per proseguire nella lettura di questa guida non è, ovviamente, necessario registrarsi come developer ne tantomeno è indispensabile possedere un dispositivo Android, dato che sarà sufficiente scaricare il simulatore per testare, direttamente sul proprio computer, le nostre applicazioni.
Nel prossimo capitolo presenteremo gli strumenti di lavoro e mostreremo al lettore dove reperirli e come installarli sul proprio computer.