L’update a iOS 8 ha creato qualche grattacapo agli utenti con poco spazio libero sui dispositivi, impedendo a molti di eseguire l’aggiornamento diretto da iPhone e iPad, costringendo in molti casi a eseguire l’update da iTunes. Gli update a iOS 9 richiederanno molto meno spazio libero (oltre il 70% in meno rispetto a prima) facilitando dunque l’adozione da parte degli utenti che non hanno aggiornato ai sistemi più recenti per mancanza di spazio sui device.
Apple è riuscita a compiere sforzi notevoli nell’ottimizzazione delle app, nei requisiti per lo storage e il “peso” nella fase di download. Il segreto è l’uso di una tecnologia denominata “App Thinning” e tre tecniche denominate “App Slicing”, “On Demand Resources” e “Bitcode”. Attualmente le app iOS richiedono il raggruppamento di una vasta serie di elementi in un bundle affinché possano essere eseguite su più dispositivi. L’App Slicing consente alle app di sfruttare i soli asset necessari al particolare dispositivo dell’utente, permettendo all’App Store di selezionare in automatico gli asset da distribuire in bundle con l’app.
Alcune risorse richieste dalle app non sempre sono disponibili, l’On Demand Resources (ODR), offre la possibilità di saltare elementi superflui come ad esempio i tutorial introduttivi dai server Apple permettendo di scaricarli solo quando eventualmente richiesto. Il vantaggio è ovviamente un download più leggero rispetto a quello che includerebbe di serie tutorial e altri elementi che poi magari l’utente non visualizza nemmeno.
L’ultima tecnologia sfruttata da Apple è Bitcode, un meccanismo intermedio di rappresentazione nella compilazione LLVM sfruttata da Apple. Quando uno sviluppatore invia un’app all’App Store per le verifiche, Bitcode analizza automaticamente il codice assicurandosi che questa sia ottimizzata per eventuali update, una sorta di “prova” in anticipo che rende superfluo il rinvio dell’app per le verifiche. Tutte le app watchOS devono sfruttare Bitcode e quelle per iOS devono essere impostate con Bitcode al momento attivo per default; in futuro anche per le app iOS sarà obbligatorio sfruttare il Bitcode. Apple ha aggiornato alcune librerie di sistema con l’encoder/decoder proprietario LZFSE, più veloce di ZLIB e che promette risultati migliori rispetto a LZ4 o LZMA.