La grande attesa che si è creata intorno iPhone OS 4.0 ovvero il nuovo sistema operativo per iPhone di Apple è terminata.
Gli annunci sono stati clamorosi, possibilità di creare cartelle sul desktop, personalizzazione dello sfondo, niente da fare per il Flash, ma in cambio finalmente il multitasking.
Queste sono solo alcune delle nuove funzioni, altre, meno visibili, daranno agli sviluppatori maggiore libertà in particolar modo per il fatto che sono state rilasciate oltre 10000 nuove API con cui i programmatori potranno interagire “liberamente”.
Dove è il problema? Il problema è che il multitasking non è un multitasking. Non mi riferisco alle limitazioni già annunciate con il lancio di iOS 4, ma al fatto che non è un vero e proprio multitasking.
Per definizione il multitasking è gestito dal sistema operativo, il quale è in grado di gestire più processi con una stessa CPU. Fin qui ci siamo, ma il punto è che con il sistema introdotto da Apple se l’applicazione non è stata sviluppata per essere sospesa il multitasking non va.
Dopo l’aggiornamento la prima cosa che ho fatto è stata aprire qualche applicazione, utilizzarla per un po’ e poi aprirne un’altra. Con le applicazioni native tutto liscio, Safari fa un freeze perfetto, Impostazioni rimane sulla apgina da cui siete usciti e così via.
La delusione è stata quando Skype mi ha disconnesso, Opera si è riavviato e così via. La spiegazione l’ho già data, se l’app non prevede il multitasking allora nisba. Questo significa che ogni sviluppatore dovrà provvedere ad aggiornare le app per abilitarle alla funzione, come ha già fatto Twitter.
Se c’è qualche sviluppatore in ascolto vorrei chiedere: E’ una procedura particolarmente onerosa o si tratta di poche semplici stringhe di codice?
#1FabrizioC
Se non ho capito male l'adattamento per non far chiudere l'app è intercettare un paio di eventi messi a disposizione dal nuovo SDK quando l'app va in background e quando ritorna in primo piano.
#2Giovanni
Esatto.
Non conosco iPhone, ma penso che abbia la stessa gestione di Android, quindi manca da parte degli iphone developer l'implementazione di questi metodi.
#3Sergio
Quando fate articoli cosi mi cadono le braccia, meno male che siamo Geek eh!?
Dunque, anzitutto va precisata una cosa, si tratta di un OS per cellulari, quindi deve tenere bene a mente la batteria quindi è evidente che come accade in TUTTI i cellulari le applicazioni vengono messe in RAM e bloccate! Se non sfrutti le API che ti vengono date ovviamente il tuo applicativo va in crash! Alcune applicazioni come ad esempio TomTom possono risiedere in memoria e utilizzando altre API ancora riescono ad essere eseguite comunque! Lo stesso discorso vale per Skype che però deve ancora rilasciare una versione compatibile con iOS4 questo sarà fatto a breve! Tengo a precisare che ogni giorni decine di sviluppatori rendono i loro applicativi compatibili con iOS non solo per evitare crash ma anche per sfruttare queste nuove API!
In pratica il multitasking in iOS4 c'è e si vede, se poi vogliamo lamentarci che Skype, Opera e altri software non sono ancora pronti… che colpa ne ha Apple scusate?!?!
#4Hamlet84
Concordo! Articolo di livello tecnico bassissimo.
#5Hripper
ma per favore smettila! il mio nokia 6630 aveva un multitasking perfetto! cellulare di 6 anni fa! col nokia n78 che ho adesso scarico la mail, sono su live messenger e sul web contemporaneamente, magari ho aperto anche l'applicazione dei messaggi e qualcos'altro, e non ha problemi di sorta! ed è un telefono del 2008!
#6N1k
come t'ha già detto hripper il multitasking è roba anteguerra
come sempre se iphone os è deludente lo si deve al fatto
che l'iphone continua ad essere limitato, avete voluto il superprocessore
e lo schermo miniaturizzato? benissimo ringraziate
se gli sviluppatori non riprogrammano le loro app per il multitasking
altrimenti dovrete piantarvi un pannello solare in testa
e non fate pietosi confronti con android come fanno gli altri che è un mondo apparte
e per via dei processori di cui si avvalgono sviluppati
apposta per smartphone non per pseudotablet questi
problemi energetici non ne hanno e in multitasking vanno da dio
anche con 10 app alla volta su un 256 mega di ram.
#7Andrea
non è l'applicazione che deve essere adatta; è il sistema operativo che deve gestire la schedulazione tra processi.
#8[email protected]
…se l’applicazione non è stata sviluppata per essere sospesa il multitasking non va…
me pare ovvio no?
#9Gim
premetto che ho un iPhone da due anni e appena esce in Italia il 4 lo acquisterò, riconosco che sono molte le pecche in pieno stile apple che ha il melafonino, ma attaccarsi a questa storia del multitasking mi sembra veramente ridicolo…come dice l'amico qui sopra: me pare ovvio…del resto l'avanzamento tecnologico a che serve altrimenti, ovvio che gli svipuppatori dovranno modificare i loro software, cosa propone l'autore dell'articolo che per non far sbattere i programmatori a metter mano alle proprie applicazioni non avanziamo come fanno tutti quelli che sanno solo copiare o nelle peggiori delle ipotesi muovere delle vuote critiche?
#10Tantaroba
Forse perchè devono aggiornare le apps per fare in modo che supportino il multitasking?
Informatevi prima di DISINFORMARE la gente! 😉
#11Yselfh
Guarda che è il sistema operativo a dover gestire il multitasking assegnando tempi CPU a tutte le applicazioni attive. Normalmente, quando sviluppi un'applicazione per qualunque sistema operativo, non devi preoccuparti di gestire il multitasking perché è il sistema a gestirlo. Qui viene imitato, ovvero, lo stato dell'applicazione viene salvato nella memoria del telefono e l'app viene quindi chiusa, quando richiami l'applicazione viene letto lo stato e passato all'app che deve riprendere da dove era rimasta, questo non è multitasking perché il task, ovvero l'applicazione che sta girando, è sempre una.
#12eema
è come quello di android… le app vanno in freeze… anzi a differenza di android apple offre piu api dell'o.s. tramite cui la app può eseguire cicli di clock anche in background..
#13Andrea
no.. è il sistema operativo che DEVE gestire la schedulazione tra processi
#14Davide
ragazzi ragazzi, ho fatto una scoperta sensazionale: mettendo un pò di acqua FREDDA in un pentolino e poi sul fornello acceso, beh l'acqua diventa CALDA, INCREDIBILE! VERO?!
#15Lorenzo
che ti sei fumato?
#16Giovanni
Sono uno sviluppatore Android. Ti posso dire che Android funziona allo stesso modo. E' lo sviluppatore che si deve occupare di salvare lo status dell'app (le variabili locali dell'app) all'interno di una sorta di Sessione applicativa. La cosa non è complicata, ma va implementata.
Android è nato così, quindi sembra trasparente all'utente. Per gli sviluppatori iOS è una cosa nuova, quindi ci vorrà tempo, più o meno lungo dipende da quante informazioni (variabili locali) si intendono salvare.
#17@ilbeppez
mmm ma dai? 🙂
pensavate davvero che supportasse il multitasking?
#18yselfh
onestamente io ci speravo. ma è stato solo marketing, a questo punto 1000 volte meglio android
#19eema
è implementato tale e quale a android..leggi il commento qui sopra di giovanni
#20ghg
Ma è questa la particolarità del multitasking su iPhone! In pratica, anziché appesantire il processore e consumare batteria lasciando aperta tutta l'applicazione, lascia attivi solo i processi che occorrono realmente e questo ovviamente deve essere stabilito dallo sviluppatore. Inoltre penso ci siano altre imprecisioni: Safari ad esempio funziona in background anche sui precedenti firmware e molte applicazioni (note, sms, calendario ecc..) già da iPhone OS 1.0 si congelano alla chiusura per poi riprendere da quel punto quando le si riapre.
#21HalphaZ
Non sono sviluppatore ma bastano pochi fondamenti di sistemi operativi per rispondere: l’applicazione non deve essere programmata appositamente per permettere la multiprogrammazione del sistema operativo (ovvero il fatto di potere eseguire più applicazioni contemporaneamente), deve esserlo solo qualora l’applicazione voglia sfruttare più thread, ovvero qualora voglia essere multithread. Ma i due concetti sono separati e nei fatti un’applicazione non si accorge di essere in un sistema con multiprogrammazione proprio perchè il sistema operativo la isola dal resto del sistema ed evita che questa possa interferire col sistema stesso.
In definitiva la multiprogrammazione è gestita dal sistema operativo, il multitasking invece deve essere supportato dall’applicazione.
#22Mauro
Un sistema di multitasking come quello presente nei sistemi operativi desktop non è proponibile su telefoni cellulari se si vuole preservare batteria ram e risorse varie.
Tanto è vero che se non ricordo male pure android utilizza una tecnica simile a OS4.
Le righe da scrivere non sono moltissime ma ci vuole tempo.
Questo articolo è la disinformazione fatta notizia.
L'ignoranza è una brutta cosa, soprattutto se viene da chi dovrebbe informare
#23Lorenzo
da Fulvio non si può chiedere di più, guarda
#24Giangi
Non diciamo stronzate difendendo la apple…. Il multitasking è gestito dal sistema operativo che può interrompere i processi mediante segnali di interrupt oppure altre procedure… Si tratta quindi di un problema di cpu o os e non di applicazioni che non "supportano" il multitasking…
Ho un htc legend e un iphone regalatomi da una settimana… L'htc con android continua a soddisfarmi di più… E mi dispiace solo che, tenendo l'iphone invece di cambiarlo con un altro regalo, io sia stato uno di quegli utenti che si è fatto attrarre dal marketing apple (l'unica cosa che l'azienda capitanata da steve jobs sa fare).
Bye!
PS sono un sistemista, non venitemi a provocare sul multitasking perchè tra le POCHISSIME cose che so (lungi da me il credere di sapere tutto) c'è la conoscenza approfondita dell'argomento…
#25eema
Beh allora non sai niente perchè il tuo android gestisce nello stesso modo il background dell'iphone.. entrambi alla chiusura salvano la sessione e la app va in freeze…solo che su android c'era gia dall'inizio e quindi erano abituati a farci le app compatibili..su iphone c'è solo ora e quindi si devono ancora adeguare…
Potrai essere sistemista esperto di multitasking e soddisfatto del tuo legend ma non sai un'acca del sistema che ci gira sopra..
#26giambo
ironico: haha
#27onimatsu
il multitasking e' supportato e funzionante se l'app scritta sopporta il multitasking. Quindi, tutte le app scritte fino ad ora, a parte le native, si chiudono. Tutte le app devono essere aggiornate al multitasking e quelle scritte nuove dovranno integrare le nuove API rilasciate da apple. Solo questo, e mi sembrava anche scontato questo…
#28Jabulani
Che divertenti che sono i maestri in questo post…………
Quello di Apple non è vero multitasking, PUNTO.
Prima di tutto si potrà avere solo un’applicazione “per tipo”, ovvero un solo player audio, un solo browser, etc.
Poi basta provare il multitasking dell’iPhone jailbreak per capire quali sono le differenze, potete aprire tutto e mandarlo in secondo piano, la batteria ne risente in maniera davvero impercettibile.
Sarà necessario aggiornare le app proprio per adattarle a questo multitasking anomalo.
#29eema
Per te non è vero multitasking? bene.. allora neanche android ce l'ha.. perche l'api del fast app switching è esattamente la stessa che usano le app di android per andare in background..
#30Lorenzo
Non è che è multitasking solo perchè è uguale a quello di Android cavolo. NESSUNO DEI DUE è multitasking. Contento? Dormirai tranquillo ora???? Mio dio
#31Alex
Spero di chiarire un po' di dubbi.
Il multitasking dell'iPhone non è multitasking "vero" (preemptive), e nemmeno cooperative. Ci sono alcuni servizi di sistema che girano in vero multitasking vero (l'audio, la geolocalizzazione, gli update, ecc.). Le applicazioni non possono essere scritte per girare in multitasking. Possono solo usare questi servizi che girano in multitasking. Quindi un navigatore, per esempio, può usare il geolocalizzatore per farsi dire la posizione. Quando la posizione cambia, l'applicazione GPS viene "risvegliata" in bg, controlla la posizione e, se c'è un incrocio, usa il servizio audio per avvisare il guidatore di girare, poi viene di nuovo congelata.
In tutti gli altri casi, quando si cambia applicazione, quella in foreground viene congelata, ma appena prima viene richiamata una funzione per permetterle di salvare lo stato, e quando viene scongelata viene chiamata una funzione per ripristinare lo stato. Ma non può eseguire nessun calcolo in background (per esempio continuare a renderizzare un PDF, fare elaborazioni grafiche a una foto, ecc.).
Su Android è diverso. Se l'applicazione A è in uso, è in foreground. Se si apre l'applicazione B, viene chiamato il metodo onPause() su A, in cui l'applicazione può (può, non deve) rilasciare le risorse e mettersi chieta. Ma può anche continuare la sua elaborazione in background, in vero multitasking. Quando A torna in foreground viene richiamata onResume(), dove può riaprire le risorse che le servono se le aveva liberate.
Tutte le applicazioni rimangono aperte in background e continuano a funzionare e a elaborare dari sia in foreground che in stato "paused".
Quando un'applicazione in foreground ha bisogno di risorse (tipicamente RAM), Android inizia a uccidere le applicazioni in background (secondo un certo ordine), ma prima di ucciderle richiama onStop(), in cui l'applicazione DEVE liberare le risorse e salvare lo stato, se vuole ripristinarlo al riavvio. Quindi l'applicazione viene messa in freeze. Se viene riattivata poco dopo, Android chiama onRestart() e poi onStart(), in cui l'applicazione può ripristinare lo stato. Se invece le risorse liberate dalla onStop() non sono sufficienti per far fronte alle richieste dell'applicazione B, Android richiama onDestroy() su A, le dà 1/20esimo di secondo per fare le sue ultime volontà, e poi la uccide brutalmente. Se viene riattivata dall'utente, riprenderà da onStart (e NON da onResart()).
Quindi non è vero che tutti i cellulari funzionano come iPhone. Il multitasking di Android è esattamente identico a quello di Linux su desktop e server, solo con un supervisore che avvisa le applicazioni in vari modi prima di ucciderle o resuscitarle.
Ad iPhone mancano equivalenti per onPause() e onResume() e il vero multitasking.
Bye.
#32Paolo
Complimenti, Alex, analisi tecnica perfetta e precisa. Stavo per scrivere la stessa cosa, mi hai risparmiato una fatica. Tutte le informazioni le trovate sui blog ufficiali di Android e iOS.
#33FabrizioC
Che non era un multitasking nel senso desktop del termine era chiaro fin dalla sua presentazione.
In pratica ad essere eseguiti in multitasking sono alcuni servizi messi a disposizione del nuovo SDK e le applicazioni che vogliono farne uso devono implementarli.
#34ckiikc
faccio una domanda… non ci capisco niente. Avendo letto più o meno tutti i commenti – mi chiedo – ma come mai allora per i 3g niente multitasking?
#35Ricky74
Perchè secondo Steve jobs non serviva…
#36Andrea Gottardi
O meglio, perchè frigge effettivamente la batteria… Con il mio iPod touch 2G faccio fatica ad aprire iBooks.. Figurarsi a tenere applicazioni in background.. Se si considera poi che il 3G è uguale, in termini di hardware…
#37eema
perchè apple l'ha implementato in modo che le app che supportano il background quando le chiudi restano aperte in freeze…se vuoi chiuderle lo devi far manualmente… e avendo il 3g metà della ram questo è un problema perche dopo 3 app che visiti ti trovi con 3 app aperte e la ram piena (con ovvi rallentamenti del sistema)..
Apple ha dovuto scegliere se implementare questo multitasking dove non c'era bisogno di pensare quale app era aperta o no che però non andava bene per il 3g e un metodo piu classico ma con un task manager e l'utente che deve pensare quale chiudere e quale no…
Non so quale sia meglio.. ma di sicuro questo metodo del multitasking sul 3g è improponibile.. l'ho attivato tramite il jailbreak e ogni volta che visito 2 app devo ricordarmi di chiudere le precedenti epr non aver rallentamenti
#38b4rtman
Articolo azzeccatissimo. Mi sono trovato ad avere solamente tantissimi "alias" di applicazioni che in realtà erano chiuse. Praticamente di multitasking neanche l'ombra se non fra le app native. Io speravo di poter restare online su skype, con msn … o sulla chat di facebook.
Nisba.
#39ckiikc
@b4rtman: da quello che ho visto in giro nei video credo che sarà una scelta dei programmatori dell'applicazione se "congelare lo stato" oppure far continuare l'esecuzione.. tomtom continuava a girare in background..
ma poi, anche prima dell'ios4 l'app ipod continuava a suonare…
#40Carlo
dopo questa disinformazione annunncio che toglierò questo blog dai miei feed, ho perso 2 minuti a leggere questa …..
#41giopao
Ma secondo voi che Background è se l'app messa in background non può far nulla perché è congelata, quello che è avviene è una sospensione temporanea dello stato, il motivo sarà forse l'ottimizzazione della batteria ma è anche vero che se voglio che la batteria duri di più non metto tante applicazioni in back, però se mi serve tenere msn aperto mentre gioco vorrei farlo completamente anche a discapito della batteria, (insomma decido io)
IO NON HO L'IPHONE E SONO UN PATITO ANDROID – premessa
#42Paolo
Cmq è una vergogna. Ultimamente questo blog sta scadendo veramente. Io non sono un amante dell'Iphone, ma almeno mi informo e cerco di capire gli eventuali pro e contro.
Mi chiedo se i vostri blogger prima di scrivere un articolo fanno lo stesso.
Vergona. E pensare che fino a un anno fa era il mio blog preferito. Per fortuna che ne sono usciti altri e con una professionalità reale.
Smettete di far scrivere gente che di geek non ha niente. Non basta il giorno prima aver lavorato al MCDonalds e il giorno dopo aver preso in mano un Iphone per poter scrivere un articolo!!!
Dopo questo posso anche toglierlo dai preferiti…
#43giambo
quali sono gli altri blog geek italofoni, per favore?
#44Lorenzo
Fulvio sei una vergogna. Non dico altro.
#45Matteo
Gli sviluppatori fanno la dovuta modifica,
Mettono nell'app store le nuove versioni…CON NUOVI PREZZI!
La gente le compra x poter utilizzare il multitask
Guadagnano gli sviluppatori,
guadagna apple,
…TANTE PECORE CONTENTE!
#46Giovanni Lombi
Ragazzi una cosa è certa…
Che La apple il marketing lo sa fare bene (o meglio…è una delle poche cose…se non l'unica, fatta bene dalla Apple)…
Alex ha spiegato bene (e lo dico CONOSCENDO l'argomento) come funziona il multitasking dei vari terminali… e non ha sbagliato in niente…
Vedo tanta gente che dice "vergogna" a chi non si fa ammaliare dalla Apple… Ma prima di comprare come caproni forse fareste meglio ad informarvi bene su quello che può o non può fare il vostro amato iphone…
Se poi vi va bene un telefono che ha delle limitazioni oppure quelle limitazioni non vi toccano ok..perfetto…sono contento per voi…
Io ho un Diamond… Windows mobile… Tante tante tante cose che non vanno… ma per me funziona bene. Ho un telefono con delle limitazioni? SI, MA MI CI TROVO BENE…
Invece di rendervi ridicoli cercando di difendere un'azienda che vi considera solo automi sganciasoldi (e lo dimostra il FLASH solo per la pubblicità e il prezzo astronomico di terminali non di certo di oro) perchè per una volta non difendete solo e unicamente la VOSTRA scelta?
Se io compro un telefono che pesa un kg, non ha facebook MA mi affascina e fa quello che mi serve.. e a me va bene… dico: Ho un telefono di merda che a me va bene… oppure "a me piace"…
Il punto è che la maggior parte di coloro che hanno un iphone lo hanno perchè è diventato di moda… E la apple è mossa SOLO ED ESCLUSIVAMENTE dalla moda… Questo vi spiega perchp terminali così poco affidabili sono stati surclassati da Android, usato (insieme a win mobile) da tutte le aziende…
So che mi tirerò tante critiche… Ma se i blog che dicono qualcosa di negativo sulla apple non vi vanno bene statevene nella vostra ristrettezza mentale e sui forum che contemplano i mac… Fate un favore a chi si è rotto i maroni di ascoltarvi…
PS ho comprato un iphone 2g (venduto) e attualmente uso anche un macbook pro.. Non sono CONTRO APPLE…semplicemente la trovo mediocre….
Saluti!
#47@driver2000
quoto Giovanni Lombi e Alex.
Il "multitasking" dell' iOS 4 è solo una presa per i fondelli (come la videochiamata per il resto).
#48Marco
W il mio Nokia N900 MULTITASKING!!!!!!!!!!!!!! 😀
#49Frank
Scusate, una domanda……
io ho un Black Barry sul quale senza nessun problema ho sempre attivi MSN, ICQ, Yahoo, BBChat, Facebook e naturalmente varie caselle mail personali e di lavoro. Tutte queste applicazioni girano insieme senza nessun problema aperte o meno che siano…. non so se si congelano o che cz fanno ma funzionano in tempo reale senza bisogno di tenerle aperte a monitor. La batteria dura un casino. E' così difficile avere lo stesso sistema su un iphone?? qualcuno mi sa spiegare/illuminare?
#50roccordx
STRAQUOTO Hripper
io ho un nokia 6600 (FUNZIONANTISSIMO) acquistato
un nokia 5730 (che a breve butterò dalla finestra) acquistato 2a mano
un iphone 3gs aggiornato (più che telefono è una console) regalatomi
e nel nokia 6600 quando premi il tasto home, ti da un menu nascosto con le applicazioni aperte che, a differenza dell’iphone RIPRENDONO NEL PRECISO ISTANTE IN CUI SONO STATE “LASCIATE” oppure CONTINUANO A “LAVORARE”… e la batteria? 4 giorni utilizzandolo constantemente da ben 6 anni con processi di carica/scarica perfetti (mai caricato da acceso o a metà batteria).
l’iphone è stata una delusione… si ok “per ogni cosa c’è un app” (si vabbè lite o demo) però.. finisce li… la batteria? ogni sera una maledetta carica.. anche se uso solo gli sms (a volte mi ha abbandonato anche verso le 20).
Ok ho il wifi, mail, giochi, utility varie, tutte a portata di mano… ma mi è stato regalato.. quindi non mi lamento più di tanto… ma io personalmente non me lo sarei MAI comprato…
#51Luca
Qualcuno conosce una guida su come integrare il multitasking nell'APP?
#52buying zithromax online
azithromycin pfizer [url=https://zithromaxes.com/]zithromax order[/url] zithromax antibiotics
#53doctors for hydroxychloroquine
hydrocholorquine [url=https://hydroxychloroquinex.com/#]azathioprine[/url] hydroxycloroquine
#54StromLem
[url=https://stromectolgf.online/#]ivermectin 6[/url] ivermectin oral solution
#55MichealGlach
[url=https://diflucan.icu/#]diflucan otc[/url] can you buy diflucan over the counter in mexico
#56MichealGlach
[url=https://diflucan.icu/#]diflucan online no prescription[/url] diflucan drug coupon
#57MichealGlach
[url=https://gabapentin.icu/#]neurontin 300 mg pill[/url] canada neurontin 100mg discount
#58Robertonok
[url=https://stromectoltrust.com/#]ivermectin 1%cream[/url] stromectol
#59KeithGlove
[url=https://canadiandrugs.best/#]online prescription for ed meds[/url] ed meds online without doctor prescription
#60KeithGlove
[url=https://canadiandrugs.best/#]buy prescription drugs without doctor[/url] cvs prescription prices without insurance