Uno dei principi dello sviluppo di iOS è che tutte le azioni che riguardano le user interface siano eseguite solo sul Main Thread. Questo permette a tutte le applicazioni di essere “smooth” con la gioia degli utenti, a differenza di Android che non relega la UI al main thread causando spesso rallentamenti dell’interfaccia.
Per gli sviluppatori, però, non sempre è semplice gestire l’interfaccia utente sul main thread, specialmente quando si lavora con interfacce dinamiche e con informazioni asincrone prese dal web.
Il team di sviluppo di Facebook si è trovato di fronte a questo problema e non è rimasto senza far nulla: ha sviluppato la libreria AsyncDisplayKit che permette una gestione delle user interface e delle chiamate web migliore e semplificata.
Usarlo non è semplicissimo e si devono introdurre diversi concetti, se questo non vi spaventa una guida iniziale è disponibile a questo indirizzo.
Il team di Ray Wenderlich ha inoltre realizzato un tutorial che spiega come sfruttare questa potente libreria nelle collection view, se volete approfondire lo trovate qui.











2 Responses to “AsyncDisplayKit: libreria per creare interfacce asincrone”
13 Gennaio 2015
NilCiao Francesco, mi sa che hai le idee un po confuse:
“Uno dei principi dello sviluppo di iOS è che tutte le azioni che riguardano le user interface siano eseguite solo sul Main Thread. Questo permette a tutte le applicazioni di essere “smooth” con la gioia degli utenti, a differenza di Android che non relega la UI al main thread causando spesso rallentamenti dell’interfaccia.”
Facebook ha sviluppato questa libreria proprio perché renderizzare una UI complessa sul main queue rallentava l’app! Specialmente lo scrolling (vedi UICollectionView e UITableView). Sicuramente ti sarai sbagliato scrivendo, è esattamente al contrario di come è scritto nell’articolo.
23 Gennaio 2015
Francesco NovelliCiao,
Apple insegna ed impone di eseguire le operazioni di UI nel Main Thread.
Cito la documentazione:
“tasks that contribute to setting up the user interface should be performed on the main thread”
Lo scopo della libreria, infatti, come giustamente dici te è quello di non gestire direttamente sul main la UI, senza però contravvenire ai buoni principi delle linee guida.