Con i suoi ultimi terminali Motorola ha dimostrato di voler puntare con sempre maggior convinzione verso Android cercando anche di favorire, con le sue politiche, tutti gli elementi dell’ecosistema. In questo approfondimento vediamo cosa l’azienda statunitense propone agli sviluppatori…
Da gran conoscitrice del mercato relativo alla telefonia mobile, Motorola sa bene che realizzare un ottimo prodotto (come, ad esempio, il Milestone) non è automaticamente garanzia di successo. Affinché un certo smartphone venga considerato dal grande pubblico, una delle condizioni necessarie (ma non sufficienti) è che esista un buon numero di applicazioni di qualità, tali da coprire le più disparate esigenze degli utenti.
In quest’ottica la figura dello sviluppatore (o software house), cioè di colui che crea l’applicazione in seguito usata dall’utente, assume un’importanza chiave. Si capisce, quindi, la necessità di affiancare a una piattaforma degli strumenti che possano mettere chi scrive software in condizione di realizzare la propria creazione nel modo più semplice e veloce possibile. Primo fra tutti un ambiente di sviluppo che permetta, in sintesi, la progettazione, codifica e debugging del software.
Maestra in questo senso è Microsoft che propone il suo Visual Studio, ambiente con cui è possibile realizzare, tra le altre cose, anche applicazioni per smartphone Windows Mobile.
Google non è rimasta a guardare e, in linea con la filosofia open-source che pervade l’intero sistema, ha basato l’ambiente di sviluppo per Android su Eclipse, uno tra i più famosi e versatili IDE (Integrated Development Environment) disponibili attualmente. Gli ingegneri della grande G, piuttosto che creare un tool completamente da zero, hanno realizzato una serie di plugin (ADT, Android Development Tools) che, uniti a quanto già messo a disposizione da Eclipse, consentono di effettuare tutte quelle attività precedentemente menzionate (progettazione, codifica e debugging) con un unico software integrato).
Motorola, tuttavia, ha ritenuto questo sforzo non sufficiente e, per donare ai propri dispositivi un appeal superiore, ha pensato bene di potenziare l’ambiente di sviluppo ufficiale, creando, a partire da quanto realizzato a Mountain View, il MOTODEV Studio for Android.
Tale IDE, secondo la descrizione nel sito ufficiale, dovrebbe offrire un’impareggiabile semplicità di avanzamento nel ciclo di sviluppo e un’esperienza d’uso unica per la creazione di applicazioni Android. Andiamo assieme a scoprire le qualità del software.
In prima battuta è utile riassumere brevemente le caratteristiche salienti del MOTODEV Studio (versione 1.1):
- Semplicità d’installazione: un unico installer si occuperà di mettere per voi tutti i pezzi (tra cui Eclipse 3.5 e gli ADT) al posto giusto e di scaricare l’SDK (Software Development Kit) desiderato, cioè l’insieme degli strumenti (come il compilatore, l’emulatore, frammenti di codice…) che permettono in concreto la creazione di un’applicazione. Notare che, in genere, gli SDK sono mirati a una certa versione della piattaforma.
- Disponibilità di “code snippets”: per velocizzare la stesura di un software vengono offerti frammenti di codice che lo sviluppatore può decidere di riutilizzare nella propria applicazione. Questi frammenti coprono funzionalità comuni, secondo il principio per cui non c’è bisogno di reinventare continuamente la ruota. Effetto collaterale è quello di avere del codice abbondantemente testato e, generalmente, di buona qualità.
- Disponibilità di nuovi “wizard” per la creazione di applicazioni: questi strumenti grafici permettono di semplificare compiti noiosi e spesso ripetitivi, basandosi su alcuni parametri impostati dal programmatore. Tra quelli disponibili ricordiamo il wizard per l’impostazione generale di un progetto Android e quello per la creazione di nuove classi.
- Disponibilità di device virtuali con le caratteristiche dei prodotti Motorola: non sempre, infatti, è possibile sviluppare utilizzando uno smartphone reale perchè, ad esempio, non ancora disponibile sul mercato oppure perchè non si hanno a disposizione fondi per acquistarne quanti necessari. Più spesso accade che si sviluppi su un dispositivo virtuale che cerca di replicare in tutto e per tutto il comportamente di un telefono reale. Motorola è orientata a fornire la possibilità di emulare gli smartphone da lei prodotti man mano che la gamma Android crescerà (nella pagina dedicata possiamo già trovare, ad esempio, gli add-on per il Click e il Devour). In aggiunta viene vantata una migliore integrazione tra emulatore e ambiente di sviluppo.
- Disponibilità di strumenti per la certificazione delle applicazioni, in modo da avere sempre la certezza della fonte da cui proviene il software.
- Gestione semplificata di database SQLite su device reali e virtuali.
- Gestione semplificata del processo di localizzazione (cioè di adattamento a un certo linguaggio) per un software.
- Gestione semplificata del deploying (cioè scaricamento) di un software su un dispositivo.
- Integrazione con l’Android Market.
- Possibilità di sfruttare dispositivi reali connessi remotamente (tramite DeviceAnywhere) per il test delle applicazioni.
In figura possiamo notare le finestre per la configurazione degli SDK: il grado d’automazione è davvero elevato, rendendo l’intero processo molto semplice.
In figura è rappresentata una lista parziale di categorie all’interno delle quali trovare i vari frammenti di codice.
Il MOTODEV Studio for Android è disponibile per Windows, Linux e Mac OS X. Nel seguito dell’articolo si farà riferimento alla versione per Linux, sebbene le differenze con quelle per gli altri sitemi operativi dovrebbero essere minime quando o, addirittura, inesistenti.
Una volta terminata l’installazione è possibile avviare il MOTODEV Studio, in seguito al quale saremo accolti dal Welcome screen personalizzato Motorola. Da questo pannello è possibile accedere al cosiddetto Workbench (cioè l’ambiente di lavoro vero e proprio) oppure ad altre schermate informative (tra cui una che presenta tutorial per apprendere i rudimenti di Java, linguaggio la cui sintassi viene usata per scrivere il codice del software per Android). Tralasciamo, per ora, queste ultime e puntiamo dritti al Workbench.
Chiunque abbia mai lavorato con Eclipse si troverà perfettamente a suo agio da subito: la presenza di nuove icone, menu e “perspective” (cioè schermate dell’ambiente orientate a un particolare tipo di lavoro) segnalano la customizzazione effettuata da Motorola, ma non confondono l’utilizzatore.
La prima, più importante, perspective è quella chiamata appunto MOTODEV Studio for Android: sostanzialmente da qui saremo in grado di gestire i nostri dispositivi (di qualunque tipo essi siano, cioè reali, virtuali o remoti), gestire i file del nostro progetto, gestire l’emulatore, avere accesso alla libreria di frammenti di codice, interagire con il dispositivo correntemente in funzione tramite l’ADB (Android Debug Bridge, un tool messo a disposizione dal SDK).
Si noti, in figura, il pannello Device Management: l’ambiente di sviluppo ha riconosciuto lo smartphone Android che è stato attaccato alla workstation ed è ora possibile interagire con esso (simboleggiato dallo status Online).
La disinstallazione di applicazioni è un possibile esempio di uso delle funzionalità messe a disposizione del MOTODEV; si noti nella seconda figura come in realtà spesso le funzionalità siano semplicemente un mapping sui tool a riga di comando messi a disposizione dal SDK (in questo caso l’ADB).
Mediante l’ambiente di sviluppo è possibile anche interagire con il filesystem del dispositivo (lettura/scrittura).
La seconda perspective creata da Motorola è stata chiamata MOTOROLA Database e, come si può immaginare dal nome, viene utilizzata per interfacciarsi con i vari database presenti all’interno dello smartphone.
Esiste, inoltre, un’ultima perspective (MOTODEV Ophone Widget) poco interessante per noi occidentali dal momento che si focalizza sullo sviluppo di widget per smartphone basati sull’Ophone OS, una personalizzazione di Android per il mercato cinese.
Sono state, ovviamente, mantenute le altre perspective già presenti nell’ambiente originale come la fondamentale DDMS (Dalvik Debug Monitor Service), utilizzata per capire cosa sta succedendo all’interno del nostro device (ad esempio leggendo tutti i processi che girano nella macchina o analizzando i log provenienti dal sistema o dall’applicazione che stiamo monitorando).
La perspective DDMS, già presente nell’ambiente di sviluppo originario, ma di fondamentale importanza.
La perspective DDMS può essere utilizzata anche semplicemente per ottenere screenshot di ciò che sta girando nello smartphone. Al momento attuale, se non si dispone di un telefono con l’accesso a root, questo è l’unico modo possibile per ottenere tali schermate.
Per mostrare un semplice flusso di utilizzo dell’ambiente di sviluppo abbiamo scelto di sviluppare il classico “Hello World” (campanilisticamente chiamato “Hello Agemobile”) con l’obbiettivo finale di vederlo girare su un Motorola Milestone, fornito gentilmente dall’azienda statunitense per le nostre prove.
Dal menu “File → New” scegliamo la voce “Android Project using Studio for Android” per aprire i pannelli dedicati alla configurazione iniziale del progetto. Notare come anche i wizard per la creazione di un progetto siano stati leggermente personalizzati, cercando di semplificare il processo rispetto a quanto faccia il plugin ufficiale (ma sacrificando le opzioni).
Completato il wizard, torniamo alla schermata di sviluppo con il progetto presente nel Package Explorer. Aprendo il file contenente la nostra classe principale notiamo come sia già stato creato lo scheletro di codice da estendere per ottenere le funzionalità desiderate. Aggiungiamo le righe di codice che ci serviranno per realizzare il nostro “saluto”.
Dopo aver attaccato il telefono (in modalità debug) alla nostra workstation, trasferiamo l’applicazione sullo smartphone cliccando con il tasto destro sul progetto e scegliendo la voce “Run as → Android Application using Studio for Android”: se non ci sono problemi vedremo apparire sul telefono l’output del programma.
Cosa possiamo fare di più con il MOTODEV Studio? Ad esempio possiamo sfruttare i frammenti di codice messi a disposizione dall’ambiente. Come già precedentemente mostrato, nel pannello “Snippets” abbiamo una serie di categorie da cui poter trarre ispirazione a partire da quelle per sfruttare i servizi messi a disposizione del sistema operativo, passando per quelle dedicate alla gestione dell’interfaccia grafica, sino ad arrivare a quelle per utilizzare il GPS o file multimediali.
Per mantenere l’applicazione il più semplice possibile decidiamo di aggiungere un grande pulsante che, una volta calcato, farà vibrare il dispositivo per un certo lasso di tempo dopo il quale il programma si chiuderà. All’interno della categoria “General” troviamo lo snippet che fa al caso nostro: “Vibrate the Phone for a Given Time”. Dopo aver aggiunto il codice per la creazione del pulsante, posizioniamoci sulla riga corretta e facciamo doppio click sullo snippet desiderato: magicamente apparirà nella nostra classe il frammento di codice che svolge il compito richiesto. Notare come ogni frammento sia in genere accompagnato da un utile commento che, eventualmente, spiega quali altre azioni siano necessarie per attivare la funzionalità. Non è proprio programmazione visuale, ma è comunque un valido aiuto.
Lanciando l’applicazione vedremo il nostro software all’opera.
Naturalmente esistono ancora molti margini di miglioramento: ad esempio la perspective dedicata ai database pare ancora acerba e non molto utile (al momento attuale sembra non esista la possibilità di creare db), oltre al fatto che da il meglio di se principalmente con dispositivi virtuali. Non dispiacerebbe anche che venisse migliorata l’ottima idea degli snippet di codice, fornendo una biblioteca più nutrita di quanto attualmente sia.
Ci sarebbe poi tutto il discorso della programmazione visuale, su cui Microsoft ha fatto la sua fortuna negli ambienti di sviluppo, feature molto ambita da gran parte dei programmatori, ma personalmente nutro poca fiducia sulla sua introduzione in tempi brevi.
Nonostante questo Motorola è riuscita a personalizzare positivamente un ambiente di sviluppo ancora nei primi passi della sua vita con interessanti feature, rendendolo un must per chi sviluppa principalmente sugli smartphone della casa statunitense. Vedremo in futuro quanto il software evolverà e se il Motorola Studio e l’ambiente ufficiale di casa Google riusciranno a influenzarsi vicendevolmente in maniera positiva.