Daring Fireball: One App at a Time: Ancora una volta il bravissimo John Gruber spiega come stanno le cose con la chiarezza e la sintesi che lo contraddistinguono. Stavo scrivendo un post proprio per approfondire l’argomento (ossia che sull’iPhone Apple non permette agli sviluppatori di terze parti di scrivere applicazioni che possano eseguirsi in background), in quanto pare che vi sia un dibattito piuttosto animato su questa ‘limitazione’ imposta da Apple.
Gruber:
Esistono svariate ragioni per desiderare che un’applicazione continui a girare in background (o almeno che abbia un processo helper senza interfaccia grafica che continui a girare in background; ma anche questo non è consentito nell’attuale SDK di iPhone).
Alcune di queste ragioni sono evidenti osservando le applicazioni Apple che in effetti si eseguono in background: il telefono, Mail, Safari e iPod. In altre parole, le applicazioni presenti di default nel dock nella parte inferiore dello schermo. Pertanto un’applicazione di terze parti non potrà controllare periodicamente la presenza di nuovi messaggi in background come fa Mail. Né sarà in grado di continuare a riprodurre un file audio in background, come fa iPod.
Nessuna delle altre applicazioni Apple, tuttavia, può girare in background.
No, nemmeno l’orologio e gli SMS.
Nell’interfaccia utente dell’iPhone non esistono i concetti di ‘lanciare’ un’applicazione e ‘uscire’ da essa, continua Gruber, esiste solo lo switching, il passare da una all’altra:
Questa illusione viene mantenuta riducendo il più possibile i tempi di lancio e di uscita dall’applicazione. Regola generale: quando un’applicazione iPhone esce, qualsiasi cosa si stia facendo con essa viene salvata; quando si rilancia l’applicazione, qualsiasi cosa si stesse facendo con essa viene ripristinato.
Perché Apple ha imposto questa limitazione, che a molti (programmatori e utenti) sembra un po’ troppo drastica? Gruber:
Semplice: iPhone è estremamente limitato dalle risorse a disposizione. Batteria, RAM, cicli del processore sono estremamente limitati. Se le applicazioni di terze parti potessero eseguirsi in background, questi tre componenti di iPhone ne soffrirebbero senza alcun dubbio. Tutte le applicazioni in esecuzione consumano memoria. iPhone è provvisto di soli 128 MB di RAM, senza spazio di swap. Le prestazioni della CPU e la vita della batteria verrebbero compromesse quando le applicazioni in background eseguono qualche compito — e se non stanno facendo nulla, che senso ha mantenerle in esecuzione? Ho notato un deciso aumento dell’autonomia della batteria sul mio iPhone quando ho impostato Mail per controllare i messaggi ogni 60 minuti invece che 15. Ed è solo un’applicazione.
Per quanto riguarda le poche applicazioni Apple che girano davvero in background, Gruber spiega che gli ingegneri Apple hanno fatto di tutto affinché queste consumino il meno possibile in termini di CPU, batteria, memoria. Una cosa che non sapevo:
(L’applicazione iPod, per esempio, si esegue in background soltanto se si passa a un’altra applicazione mentre un brano è in riproduzione. Altrimenti anch’essa si chiude premendo il tasto Home per passare ad altro).
E per finire, potrebbe Apple consentire alle applicazioni di terze parti di girare in background?
Naturalmente. Si tratta di un compromesso, in cui gli utenti tecnicamente più avanzati pagano a vantaggio dell’utenza media. Il vantaggio è semplicemente questo: gli utenti non si dovranno preoccupare che le applicazioni che compreranno e installeranno dall’App Store potranno rallentare il loro iPhone o compromettere l’autonomia della batteria. D’altronde quale potrebbe essere l’alternativa? L’avviso di ‘non installare o eseguire troppe schifezze’ sull’iPhone?
E ritorniamo al discorso di un paio di post fa. iPhone non è un Mac né va considerato tale, anche se l’idea piace a molti. Forse più avanti si potrà pretendere che iPhone faccia di più, ma dovrà avere specifiche tecniche più aggressive: un processore più veloce e molta più RAM, tanto per cominciare. Poi, davvero, questa mania di voler riempire iPhone con le applicazioni più disparate la capisco poco. Non ho ancora un iPhone, lo avrò appena potrò acquistarlo regolarmente, ma penso già a come lo userei nella vita di tutti i giorni. Comodo per ascoltare musica, comodo come telefono, comodo avere la possibilità di leggere e scrivere email come se stessi usando un vero client di posta, e stesso dicasi per il Web. Quando osservavo, durante l’evento del 6 marzo, il responsabile dello sviluppo del programma AIM per chattare con iPhone, da un lato applaudivo lo sforzo e i risultati: dopo due sole settimane di sviluppo, l’applicazione è già carina. Dall’altro pensavo: la userei? E francamente la risposta è no. Oltre che sembrarmi ridicolo chattare con un telefono, mi immagino quanta attenzione e concentrazione un’attività del genere possa rubare. Forse potrebbe avere senso, che so, per ammazzare una lunga attesa in una stazione o in aeroporto; per il resto, mah, preferisco la separazione dei lavori. Chattare con il Mac, inviare SMS con il telefono.
Ma al di là delle mie preferenze personali, è innegabile il delicato equilibrio di risorse che l’iPhone offre, e che qualsiasi uso/abuso di una di esse finisce con l’incidere pesantemente sulle altre: CPU, memoria, batteria, sono intrinsecamente legate; l’iPhone com’è oggi — con le sole applicazioni Apple — è un ecosistema chiuso e ben rodato. È comprensibile che l’apertura verso l’esterno sia graduale. Certamente, si può obiettare che Apple dovrebbe lasciar fare, e che poi sta all’utente decidere come gestire le applicazioni che egli stesso installa, e che se il suo iPhone comincia a rallentare e la durata della batteria viene decisamente ridotta sono affari suoi. Ma per quanto riguarda l’ambito Mac ho visto e sentito troppi utenti dare la colpa a Apple per problemi creati da loro stessi volendo installare un sacco di haxie e schifezze sui propri Mac.
Apple non sta decidendo imposizioni restrittive per il puro gusto di farlo, lo sta facendo per non incrinare la fluidità e la bellezza dell’esperienza utente, che è in fin dei conti quello che ha reso iPhone l’oggetto fenomenale che è, e la ragione primaria del suo enorme successo.
2 Comments