Fino a qualche anno fa gli iPhone erano sinonimo di fluidità. Android peccava molto in termini di efficienza e ottimizzazione, Windows Phone non faceva molta paura in termini di diffusione sul mercato, e iOS con il suo scheumorfismo era di gran lunga il sistema operativo più fluido e facile da gestire. Poi è arrivato iOS 7 con le sue trasparenze e qualcosa è cambiato, soprattutto sugli iPad più vecchi e le versioni “Plus” dello smartphone della Mela con risoluzioni video più elevate.
Quello della fluidità è diventato un problema anche per Apple, ma pare che la società voglia correggere il tiro su iOS 10. La novità è di quelle che non sono state annunciate e che non si vedono, ma che possono consegnare senza dubbio un’esperienza d’utilizzo migliore sia nelle app native, che in quelle di terze parti. La maggiore fluidità sarà dovuta principalmente ad una modifica nella gestione del caricamento delle informazioni presenti nelle pagine: invece di essere caricate poco prima di comparire sulla schermata, quindi durante lo scroll, le nuove API presenti su iOS 10 le recupereranno prima in modo da non pesare sulle capacità hardware del dispositivo quando servono per altro.
Se si effettua uno scroll su alcuni tipi di app che hanno molti elementi su un’unica pagina, è possibile che l’animazione di scorrimento non sia fluida come ci si aspetta da un dispositivo di questa generazione. Il fenomeno dei “frame drop” è la consuetudine sui dispositivi più vecchi e rende l’esperienza d’utilizzo meno appagante. E Apple ne è al corrente. Durante una sessione della WWDC i tecnici della società hanno ammesso che questo avviene perché l’app solitamente carica i nuovi contenuti un istante prima che compaiano sullo schermo.
Con iOS 10 il caricamento avverrà prima dell’inizio dello scroll, in modo tale che le performance di scorrimento siano migliorate e i tempi di caricamento dell’applicazione rimangano inalterati. L’ideale su mobile è avere 60fps costanti durante lo scrolling, ma con le precedenti versioni del sistema operativo il traguardo veniva spesso mancato. Caricando le informazioni prima (l’operazione si chiama prefetching) Apple assicura che le applicazioni siano in grado di mantenersi su valori ben al di sopra dei 60fps in qualsiasi circostanza.
Il processo di prefetching funziona anche in maniera inversa: dopo aver effettuato lo scroll, se vogliamo tornare sopra perché abbiamo perso un’informazione interessante possiamo farlo senza compromettere la granitica fluidità tipica dei 60 fps. Apple ha inoltre modificato il modo in cui le applicazioni accedono ai dati: le nuove API consentono il caricamento asincrono delle informazioni, come avveniva anche prima del resto, ma le nuove call sono più veloci. Le informazioni vengono caricate in background con una priorità inferiore rispetto alle operazioni principali e si adattano in maniera adattiva alle richieste hardware necessarie per effettuare lo scrolling.
Va inoltre considerato che queste novità sono del tutto automatiche: gli sviluppatori non dovranno scrivere una singola riga di codice per abilitare la nuova gestione dello scrolling, ma solo compilare le app per iOS 10 e tutte le novità verranno applicate sul back-end delle API già esistenti. Se lo sviluppatore non vuole sfruttare le novità può comunque farlo in maniera molto semplice. Le premesse sono indubbiamente molto interessanti e vedremo se Apple riuscirà davvero a dare nuova linfa ai dispositivi meno recenti con ulteriori ottimizzazioni lato software.