Se avete installato la prima beta di iOS 12, potreste aver notato animazioni più fluide rispetto alle precedenti versioni. Ciò è possibile grazie a modifiche studiate da Apple per il nuovo sistema operativo.

Come spiegato durante la sessione “What’s New in Cocoa Touch” alla WWDC18, gli ingegneri Apple hanno colto l’occasione con iOS 12 per risolvere i problemi d’animazioni del sistema operativo. Le cause di cali di frame sono state scoperte dagli ingegneri durante l’analisi di app definite first-party, con Josh Shaffer nel ruolo di supervisore.

Un primo problema identificato è quello riguardante la gestione di iOS di dati che necessitano di essere realizzati mentre l’utente naviga nel sistema, come oggetti in una lista di opzioni in un menu. Un API introdotta con iOS 10 e chiamata Cell Pre-fetch aveva il compito di risolvere questo problema precaricando i dati in background prima del tempo, in modo che i contenuti apparissero su schermo senza ritardi o problemi simili.

Nonostante tale API funzionasse bene, Apple ha scoperto una persistente perdita di frame durante lo scrolling, causata proprio dal precaricamento di dati apparsi nell’immediato sul display. La CPU doveva quindi gestire non solo i dati caricati, ma anche quelli in precaricamento. Apple ha quindi aggiornato l’API pre-fetch per far sì che ciò non si verifichi ancora, dando la priorità assoluta al rendering immediatamente più importante e accodando il resto dei dati.

Un secondo e più grave problema riguarda invece il calo di frame in momenti in cui i dati da gestire erano relativamente pochi. Momenti in cui la CPU non era in sovraccarico e poteva lavorare ad una velocità inferiore per preservare la durata della batteria. Apple ha infatti scoperto che la CPU non reagiva immediatamente ad un lavoro extra con un incremento della velocità di clock, causando quindi un collo di bottiglia.

In iOS 12, la CPU risponderà molto rapidamente in queste situazioni, e incrementerà la velocità di clock in modo appropriato per svolgere un compito ad un rate maggiore. Una volta completato, la CPU ridurrà nel minor tempo possibile la velocità di clock.

Apple ha poi aggiornato il suo framework Auto-layout, che permette agli sviluppatori di definire il posizionamento del contenuto di un’app sugli schermi di varie dimensioni. Il framework in iOS 12 consumerà meno risorse rispetto alle precedenti versioni.

In aggiunta, Shaffer ha supervisionato una nuova tecnica che consente ad iOS 12 di ridurre il quantitativo di memoria che un’app richiede per completare un compito. Questa prende il nome di Auotmatic Backing Stores.

Insomma, Apple ha dichiarato di aver lavorato per migliorare notevolmente le prestazioni con iOS 12, e le novità di certo non mancano. Nelle prima beta le novità si notano, nonostante i tipici bug di tali versioni per sviluppatori.