sabato 17 aprile 2010

iPhone OS 4 ed il Multitasking

Avvertenza: ciò che segue sono solo le mie opinioni fatte sulla base del recente annuncio di Apple a proposito di iPhone 4 e su numerosi commenti letti in rete - non sono dati oggettivi basati sull'analisi del SDK.

--

Sono spiacente di comunicare che, nonostante i titoloni che avrete sicuramente letto su internet, l'iPhone OS 4 non permette alle applicazioni terze di funzionare in multitasking.

Per multitasking si intende la capacità di un sistema operativo di eseguire contemporaneamente 2 processi.

Il sistema operativo iPhone OS 4 è multitasking, così come lo era la versione 3 (e anche le precedenti, non per niente è un sistema operativo Unix-like). Più applicazioni fornite da Apple funzionano in parallelo l'un l'altra. Ad esempio, si può ascoltare musica mentre si scrive una nota e al contempo ricevere una telefonata (3 processi: iPod, Note e Telefono). Le applicazioni Apple possono essere in esecuzione anche mentre si usa un'applicazione di terzi: nell'esempio precedente possiamo usare un qualsiasi altro editor al posto di Note.

In iPhone OS 4, le applicazioni di terzi, invece, possono funzionare in parallelo tra loro solo in alcuni casi. Apple ha infatti definito 7 API che permettono ai programmatori terzi di far sì che i propri programmi eseguano operazioni parallelamente agli altri. Le 7 API corrispondono a 7 casi ben distinti, vediamole in dettaglio.
  • Background Audio: consente di ascoltare musica anche se l’applicazione relativa è stata chiusa.
  • Background VoIP: permette alle applicazioni VoIP (ad esempio Skype) di ricevere chiamate anche mentre si stanno utilizzando altre applicazioni.
  • Background Location: fino ad oggi chiudendo un’applicazione che sfrutta il GPS si perde la posizione, mentre usando quest'API non dovrebbe più succedere.
  • Local Notification: un’applicazione può sfruttare le notifiche locali (senza bisogno di passare per un server remoto, usano un server locale) per generare un avviso in un’ora di un giorno prestabilito, anche se l’applicazione stessa non è aperta (pensate ad una classica applicazione agenda).
  • Notifiche Push: esistenti da tempo, sfruttano la connessione internet per poter inviare messaggi all’utente anche se l'applicazione non è aperta da giorni.
  • Task Completion: con quest'API, un’applicazione alla chiusura può richiedere al sistema una quantità di tempo necessario per completare qualche compito importante.
  • Fast app switching: consente di far riprendere all'apertura lo stato di un’applicazione così come l’utente l’aveva lasciata alla chiusura (come faranno le applicazioni in Windows Phone 7 che non disporrà di alcun multitasking).
In sostanza, non è possibile creare né un'applicazione che faccia delle operazioni autonomamente mentre non è in primo piano (se non sfruttando la Task Completition), né un server. Le applicazioni, quindi, potranno sfruttare questi 7 servizi. Il funzionamento è diverso per Android.

La domanda, a questo punto, è: sono sufficienti queste scappatoie? Sicuramente è ancora presto per dirlo, ma probabilmente un server su un telefono non serve.

Nessun commento:

Posta un commento