Android Design: perché programmare su Android

Roberto Orgiu
Roberto Orgiu
Android Design: perché programmare su Android

Un po’ ovunque sulla rete leggiamo che sempre più sviluppatori si avvicinano alla piattaforma Android, e la cosa non ci stupisce più di tanto: vediamo quali sono i motivi di questa scelta e perché solo dopo l’avvento di Ice Cream Sandwich Google abbia cercato di portare un po’ di ordine, “dettando le sue regole“ con Android Design.

Come avrete letto sulle nostre pagine, Google e Oracle sono ai ferri corti ormai da qualche tempo, ma per quale motivo? È presto detto: l’azienda di Mountain View ha deciso di usare per il proprio sistema operativo un linguaggio famoso sia tra gli addetti ai lavori che tra i “profani”, il Java, creatura della Sun, azienda acquisita esattamente 2 anni fa da Oracle (l’acquisto è stato formalizzato il 27 gennaio 2010). Java è un linguggio potente, flessibile e versatile, il cui simbolo è la celebre tazzina di caffè nella quale vi sarete sicuramente imbattuti, prima o poi.


Mentre dunque Google si dava da fare con Java, che all’epoca della prima versione di Android era un linguaggio libero, anche a Cupertino e Redmond si sono rimboccati le maniche, scegliendo però due strade diverse e proprietarie: Objective-C e Cocoa per Apple e C# per Microsoft, che, data la loro natura intrinseca di linguaggi proprietari, hanno fornito alle due aziende un valido strumento per standardizzare le applicazioni prodotte per i propri device, spingendo alla fine l’azienda di Mountain View verso la scelta di creare il sito di cui parlavamo, proprio su queste pagine, qualche settimana fa: l’Android Design Guidelines.
Immaginiamo quindi di essere uno sviluppatore che deve decidere su quale dispositivo sviluppare, abbiamo davanti due strade:

  • scegliere un linguaggio conosciuto, diffuso e utilizzato, che ci da forse troppe libertà, il che ci spingerebbe verso il Java e quindi la piattaforma Android
  • preferire un qualcosa di meno elastico ma che permetta alle nostre applicazioni di avere un’interfaccia “stock” senza preoccuparci di elementi aggiuntivi che saranno invece a carico del sistema, che ci condurrebbe invece di fronte ad un altro bivio, ovvero la decisione tra il C# di Windows Phone e l'Objective-C di iOS.

Ecco spiegato uno dei perché in base al quale molti sviluppatori scelgono Android, ma ce ne potrebbero essere molti altri.

Analizziamo ora un aspetto secondario della scelta di Google: il Java è un linguaggio ormai comunissimo che troviamo ovunque, dal nostro robottino, alla centralina della macchina, piuttosto che al proiettore digitale del cinema o al televisore di ultima generazione; capiamo quindi come non sia possibile avere una sola interfaccia che possa andar bene per tutti. Aggiungiamo poi che l’esperienza di “Android puro” non è stata graficamente “interessante” fino ad Ice Cream Sandwich, e possiamo trarre le nostre conclusioni sul perché le applicazioni per Android non siano tutte “standardizzate” e si sia sentito il bisogno di cercare di uniformarle. Guardiamo alcuni programmi per rendercene meglio conto: WhatsApp, ROM Manager, Google+ e Facebook; notiamo subito che, benché stonino nell’insieme, le ultime due sono molto più accattivanti, ed è proprio sulle stonature che le critiche hanno fatto leva e Google ha deciso di rilasciare delle linee guida che tutti dovremmo seguire quando programmiamo con le API di Android.

Fin qui abbiamo parlato solo di Java, ma non è l’unico modo di sviluppare su Android, anzi, negli ultimi tempi ne sono nati parecchi, che in realtà altro non sono se non delle interfacce di programmazione che rendono più semplice lo sviluppo: quella più famosa in assoluto è Basic4Android, che permette di scrivere applicativi utilizzando una sintassi basic-like, piuttosto che PhoneGap che ci apre le porte dell’HTML5, RhoMobile con il suo Ruby e Corona con il LUA. Fortunatamente questi ultimi tre framework sono ormai compatibili con tutte le piattaforme, e stanno prendendo sempre più piede proprio per la possibilità di non dover riscrivere il codice e poterlo invece solo ricompilare per la piattaforma desiderata.

Un’altra motivazione che ha spinto l’azienda di Mountain View verso questa decisione è il sempre crescente numero di applicazioni che da iOS vengono “portate” su Android, lasciando invariato il layout (e molte volte anche l’algoritmo, purtroppo) che viene utilizzato su iPhone, creando problemi che molto probabilmente non si sarebbero nemmeno mostrati con uno sviluppo da zero (chiaramente più lungo e costoso), ma che molte società preferiscono non affrontare e lasciare il codice così com’è: ci viene in mente la famosissima WhatsApp, di cui certamente avrete notato gli eterni tempi di caricamento a schermo nero, piuttosto che l’applicazione dei cinema UCI, il cui layout non sembra sufficientemente spazioso nemmeno un Galaxy S2 ma che funziona perfettamente su iOS.

Abbiamo analizzato quindi quali sono le differenze tra lo sviluppo su Android e quello sugli altri dispositivi dal punto di vista informatico, ma non è l’unico aspetto che conta quando ci si mette davanti al monitor muniti di buone idee: un altro aspetto fondamentale nella vita di uno sviluppatore (e non solo nella sua!) è quello economico. Se ci trovassimo nuovamente di fronte alla scelta del sistema su cui scrivere righe e righe di codice, ci spiazzerebbe il costo delle licenze: 25$ per poter mettere tutte le nostre applicazioni sull’Android Market, molte volte senza nemmeno bisogno dell’approvazione di Google, a fronte di prezzi quadruplicati e controlli a volte fin troppo superficiali da parte di altre aziende; questo è un altro punto a favore di Android, a nostro avviso.

Quanti di voi sviluppano su Android, e con quale tecnologia? Perché avete iniziato a sviluppare per questa piattaforma? Fateci sapere le vostre ragioni ;)