Le web app di iOS 5 a piena velocità grazie a Nitro

La prossima versione di iOS 5, attesa in autunno, migliorerà la velocità nel caricamento delle web app. Il passo in avanti si deve all'integrazione con il motore di JavaScript Nitro di Safari.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

Con iOS 5 anche le cosiddette web app godranno dei miglioramenti prestazionali del motore JavaScript Nitro di Safari Mobile. Ricordiamo che posizionando l'icona di una pagina web preposta a essere una web app (per esempio Google Docs) sulla schermata principale dell'iPad o dell'iPhone si crea un'app capace di aprirsi a schermo intero, in modo simile alle applicazioni tradizionali scaricate dallo store.

A marzo alcuni studi, seguiti da una dichiarazione della stessa Apple, hanno confermato che il "web viewer" integrato in iOS 4.3 (e successivi) non offre le ottimizzazioni integrate nel browser Safari (Apple conferma, per le web app su iOS niente Nitro). In questo modo, avviando un sito direttamente da Safari o tramite il collegamento nella homescreen, si possono notare tempi di esecuzione che sono fino a due volte e mezzo più lenti rispetto alla classica navigazione di Safari.

Con la nuova versione di iOS5, anticipata alla recente WWDC, Apple rimedierà a questa situazione, permettendo alle web app sull'homescreen di godere di prestazioni identiche a quelle avviate nel browser. Il tutto nasce dal fatto che le web app lavorano su un processo separato chiamato Web.app, che finora non poteva avvantaggiarsi delle migliorie prestazionali di Nitro. 

Quando è stata scoperta questa disparità di prestazioni, si speculò sul fatto che Apple volesse far apparire le web app peggiori di quelle native, favorendo il passaggio attraverso il proprio store. Le discussioni si concentrarono poi sul modello di sicurezza di iOS, che richiedeva che il codice eseguibile fosse firmato digitalmente dallo sviluppatore e verificato da Apple.

"Su iPhone, il modo in cui funziona la firma del codice richiede l'esecuzione di pagine nella memoria che derivano da applicazioni firmate. Un'applicazione non può realizzare una pagina eseguibile scrivibile. Tuttavia, per JIT, questo è esattamente ciò che vorreste fare", ha dichiarato Charlie Miller, esperto di sicurezza di iOS ad ArsTechnica.

###old843###old

Per permettere la compilazione attraverso Nitro, Apple ha fatto un'eccezione. Safari ha un permesso speciale per generare codice dinamicamente all'interno di memoria protetta e quel codice può essere eseguito dalla CPU del dispositivo. In iOS 4.3 e le versioni successive fino a oggi, Web.app non possiede lo stesso permesso. Con iOS 5 invece sì, e così le web app che avete salvato come icone sulla vostra homescreen funzioneranno alla stessa velocità raggiungibile con l'esecuzione all'interno di Safari Mobile. 

Arstechnica segnala però che le applicazioni di terze parti che caricano pagine in un "Webkit view" non potranno ancora avvantaggiarsi di Nitro. Il tutto per un problema di sicurezza che potrebbe riguardare il furto di dati.

"Penso che il motivo per cui Apple non abbia permesso l'iniezione di codice dinamico in applicazioni di terze parti è che impedisce a Nitro di funzionare. Inoltre permette a qualunque meccanismo di code injection di agire. È pericoloso, soprattutto se il codice generato è il risultato di un'analisi non sicura di un input proveniente da un provider sconosciuto su Internet", ha dichiarato Graham Lee, ricercatore di sicurezza per app iOS.