Quelle assurde applicazioni sempre aperte, ovvero: perché Android è così diverso dal pc?
L’utente abituato al PC e al desktop, quando si trova per le prime volte ad aver a che fare con Android, deve affrontare un importante esercizio di apertura mentale che risulterà sicuramente più difficoltoso a chi è un vecchio utilizzatore di PC: abituarsi all’idea che le applicazioni non vanno chiuse.
Nota: c’è anche una versione breve di questo articolo, che va direttamente al sodo.
Il cambio di paradigma
Si tratta di un cambio di paradigma nell’uso dei nostri infodomestici. In principio, come chi ha usato il DOS sa, non era possibile avere più di un programma “aperto”, o meglio avviato, alla volta. Era l’era del single tasking, col suo paradigma della linea di comando. Poi col multitasking si è avuta la necessità di garantire un buon metodo per gestire più programmi in contemporanea, e con la tecnologia delle interfacce grafiche è nato il paradigma del desktop e “finestre” reso famoso da Windows, che lo ha copiato da Apple, che lo ha copiato dallo Xerox Star dei primi anni ’80 (era un sistema fin troppo avanti per i suoi tempi, cercate con Google Images per capire di cosa sto parlando).
Dopo vent’anni di finestre (o meglio pannelli – cos’hanno in comune con le vere finestre??) che si aprono e si chiudono, è normale che passare a un nuovo sistema sia un procedimento non del tutto liscio, ma sono certo che una spiegazione ragionata possa aiutare.
Perché cambiare?
La disciplina dell’User Centered Design (progettazione incentrata sull’utente) ci insegna che l’utente, quando compie un compito, deve pensare a quel compito e alle scelte strettamente inerenti a quello, perché solo una cosa alla volta può essere messa a fuoco dall’attenzione. Il rischio è che se gli strumenti sono difficili da usare o comunque richiedono attenzione, si finisca per trascurare l’obiettivo principale e commettere errori o dimenticanze che pur se innocui rallentano il lavoro.
L’esperienza ci ha abituati, e mi riferisco a noi utenti “pesanti”, ad occuparci di tutte quelle cose di contorno rendendole quasi automatiche e, nel migliore dei casi, non bisognose d’attenzione. Ma ciò non significa che la cosa sia diventata semplice, e ad ogni modo c’è un’enorme quantità di gente che in realtà non sa minimamente usare un computer ed è spaventata proprio da quelle procedure. Mi riferisco alla nozione di file (chi non ha mai visto qualcuno copiare un documento aprendolo e salvandolo con altro nome? Non è un problema suo: è un problema di artificiosità del concetto di file), alla ricerca di applicazioni, doverle aprire, configurarle, cercare fra le loro infinite funzionalità e a loro volta configurarle e sopportarne i malfunzionamenti…
Noi siamo abituati a tutto questo, alla schiavitù rispetto alla tecnologia, ma da almeno un decennio si sta studiando per raggiungere un mondo migliore, ed è ora di entrarci e dargli fiducia.
Le “app”
Parte della soluzione ai suddetti problemi è data dal paradigma delle “app”, introdotto sul mercato dalla Apple e vaticinato dai guru dell’User Centered Design (vedi in fondo). In parte, questo nuovo sistema è nato per sottostare ai limiti di spazio che il display di un cellulare impone, e in parte si è colta l’opportunità per introdurre una novità: non più “apro un programma per fare qualcosa”, ma semplicemente “faccio qualcosa”. E non solo: le app sono sempre più piccole di quanto possa essere un programma da desktop – non dico sul display, ma nelle funzionalità! Questa rivoluzione permette di dedicare meno attenzione al modo in cui svolgere un compito e più al compito stesso.
Un’altra differenza dalle applicazioni da desktop è data dal modo in cui si procede nell’utilizzo. Non più si ha a che fare con “finestre”, ma con compiti o task, e attività (gli sviluppatori sanno che l’interfaccia che si presenta all’utente si chiama proprio Activity). Nel momento in cui stiamo facendo qualcosa, solo quella data attività che fa parte di quel compito è presente sul display, null’altro a distrarci. Se l’interazione deve procedere, è l’app stessa che ci fa passare all’attività successiva. E se per qualche motivo non avessimo più bisogno di compiere una certa attività, semplicemente premendo il tasto “indietro” torniamo alla precedente, fino eventualmente alla Home.
E se dovessimo interrompere il nostro task per compierne momentaneamente (o definitivamente!) un’altro? Premiamo il tasto Home, avviamo il nostro secondo task e quando l’abbiamo terminato, o vogliamo tornare a quello di prima, possiamo tener premuto a lungo il tasto Home per vedere un elenco degli ultimi task e selezionarlo.
Su Android, un sistema votato all’apertura e alla modularità, il paradigma delle app è stato realizzato in maniera che esse, e persino le loro componenti, possano interagire tra loro, mescolarsi e il tutto senza nemmeno sembrar accaduto sotto gli occhi dell’utente: sto leggendo le news? Voglio segnalarne una a qualcuno? Tocco “condividi”, viene fuori l’attività per l’invio dell’email (in pratica è un altro programma, ma non ci interessa: noi dobbiamo segnalare la notizia), poi l’attività per la scelta del contatto e quando terminiamo siamo di nuovo alle news, dove eravamo rimasti, senza dover aprire menu, senza dover cercare applicazioni, senza dover ritrovare la finestra delle news quando abbiamo finito.
Non c’è barra delle applicazioni, non ci sono finestre, e non si chiude niente.
Le app aperte
Giungiamo finalmente al nocciolo della discussione. Proprio quest’ultima caratteristica fa storcere il naso a noi cari vecchi schiavi della tecnologia, abituati a doverla tenere sempre sotto controllo per massimizzare l’efficienza: tenere la memoria libera, chiudere i programmi che non si stanno usando.
Proprio questi utenti smanettoni, esaminando quali processi stanno “girando” sul proprio cellulare, scoprono che ce n’è sempre una quantità assurda, ci si trovano cose che non si sono usate per ore, altre mai usate! Pensano: “Un assurdo spreco di risorse!”. Ed è così che lo smanettone inventa il famigerato Task Killer, un Brunetta software ammazzafannulloni/sprecarisorse. Ma qui non si tratta di uffici pubblici, bensì di un rigoroso sistema operativo ben progettato.
Infatti i processi che vediamo attivi in realtà non stanno facendo nulla. Si limitano ad occupare la memoria necessaria a riprendere l’attività da dove l’avevamo lasciata. È Android che si occupa di liberare quelle risorse, e solo se necessario. Ovviamente inizia col liberare quelle inutilizzate da più tempo. Non solo: se abbiamo abbandonato un task da molto tempo, è probabile che non ricordiamo neanche più cosa stessimo facendo, e la cosa ci creerebbe confusione. Soluzione: Android “azzera” i task inattivi da molto tempo.
Le app malprogettate
Non tutto procede rose e fiori però: come al solito, le app vanno progettate bene. Esiste una componente delle app che si chiama servizio e viene usata per quei compiti che non hanno bisogno di mostrare un’interfaccia all’utente, e al massimo emettono una notifica. I servizi, per la loro natura, potrebbero essere in funzione anche se al momento il compito che lo riguarda non è nel fuoco dell’attenzione, ad esempio un trasferimento di file (a meno che non ci piaccia star a guardare la progress bar che avanza) o un servizio che controlla ogni 5 minuti la posta.
Mentre nel primo dei due esempi è assai probabile che il servizio verrà terminato quando avrà compiuto il suo dovere, il secondo probabilmente rimarrà attivo per sempre. Vale sempre la regola per cui Android si occupa di terminarlo se si è a corto di risorse (e tra l’altro in tal caso si occuperà di farlo ripartire in momenti più sereni), ma se troppi servizi si comportano così si finisce per soffrirne, specie se ognuno ogni 5 minuti esegue qualche compituccio.
C’è poi il caso limite, per cui certi servizi richiedono che il processore non vada mai a riposo: niente di più deleterio per la batteria.
Sarebbe bene, quindi, lasciare all’utente la possibilità di decidere la frequenza di esecuzione di certi servizi ed eventualmente disattivarli.
Come ho già detto in un altro articolo, sta a voi pretendere applicazioni che funzionino. Se non vi ci trovate non è che non siete capaci, è che lo sviluppatore non capisce e non comunica coi suoi utenti.
Approfondimenti
Un ottimo articolo (in inglese) sul perché i task killer sono inutili:
Uno storico articolo su come e perché evitare servizi eterni:
Tre libri di due autori che hanno indicato la via da percorrere per liberarci dalla schiavitù tecnologica:
- La caffettiera del masochista e Il computer invisibile di Donald Norman
- Interfacce a misura d’uomo di Jef Raskin
| Stampa l'articolo | Questo articolo è stato pubblicato da Andreid il 28 giugno 2011 alle 17:46, ed è archiviato come News Androidiane. Puoi seguire i commenti a questo post attraverso RSS 2.0. Puoi pubblicare un commento o segnalare un trackback dal tuo sito. |


circa 1 anno fa
Articolo molto interessante.
Domanda (che probabilmente mi classificherà tra quegli utenti ancora schiavi dell’ossessione del controllo): esiste una app che faccia visualizzare sulla barra delle notifiche le varie app aperte? Non intendo i processi o i servizi in background, ma appunto le altre app (ad esemio apro il browser, poi cliccando su un collegamento mi si appre il market, poi però mi viene in mente che dovevo guardare un documento ed abbasso entrambi: averli in quel momento visibili sulla barra delle notifiche renderebbe immediato un loro “ripescaggio”).
Firmato: un utente android da tre giorni (galaxy tab p7500)
circa 1 anno fa
Si’ esiste un modo, e purtroppo e’ una funzionalita’ invisibile: bisogna tener premuto il tasto Home! Compariranno le app piu’ recenti (sul mio cell un massimo di otto). Da Honeycomb in poi invece c’e’ un tasto apposta che presenta una lista piu’ lunga a seconda della memoria disponibile sul device.
Non e’ ossessione del controllo, e’ effettivamente comodo poter fare sta cosa, infatti sin da Ice Cream Sandwich (4.0) e’ stata resa piu’ evidente anche sui cellulari:
Se pero’ preferisci comunque usare la barra delle notifiche, prova a cercare “task switcher”, troverai parecchie opzioni, in particolare “Taskbar task switcher” dovrebbe essere quello che vuoi tu.
Grazie per l’interesse!
circa 1 anno fa
purtroppo Taskbar task switcher non sembra funzionare propriamente (probabilmente è un problema di compatibilità col launcher o con il tablet stesso), ma grazie comunque, con la chiave che mi hai suggerito alla fine riuscirò a trovare qualcosa che fa per me
circa 1 anno fa
Accipicchia: grazie a te per la risposta e per questo sito in generale!
Appena torno a casa mi cimento nella cosa.
Comunque sei bookmarkato eh, non scappi
circa 1 anno fa
Purtroppo le applicazioni aperte sono un problema notevole e non un pregio del sistema operativo a favore dell’utente.
Le applicazioni aperte anche se inattive rallentano di parecchio il telefono. Esempio… apro il gioco “Angry Birds” e va lentissimo. Chiudo le applicazioni superflue e va tutto di nuovo veloce. Tempo 2 minuti le applicazioni sono di nuovo aperte..ed il telefono viaggia di nuovo come una lumaca.
Altro problema di questa mal gestione delle applicazioni da parte di android è la connessione ad internet.
Apro il browser per andare su google ed appena la connessione si attitva, tutte le applicazioni che si aprono da sole si connettono ad internet. Se si ha una connessione di 20 mega non ci se ne rende conto…ma provate a navigare con Vodafone, la cui connessione è lentissima. Per aprire google ci vuole a volte anche un minuto intero. Non vi dico per navigare.
E questi problemi non sono “punti di vista”, ma problemi reali.
circa 1 anno fa
Ciao Alessandro, grazie per il commento. E’ vero che sono problemi reali, ma non ci sarebbero se le applicazioni seguissero sani criteri di progettazione. Gli sviluppatori dovrebbero ricordare che la propria app (ogni scarrafone…) e’ un’ospite sul dispositivo dell’utente e dovrebbe comportarsi di conseguenza. Quindi dovrebbe lasciar decidere l’utente se accedere ad internet appena la connessione e’ disponibile (se ha 20mega gli stara’ pure bene), o eseguire qualche compito in background. In molti casi e’ cosi’, in molti altri non è neanche facile scoprire comportamenti indesiderati, ma Android si sta muovendo per fornire degli utili strumenti (vedi questo articolo).
Per fare un esempio: Paranoid Differenze (su G.Play) fa un controllo sull’esistenza di nuovi pacchetti di immagini. E’ una cosa minima (si limita a controllare una data), ma abbiamo preferito farlo solo all’avvio dell’app invece che ogni volta che diventa disponibile una connessione.
Ad ogni modo, se è meglio questa gestione delle cose o un’altra piu’ rigorosa, e’ una scelta dell’utente. E’ la piu’ antica delle questioni politiche! Ma visto che hai un dispositivo Android ti invitiamo a dare una chance ai consigli sull’individuazione degli sprechi. Magari ci farai sapere se risolvi qualcosa! ciao!
ps: ti assicuriamo che app che stanno solo in memoria non pesano in alcun modo: se serve memoria all’app correntemente eseguita, Android “dimentica” immediatamente le piu’ vecchie. Il problema c’e’ solo se ci sono processi in background, che succhiano cicli del processore.
circa 8 mesi fa
Applicazioni che si aprono da sole? Inorridisco, davvero su Android può succedere questo? Su iOS sarebbe impossibile.
Comunque, Jef Raskin e Donald Norman sono tutti e 2 Ex ingegneri Apple..