iPhone OS4 Multitasking, chiariamo le cose

iPad • iPhone

L’8 Aprile Apple ha presentato la nuova versione di iPhone OS, la 4.0.
Questa revisione porta moltissime novità, una su tutte è l’aggiunta del multitasking per le applicazioni di terze parti.

Molti si sono lamentati perché Apple non permetteva questa funzionalità ed adesso molti si lamentano perché dicono che non è ancora abbastanza.

Cercherò di fare un po’ più di luce su questo argomento.

Anzitutto cosa è il multitasking. Con questa parola si intende quando un Sistema Operativo è in grado di eseguire più di un Task simultaneamente. Quindi ad un processore gli diciamo di eseguire il Task X e Y contemporaneamente.
iPhone OS è Multitasking? La risposta è Si. Altrimenti come faremo a telefonare e controllare la rubrica? O ascoltare la musica mentre guardiamo un sito web?

Il problema era che Apple aveva bloccato la possibilità di utilizzare le applicazioni di terze parti (fatte NON da Apple stessa) in background.
Questa scelta ha davvero scatenato l’inferno.
E’ vero, tutti i cellulari attuali lo fanno. Symbian di Nokia, Android di Google, Windows Mobile di Microsoft, WebOS di Palm.

Però c’è da notare una cosa, che tutti lo fanno, senza badare a quello che può accadere dietro. Infatti, sta al buon senso dell’utente chiudere o meno le applicazioni più onerose.
Questo cosa comporta? Che un utente medio lascia aperto qualsiasi cosa e dopo pochi giorni il cellulare diventa inutilizzabile. Pur quanto possa essere potente e pur quanto l’OS sia performante.

E’ ovvio, che se mi apri il player, due giochi (NFS e CoD ad esempio), il browser (per non parlare della sezione telefono e sms che solitamente sono sempre aperte), il cellulare inizia a dare problemi. E’ inevitabile, ma non è questo che ci stupisce.

Quindi Apple, cosa ha fatto?
Ha creato una serie di API (vedi “funzionalità per i programmatori”) per poter gestire nel miglior modo possibile le applicazioni in background.

Con il nuovo OS (4.0) ci saranno 3 tipi di task con la possibilità di girare in background:

Audio: Applicazioni con funzionalità Audio come Radio, Lettori MP3 o altro. Potranno girare in background. L’applicazione una volta chiusa lascerà un task relativo alla sezione audio che continuerà a lavorare.

Location: Applicazioni con funzionalità di localizzazione come Navigatori o altro. Potranno girare in background. L’applicazione una volta chiusa lascerà un task relativo alla parte della localizzazione e continuerà a lavorare.

Voip: Applicazioni con funzionalità Voip come Skype o altri IM. Potranno girare in background. L’applicazione una volta chiusa lascerà un task relativo alla parte del Network e continuerà a lavorare.

Ovviamente tutti e tre questi task si possono usare anche in combinazione.

Non solo, ma ci saranno altri due modi per far girare in background la nostra applicazione:

Extra Time: Un’applicazione che prima di chiudersi ha bisogno di ulteriore tempo per finire i propri task. Quindi, fino a che non ha finito, l’applicazione rimane in memoria e lavora.

Local Notification: L’applicazione si registra a delle notifiche interne, un po’ come le Push Notification, e poi, quando è necessario, avvisa l’utente con questi dati. E’ molto utile in applicazioni tipo Eventi, Note ToDo’s. Così l’applicazione non deve necessariamente girare in background e consumare risorse, ma fa il suo lavoro.

Per le altre applicazioni invece, verranno “congelate” e al loro riavvio verranno riaperte proprio da dove le avevamo lasciate.

Tutto questo, va legato strettamente al buon lavoro del programmatore.
Sin dalle prime versioni di iPhone OS infatti, Apple ha messo a disposizione degli sviluppatori delle API per poter registrare gli stati dell’applicazione in modo che esse risultassero comunque sempre “congelate” e in modo da non dare l’impressione di chiudersi completamente. Cosa che il 90% degli sviluppatori neanche considera. Ma adesso, con il background, sarà essenziale utilizzare tali API.

Altra nota. Apple ci dice che, in caso di mancanza di memoria, l’OS chiuderà le applicazioni in background (non tutte, ma solo fino al recupero della memoria necessaria). Questo fa capire che gli sviluppatori dovranno tener conto di questi eventi e far in modo che l’utente non perda ne i dati, ne lo stato dell’applicazione una volta chiusa definitivamente.

Altra nota di Apple, ci dice che le applicazioni che fanno uso di OpenGLES verranno sempre chiuse. Forse per questioni di performance.

Dopo questa panoramica che cosa abbiamo appreso?
Apple sicuramente è un’azienda particolare, lo abbiamo capito, e fa scelte basate sul proprio business. Però dobbiamo dire che quando sviluppa dei prodotti, lo fa bene e lo sa fare bene. Questa ne è la prova.

Avere un multitasking gestito come in un computer desktop non sarebbe stata la scelta giusta. Un cellulare o una tavoletta, non sono i computer desktop. Per questo, servono nuove tecnologie.
Apple ha tirato fuori questa. Vediamo come si comporterà la concorrenza, che fa sempre bene al mercato e a noi consumatori.

Buon lavoro!

Scritto il