27 giugno 2014

La mia filosofia... vestirsi è un optional! (cit.)


Ciao ragazzi, il tema di oggi è: la personalizzazione.

Questo post nasce da una promessa che vi avevo fatto durante la recensione del motorola moto g, parlando appunto di personalizzazione del device. Se in quell'articolo mi ero concentrato sull'estetica della scocca (cover alternative, custodie, protezioni e quant'altro), quindi specifica per quel dato dispositivo, questa volta il taglio sarà un po' più generico, visto che i punti che andrò a toccare riguarderanno qualsiasi smart-phone equipaggiato dell'OS di mamma google.

Sì, sto parlando ovviamente di Android, l'amato figliolo di BigG, che di strada ne ha fatta davvero tanta nell'ultimo decennio.

Da quel lontano 2005 (quando google, con nemmeno con troppa convinzione, acquisì la piccola start-up Android.inc) ad oggi, Android si è trasformato da un più-o-meno-clone del vecchio BlackBerry OS al fulcro di tutte le attività a Mountain View, dettando le linee guida per il design di tutti i prodotti del gigante americano.



In questi ultimi sei anni, dall'uscita sul mercato, di cose ne sono cambiate davvero molte, tant'è che il robottino verde è riuscito ad imporsi su tutti gli altri sistemi operativi per dispositivi mobili esistenti (e, in alcuni casi, non solo quelli).
Ma la filosofia alla base, nel corso del tempo, è rimasta grosso modo la stessa: il fil rouge, il collante di tutto, è sempre stata la possibilità di modellare il sistema secondo i nostri gusti (o quelli del produttore del cellulare/tablet/dispositivo in nostro possesso).

La personalizzazione in Android viaggia su diversi binari: si può agire ad alto livello, scegliendo le applicazioni che più preferiamo per eseguire determinati task, fino al livello più basso possibile ed andare a cambiare completamente il funzionamento di ogni componente di sistema.
Ovviamente occorre avere le giuste competenze per mettere le mani al posto giusto: alcune cose sono pensate per poter essere fatte da chiunque, altre sono solo per gli addetti ai lavori o per gli smanettoni.

Questa possibilità di customizzazione rende il mondo di Android completamente differente da tutti gli altri: in sistemi concorrenti non si va molto lontano rispetto alla possibilità di cambiare sfondo o qualche impostazione qui e lì (vedi iOS), oppure dal poter cambiare il colore (solamente tra quelli preimpostati) dei tasselli delle apps (vedi Windows Phone).

E google stessa, nel corso di questi anni di evoluzioni, ha cambiato molte volte le carte in tavola, sia per quanto riguarda le funzionalità, sia per quanto riguarda l'aspetto esteriore della sua creatura. Molto più di quanto i concorrenti abbiano fatto in archi di tempo simili, anche considerando solo il punto di vista delle funzioni presenti:



Con il design, però, ci hanno dato dentro alla grande:


Addirittura alcuni concetti chiave sono variati: dalla necessità di tasti fisici, fino ad arrivare ai comandi a schermo; dalla mancanza totale di linee guida grafiche e di interazione, fino ad un linguaggio unico (grazie al lavoro di Matias Duarte) che va oltre il robottino verde, e che è giunto sul web, nei wearables, sulle nostre TV e, perfino, automobili.

Non solo: visto che l'apertura è la filosofia alla base di tutto, ogni produttore facente parte del consorzio OHA (Open Handset Alliance) ha apportato modifiche, aggiunto funzionalità, modellato l'esperienza utente dei propri device con concetti proprietari, andando delle volte anche un po' a incasinare le carte in tavola.


Così si presentava Android nel 2007, quando un dispositivo fisico non era ancora disponibile, ma si poteva giochicchiare con l'OS solo tramite SDK.

Che differenza eh?



La personalizzazione a più binari, come detto, ha portato alla nascita di tantissime realtà che viaggiano di pari passo con l'evoluzione delle funzioni proposte da mamma google.
Sì, perché, nonostante tutto, l'avanzamento è sempre guidato da lei, e solo alla fine degli sviluppi il codice viene reso pubblico e distribuito ai partner e al mondo intero (per lo meno le componenti open-source): una sorta di minimo controllo centrale, inevitabile per tenere lontano il caos assoluto che si andrebbe a creare e che, molto probabilmente, minerebbe la vita stessa del sistema operativo, nonché la nascita di una frammentazione tipica in ecosistemi meno rigidi (es. il mondo Linux in generale, anche se Android fa comunque parte di esso).

Con Android L, l'ultimissima release annunciata in questi giorni durante il Google I/O, ma che sarà ultimata solo in autunno, le cose stanno leggermente cambiando anche in questo senso: sia perché google ha rilasciato una preview con vari mesi di anticipo, e sia perché sta cominciando ad incorporare features sviluppate dagli altri produttori (come Samsung Knox che sarà integrato all'interno del codice finale).

Se volete sapere tutto riguardo la storia di Android (anche rispetto alla concorrenza, in questi 10 anni di avanzamenti tecnologici), vi consiglio fortemente di approfondirla tramite questo articolo, molto dettagliato (sono 26 pagine! con tanti screen-shots), realizzato da ArsTechnica.


Bene, fatta questa lunga introduzione, veniamo al nocciolo della questione: come personalizzare il nostro telefonino?

Andremo per gradi, visto, come ho anticipato, che è possibile agire a più livelli.

Level 1


In un sistema operativo che si rispetti è possibile cambiare sfondo, almeno nelle schermate di home, la suoneria, etc. E chiaramente questo in Android è possibile.
Inoltre, a seconda delle personalizzazioni fatte dai vari produttori, si può anche cambiare sfondo nella lock-screen, piuttosto che nell'app-drawer (il punto in cui sono raccolte tutte le icone delle applicazioni installate, se previsto).

Sempre il lavoro dei vari produttori può permettere di cambiare i font utilizzati a livello di interfaccia, piuttosto che le icone dei programmi installati, o altre modifiche grafiche più o meno profonde.

Questo è impossibile negli altri sistemi operativi concorrenti. E questa differenza di personalizzazione tra dispositivo e dispositivo si collega direttamente al punto seguente.


Level 2


La possibilità di personalizzazione in Android parte dal concetto stesso che non esistono applicazioni predefinite, nonostante ce ne siano di pre-installate. In quasi tutti gli altri sistemi operativi esistenti per il mercato dei device mobili, sono presenti alcune applicazioni (penso al telefono, piuttosto che alla rubrica o all'applicazione per la gestione degli SMS/MMS) che sono fisse e sono le uniche possibilità per l'utente.

In Android il concetto di applicazione è esteso a qualsiasi componente: anche la tastiera è una app, così come la lock-screen, il launcher (l'applicazione che permette di navigare tra le applicazioni installate, mostrarci widget e sfondi, chiamato anche Home), e così via.
E non esistono applicazioni fisse: ogni app, infatti, può essere sostituita da un'altra applicazione che noi utenti possiamo apprezzare di più (o che il produttore del device di turno preferisce rispetto all'implementazione di base).

La scelta non è limitata solo alle già citate app quali telefono, messaggi, etc... Ogni componente del sistema operativo, che sia il calendario, piuttosto che l'applicazione per la gestione della posta elettronica, fino ad arrivare alla lock-screen o, ancora, tutto il launcher stesso, possono essere rimpiazzate con quello che vogliamo.

E, sempre a differenza di altri OS, che magari permettono comunque l'installazione di applicazioni alternative, in Android possiamo impostare le nostre scelte come predefinite. In iOS, ad esempio, è possibile scaricare altre apps browser web rispetto a Safari, o altre apps client di posta elettronica rispetto a Mail, ma quelle predefinite (cioè quelle che saranno avviate quando si cliccherà su di un link, oppure quando si vorrà inviare una e-mail) saranno sempre e comunque le app di Apple.

In Android, quando viene rilevata una doppia applicazione che può rispondere alla stessa richiesta, verrà caricata una schermata di conferma che ci permette di impostare quale app utilizzare come predefinita per futuri usi!

La scelta di alternative non è limitata alle sole app installabili, ma anche allo Store stesso da cui scaricarle queste applicazioni: dato che anch'esso è una applicazione, in Android è possibile sostituire/affiancare il Play Store di google con store di applicazioni alternativi.

Android, poi, essendo un OS ormai maturo, permette l'esecuzione di app sia native, sia realizzate con tecniche ibride. O addirittura apps scritte per altri OS, come FireFoxOS.
Questo grado di personalizzazione ha portato, ovviamente, alla creazione di alternative così ricche di features e funzionalità talmente profonde che, se si ha voglia di mettere le mani un po' ovunque, si può arrivare a plasmare il nostro device veramente a nostra immagine e somiglianza!



Level 3


In Android, comunque, non ci si ferma qui, anche se la soglia a questo punto va oltre la semplicità dell'installazione di una app.

Visto che il sistema operativo è a codice aperto (open-source) vi è la possibilità di sostituire il firmware installato sul nostro device con un altro realizzato dalla community (o volendo da noi stessi): questo significa che è possibile sostituire la personalizzazione fatta dal produttore del telefono con, ad esempio, una versione di Android più stock (cioè più simile a quella pensata da google e il più simile possibile all'AOSP, l'Android Open Source Project: senza le personalizzazioni di BigG), o con versioni modificate dal modder di turno. Il che rimanda direttamente al prossimo livello.

Una delle più famose, il cui creatore, da poco, ha fondato una azienda proprio per seguirne lo sviluppo


Installare firmware alternativi, comunque, non è sempre facile, perché i produttori dei dispositivi mobili non sono sempre aperti a queste procedure, e spesso mettere mano a questo livello significa perdere la garanzia sul dispositivo.
In più, proprio per evitare che l'utente possa modificare manualmente il firmware del device, i produttori sono soliti bloccare il boot-loader (la sequenza iniziale che fa avviare il telefonino/tablet), il che necessita spesso delle operazioni complicate per bypassare la cosa.

Alcuni device nascono per essere sbloccabili con un click, come la serie nexus di google, oppure come altri device che, tramite una semplice richiesta al produttore di turno (e con l'inserimento di un codice di sblocco), permettono di superare l'ostacolo, ma solitamente sempre perdendo la garanzia.
Questo è, ad esempio, il caso del moto g.

In questo articolo, per quanto riguarda gli esempi, mi fermerò al livello 3, perché per il 4° occorrono competenze specifiche, e già qui la possibilità di fare casini è molto elevata... :-D


Level 4


Chiaramente se è possibile installare firmware custom, ci deve essere qualcuno in grado di farne: questo è l'ultimo grado di personalizzazione possibile, e chiaramente destinato a chi sa veramente cosa sta facendo.

Avendo a disposizione i driver specifici per ogni componente presente nel device sarà possibile crearsi la propria versione del firmware per il dispositivo, e quindi avere una personalizzazione al 100% ottimizzata secondo le nostre esigenze e desideri.
Il che significa andare anche a modificare alcuni comportamenti del sistema operativo stesso o l'aggiunta di nuove funzioni e quant'altro che non è possibile avere, ad esempio, con la semplice installazione di apps.

Alcuni ricercatori, modificando modificando, sono riusciti addirittura a far partire applicazioni scritte nativamente per iOS, senza toccare il codice delle stesse, su una versione completamente customizzata di Android...


Di seguito trovate un video che ho girato per mostrarvi il livello 3 di personalizzazione.
Per quanto riguarda i livelli ad esso precedenti do per scontato che se siete qui a leggere l'articolo siete assolutamente a conoscenza di cosa io stia parlando...

Nel seguente video mi soffermo sulle differenze tra due firmware per lo stesso device: la versione ufficiale di quello per il moto g (da motorola) e la versione estratta dal moto g play edition (da google):



Per maggiori dettagli su come installare firmware custom (nel caso del moto g), vi rimando all'articolo sulla personalizzazione che avevo pubblicato al tempo della recensione, in cui sono riportati tutti link alle risorse necessarie per procedere passo passo.

Se avete qualche richiesta in particolare (su altri firmware, altre prove...) lasciate un commento e proverò ad aiutarvi!


Non mi resta allora che salutarvi: a risentirci presto!
Ciao!