Chiudi l'annuncio

Già all'inizio dell'anno i rappresentanti di Apple hanno affermato, che il nuovo iOS 12 punterà principalmente sull'ottimizzazione e per qualche novità più fondamentale bisognerà attendere il prossimo anno. Più o meno lo stesso è stato detto al keynote di lunedì, durante la sezione su iOS 12. Sì, alcune novità appariranno effettivamente nella prossima iterazione di iOS, ma il ruolo principale sarà giocato dall'ottimizzazione, che soddisferà soprattutto i possessori di macchine più vecchie ( su come iOS 12 ha dato vita al mio (potrete leggere l'iPad Air di prima generazione già questo fine settimana). Ieri, nell'ambito del programma WWDC, si è tenuta una conferenza in cui è stato spiegato in modo più dettagliato cosa ha fatto Apple per rendere il nuovo sistema notevolmente più veloce.

Se sei davvero interessato a questo argomento e vuoi sapere come funzionano nella pratica alcuni elementi di iOS, ti consiglio di guardare la registrazione della lezione. Dura circa 40 minuti ed è disponibile sul sito ufficiale di Apple con il titolo Sessione 202: Novità in Cocoa Touch. Se non vuoi perdere tre quarti d'ora guardando la registrazione del convegno, puoi leggere una trascrizione più sintetica qui, tuttavia, è un po' tecnico. Per il resto di voi, proverò a riassumere in modo semplificato di seguito.

Guarda le immagini della presentazione di iOS 12:

Con iOS 12 Apple ha deciso di concentrarsi sull'ottimizzazione, poiché molti utenti si sono lamentati del debug (soprattutto in relazione a iOS 11). La stragrande maggioranza delle reazioni negative riguardava una sorta di "lentezza", "blocco" e "non fluidità" del sistema e delle sue animazioni. I programmatori di Apple sono quindi andati fino alle basi e hanno superato l'intero sistema di animazione di iOS. Questo sforzo consisteva principalmente in tre importanti modifiche che fanno funzionare iOS 12 come funziona. I programmatori sono riusciti a scoprire i difetti presenti in iOS a partire da iOS 7.

1. Preparazione dei dati

La prima modifica è l'ottimizzazione della cosiddetta Cell Pre-fetch API, che si occupava semplicemente di una sorta di preparazione dei dati prima che il sistema ne avesse effettivamente bisogno. Che si trattasse di immagini, animazioni o altri dati, il sistema doveva pre-riprodurre i file necessari in memoria con questa API in modo che fossero disponibili quando venivano utilizzati e quindi non si verificassero sbalzi di carico del processore, che avrebbero causato i problemi di fluidità sopra menzionati. Come si è scoperto durante un controllo approfondito di questo algoritmo, non ha funzionato del tutto correttamente.

In alcuni casi ha preparato i dati in anticipo, in altri no. In altri casi il sistema caricava i dati anche se erano già preparati nella cache di questa API, e talvolta si verificava una sorta di "doppio caricamento". Tutto ciò ha causato cali di FPS durante le animazioni, tagli e altre incoerenze nel funzionamento del sistema.

2. Prestazioni istantanee

Il secondo cambiamento riguarda la modifica della gestione energetica delle unità di calcolo del dispositivo, siano esse CPU o GPU. Nelle versioni precedenti del sistema, il processore impiegava molto più tempo per notare un aumento delle richieste di attività e quindi aumentare le sue frequenze operative. Inoltre, questa accelerazione/decelerazione del processore è avvenuta gradualmente, quindi in molti casi è successo che il sistema avesse bisogno di potenza per qualche attività, ma non era immediatamente disponibile, e si sono verificati nuovamente cali nelle animazioni FPS, ecc. Questo cambia in iOS 12, perché qui la curva di prestazione dei processori è stata regolata in modo decisamente più aggressivo e il graduale aumento/diminuzione delle frequenze è ora immediato. La prestazione dovrebbe quindi essere disponibile nei momenti in cui è necessaria.

3. Layout automatico più perfetto

La terza modifica riguarda l'interfaccia che Apple ha introdotto in iOS 8. Si tratta del cosiddetto framework Auto-layout, che è entrato in iOS nel momento in cui Apple ha iniziato ad aumentare le dimensioni dei display dei suoi iPhone. Il framework si assicurava che l'aspetto dell'interfaccia utente fosse corretto indipendentemente dal tipo e dalle dimensioni del display su cui venivano visualizzati i dati. Si tratta di una sorta di stampella che aiuta gli sviluppatori a ottimizzare le loro applicazioni (ma non solo, questo framework è parte integrante del sistema iOS in quanto tale e si occupa della corretta visualizzazione di tutte le parti dell'interfaccia utente) per diverse dimensioni di display. Inoltre, l’intero sistema è in gran parte automatizzato. Dopo un esame approfondito, si è scoperto che il suo funzionamento è piuttosto impegnativo per le risorse di sistema e che l'impatto maggiore sulle prestazioni è apparso in iOS 11. In iOS 12, lo strumento sopra menzionato ha ricevuto una riprogettazione e un'ottimizzazione significative e, nella sua forma attuale, il suo l'impatto sul funzionamento del sistema è notevolmente inferiore, il che libera in gran parte risorse nella CPU/GPU per le esigenze di altre applicazioni e strumenti.

Come puoi vedere, Apple ha davvero portato i processi di ottimizzazione al culmine e questo si vede davvero nel prodotto finale. Se hai iPhone o iPad dell'anno scorso, non aspettarti troppi cambiamenti. Ma se possiedi un dispositivo di due, tre, quattro anni, il cambiamento sarà sicuramente più che evidente. Anche se iOS 12 è attualmente nelle sue fasi iniziali, funziona già molto meglio di qualsiasi versione di iOS 1 sul mio iPad Air di prima generazione.

.