Study how Facebook solved main-thread overload in iOS apps with a background-thread-safe node abstraction
Migrate legacy AsyncDisplayKit code to the actively maintained Texture library using the README redirect
Understand the pattern of decoupling image decoding and text layout from the main thread in iOS
Reference the original BSD-licensed source for thread-safe iOS UI patterns before moving to Texture
This repository is archived, active development moved to the Texture repository under the TextureGroup GitHub organization.
AsyncDisplayKit was a framework for building smooth, responsive user interfaces in iOS apps. It was created by Facebook to solve a common problem: on a phone, all drawing and layout work typically runs on a single thread called the main thread, which is also responsible for responding to every tap and scroll. If the app tries to do too much on that thread at once, the screen stutters and frames get dropped, which makes the app feel slow or unresponsive. The library's core idea was to move expensive UI operations, such as decoding images, measuring text, and laying out views, off the main thread so they could happen in the background. It introduced a concept called "nodes," which are thread-safe versions of the standard iOS view building blocks. Because nodes could be created and configured on background threads, the main thread stayed free to handle user interaction and keep animations running at a smooth 60 frames per second. The framework also addressed practical annoyances in iOS development, such as bugs that arise when reusing table or collection view cells, and the complexity of preloading data before a user scrolls to it. It was used in production in apps including Facebook, Pinterest, and others that needed to handle large amounts of dynamic content. This repository is now archived. The project was renamed to Texture and moved to a new home under the TextureGroup organization on GitHub. The README here redirects visitors to that new location. If you are looking for the actively maintained version of this code, the Texture repository is where development continued after Facebook transferred ownership. The original code was BSD-licensed.
← facebookarchive on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.