23 aprile 2015

canonical "ubuntu phone" recensione - life at your fingertips!


E dopo averci giochicchiato per più di 3 settimane, è giunto il momento di darvi un resoconto approfondito sulla versione per dispositivi mobili di Ubuntu: Ubuntu for Phone.

Il sistema operativo -decisamente giovane- creato da canonical, l'azienda europea fondata da Mark Shuttleworth, è la declinazione per device touch della ben più nota distribuzione open-source GNU/Linux per sistemi desktop e server.

Il team di sviluppo ha l'obiettivo di giungere ad una convergenza tra i vari mondi, quello mobile, quello fisso e dell'Internet delle Cose, mettendo in condivisione tra tutti i sistemi le librerie/API, gli elementi grafici (UI) e l'interazione tra le componenti (UX), così da avere un giorno applicazioni in grado di funzionare indipendentemente dallo specifico dispositivo in azione, ma anche di trasformarne l'esperienza d'uso stessa (di più fra poco).

Ad oggi il lavoro è ancora agli inizi.
Bene, andiamo a scoprire a che punto siamo arrivati.

Tanto per cominciare, al momento, di dispositivi con installato Ubuntu Touch ce ne sono pochi.

A dire il vero -commercialmente parlando- ce n'è solo uno (il bq aquaris e4.5 in variante Ubuntu, che ho recensito); e poi ci sono diversi porting del sistema tramite firmware aftermarket su molti device nati con piattaforma android.
Questo processo di diffusione dell'OS tramite ROM custom è una strada seguita da praticamente tutti i player "giovani" del settore (vedi jolla con il suo Sailfish OS -recensione- oppure mozilla con Firefox OS -recensione-).

In particolare, il porting qui -come accade in Firefox OS- è facilitato dal fatto che Ubuntu per dispositivi mobili (per lo meno nelle attuali versioni 14.x e 15.x) condivide con il progetto Android parte delle librerie di sistema.
Quindi un qualsiasi dispositivo Android in grado di far girare la CyanogenMOD può -teoricamente- far girare anche Ubuntu Touch (hardware permettendo).


A differenza del lavoro di mozilla però, e similmente a quanto realizzato in jolla, qui abbiamo una distro-linux completa: dal kernel ai vari layer (come il display server mir o tutta la gestione dei sensori) senza dimenticarci degli strati per l'astrazione da essi che permettono alle applicazioni di interagirvi (le API specifiche di piattaforma e la QPA).


A dialogare con l'utente vi è il tanto discusso unity (in versione 8) che fa da collante visivo tra il mondo desktop e quello mobile.


Il sistema, sia per le applicazioni native che per l'interfaccia, sfrutta le librerie QT, le stesse utilizzate anche in altri OS (chi ha parlato di Sailfish?).
Ma è possibile costruire anche web-apps in HTML5 (presto anche tramite Cordova) oppure gli scopes (su cui tornerò tra pochissimo).



Canonical ha sviluppato diverse tecnologie per la versione Touch del proprio sistema operativo, ad esempio il già citato mir, ma ha anche riutilizzato diverse componenti già presenti nella variante desktop (come dash, indicators, e così via).
Inoltre ha introdotto i pacchetti click.


Ma tre sono i principi alla base dello sviluppo del nuovo OS: scopes, gestures e security. E in quest'ottica occorre sicuramente analizzarne lo stato dell'arte.



Apps vs scopes... o tutti e due?



Una delle caratteristiche uniche di Ubuntu per telefoni rispetto ai vari competitor è come i contenuti vengono presentati all'utente.

In iOS, Android, Windows Phone, BlackBerry, Firefox OS, Sailfish OS, Tizen e tutti gli altri, l'approccio utilizzato è grosso modo lo stesso: l'utente installa (o trova preinstallate) diverse applicazioni, ognuna raffigurata da un'iconcina. Quando l'utente clicca su una di queste icone dà tutto lo schermo a disposizione della rispettiva app, e con essa va ad interagire.

Anche in Ubuntu Touch esistono, come già anticipato, applicazioni native o web apps che si comportano allo stesso modo. E al momento se ne contano circa un migliaio.

Ma, poi, vi sono anche gli scopes.


Uno scope è un modo completamente opposto di interagire con alcuni dei contenuti di nostro interesse: la tradizionale app tende a chiudere in un "silo" i dati ed a richiedere la propria esecuzione per mostrarceli; lo scope, al contrario, è una specie di widget inseribile nella home del telefono che mostra o aggrega dati recuperati da diverse fonti, senza la necessità di avviare molteplici applicazioni.

Di scopes ne esistono di due tipi: il primo, quello monotematico (o branded), è in realtà molto simile ad una classica app; mentre il secondo, quello aggregato (aggregated) e molto più interessante, permette di aggregare in un solo punto informazioni ricavate dalla rete o dal telefono stesso.

Realizzare uno scope è un'operazione decisamente semplice per uno sviluppatore (anche non esperto), cosa che può aiutare a far crescere velocemente il numero di applicazioni compatibili con l'ecosistema Ubuntu.
E gli stessi scopes possono aiutare gli OEM (vedi anche sotto) a differenziarsi dalla concorrenza.


Ma al momento non è del tutto chiaro come tali elementi andranno ad impattare sull'uso quotidiano che le persone fanno dei propri dispositivi: ognuno ha le proprie esigenze e fa dello smart-phone un uso differente.
A mio avviso gli scope branded possono essere "comodi" per portare velocemente nuovi contenuti e presenziare la nuova piattaforma, ma ho il "sentore" che alla lunga gli sviluppatori tenderanno a preferire lo sviluppo di applicazioni native o web apps dedicate.

E sarebbe un peccato, visto che, invece, gli scope aggregatori sono davvero interessanti. Pensate ad un punto centralizzato in cui trovare tutte le vostre canzoni o video (sia presenti sullo specifico terminale, sia recuperate dalla rete magari da servizi di streaming a cui siamo abbonati); oppure ad una schermata riepilogativa di tutto quello che succede attorno a noi o di quello che abbiamo in programma nei prossimi giorni.
Informazioni che non sono memorizzate in un unico posto (ma sparpagliate negli innumerevoli tools che ormai siamo abituati ad utilizzare tutti i giorni), e che vengono ricavate proprio dall'aggregazione di più scopes branded.


In Android una funzione vagamente simile la si può ottenere tramite l'uso dei widget, ma sia lato sviluppo che lato utente l'esperienza è completamente differente.

I dubbi sulla reale utilità di questi strumenti per il vasto pubblico di utenti comunque rimane. È una scommessa fatta da canonical: vedremo dove porterà!


Gestures, UI ed UX.



Altra scommessa e peculiarità di Ubuntu Touch è l'uso di gestures per il controllo dell'interfaccia (UX), nonché l'uso di elementi grafici (icone, font, colori e quant'altro) che vadano ad unificare la UI con quella della controparte desktop.

Tutto a portata di dito.
Esattamente come accade in Sailfish OS, oppure in BlackBerry OS 10 (o in parte su Firefox OS), l'utente deve controllare il passaggio tra le varie app (e all'interno delle stesse) tramite gesti sullo schermo.
Non ci sono concetti nuovi rispetto alle piattaforme sopracitate o, per quel che riguarda le scorciatoie all'interno delle applicazioni, rispetto a piattaforme più blasonate (vedi iOS od Android).


Quello che cambia è il modo in cui tali gestures sono impiegate:
  • lo swipe dal bordo sul fondo è a completa disposizione dello sviluppatore della specifica app, quindi il suo comportamento varia in base all'applicazione in uso: nuovo messaggio nella messaggistica, nuova sveglia nell'orologio, impostazioni nella home, azioni aggiuntive nelle note, e così via;
  • al contrario, lo swipe dal bordo superiore ci permette di accedere a varie impostazioni ed opzioni di sistema indipendentemente dalla app o punto dell'interfaccia in cui ci troviamo. La barra di stato in alto, che mostra alcuni indicatori e l'ora corrente, è azionabile in base al punto da cui facciamo scorrere il dito e ci permette di arrivare velocemente alle notifiche, alle impostazioni di connettività e sensori, al risparmio energetico e così via.
    L'interfaccia, non solo qui ma anche in altri punti del sistema, è ancora un po' disomogenea, e alcune opzioni a mio avviso potevano essere accorpate in modo differente;
  • gli swipe dai bordi sinistro e destro sono tutti dedicati alla gestione delle applicazioni e al multitasking.
    Il bordo destro, in particolare, ci permette di avere un'anteprima 3D delle app attive se facciamo scorrere il dito dal bordo fino al centro dello schermo; invece, se facciamo uno scorrimento breve e veloce possiamo saltare tra le due ultime applicazioni in uso: davvero comodo quando si stanno utilizzando in contemporanea un paio di app.
    Il bordo sinistro, invece, serve per mostrare il launcher (la barra dei preferiti di ubuntu) da cui è possibile sia passare tra le app attive rappresentate da icone e sia lanciare app non ancora attive ma che abbiamo inserito proprio su tale barra per un rapido accesso. Premendo sul logo ubuntu mostrato in basso, oppure effettuando uno scorrimento completo dal bordo sinistro fino al centro dello schermo, torneremo direttamente alla home.
Nota: per un miglior dettaglio dell'uso delle gestures rimando al video che ho pubblicato su YouTube e linkato in fondo all'articolo.


All'interno delle applicazioni, poi, l'interazione con i contenuti è nuovamente demandata all'uso di piccoli swipe. Ad esempio, per eliminare un messaggio o un elemento all'interno di una lista, dovremo eseguire un piccolo scorrimento del dito su tale elemento affinché appaiano ad interfaccia le icone dedicate all'eliminazione o alle specifiche funzioni (copia, maggiori info, inoltra, etc).

Il carico richiesto all'utente per apprendere il sistema è abbastanza elevato e, tralasciando il "vago" tutorial iniziale, non ci sono molti aiuti sull'interfaccia che facciano capire come muoversi e dove trovare le funzioni avanzate.

Lo stesso "problema" lo ha dovuto affrontare anche jolla nello sviluppo della UI di Sailfish OS, e con la versione 2.0 -in arrivo nei prossimi mesi- ci sarà una generale rivisitazione di gestures ed elementi di interfaccia.
Credo che anche in ubuntu molte cose verranno riviste col passare del tempo.



Il resto della UI ricorda molto quella di altri sistemi operativi più diffusi: c'è la status bar in alto sempre presente (tranne che nelle app a schermo intero), troviamo una barra del titolo (o schermata attiva) con sulla destra fino a 3 icone per azioni veloci.
Ci sono bottoni colorati in base alla funzione, switch di stato, selettori in stile "rotore" per le date, hamburger menu e quant'altro: tutti elementi presenti in qualsiasi altro OS mobile ma che, in questo caso, riprendono lo stile grafico della distro su PC.

A differenza di Sailfish OS, quindi, in cui invece si è lavorato molto per cambiare anche le modalità di interazione con le componenti di sistema, in Ubuntu per dispositivi mobili (un po' come su BlackBerry OS 10) si è cercato di non stravolgere tali concetti, ma solamente di superare il vecchio paradigma di interazione tramite tasti di controllo fissi (come su iOS, Android, Windows Phone, Firefox OS o Tizen).


Personalmente ritengo l'interazione a gesti decisamente più produttiva e comoda nell'uso quotidiano rispetto ai vecchi paradigmi che sono stati formulati decenni fa e a cui sono ancora strettamente legati (seppur con lievi ma costanti modifiche nel tempo) gli os più blasonati.

Rimane da capire, anche qui, come la massa reagirà a tali stravolgimenti. Direzione in cui stanno indagando anche altri player.


Security, Partnerships e altro.



Altro pilastro storico di ubuntu è la sicurezza. E visto che stiamo parlando di una distribuzione linux possiamo essere certi che si parta da una base già ben consolidata.
Inoltre l'approccio open-source nonché le scelte di progettazione (vedi i click packages) permettono di avere rassicurazioni a più livelli.


Sempre grazie al fatto che stiamo parlando di un sistema operativo completo e non una versione "ridotta" (nonché di un sistema GNU/Linux), avremo a disposizione tutti i tools tipici (uno su tutti il terminale). Ed i power users e gli smanettoni non potranno che gioirne.

Non c'è bisogno di root, non ci sono controindicazioni particolari a smanettare direttamente a basso livello. Sempre nella speranza di sapere che cosa stiamo facendo :P



Canonical ha organizzato la struttura in modo da centralizzare la distribuzione degli aggiornamenti e cercare di bloccare in partenza un potenziale fenomeno di frammentazione.
Il sistema operativo è studiato per essere licenziato a vari produttori di terze parti, che possono differenziare la propria esperienza con scopes personalizzati o con store di contenuti alternativi, senza quindi andare ad intaccare quello che c'è "sotto al cofano".

Il primo partner di canonical è stato bq, ma presto anche la cinese meizu porterà sul mercato la propria proposta che si differenzierà -non solo lato hardware- da quella dell'azienda spagnola.


Convergenza e conclusioni.



Le attuali versioni di Ubuntu per vari dispositivi (PC, TV, telefono/tablet, IoT) sono ancora slegate tra loro, ma condividono già molti aspetti. Con il rilascio proprio in questi giorni della versione 15.04 un altro passettino in avanti è stato fatto.


Ma è chiaramente rivolto al futuro lo sguardo, verso quella desiderata convergenza che cambierà completamente il modo in cui noi utenti interagiremo con la tecnologia che ci circonda.

Ubuntu for Phone è ancora acerbo o comunque non completamente pronto per l'utente medio, ma la base c'è ed è "qualitativamente" solida. Sicuramente qualcosa da modificare e da migliorare non manca, ma questo è un discorso che sarà sempre valido, per ogni cosa.


La quantità (apps, devices, ecosistema) arriverà col tempo. Come è sempre stato per ogni piattaforma e come sempre lo sarà.


Video


Vi lascio al video che ho pubblicato per chiarire con le immagini molti dei punti toccati:



E vi saluto!
Alla prossima puntata ;-)