Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


Smooth asynchronous user interfaces for iOS apps.

Subscribe to updates I use AsyncDisplayKit

Statistics on AsyncDisplayKit

Number of watchers on Github 12372
Number of open issues 12
Average time to close an issue 10 days
Main language Objective-C++
Average time to merge a PR 2 days
Open pull requests 1+
Closed pull requests 11+
Last commit almost 3 years ago
Repo Created over 6 years ago
Repo Last Updated over 2 years ago
Size 128 MB
Homepage http://asyncdispl...
Organization / Authorfacebookarchive
Latest Release2.2
Page Updated
Do you use AsyncDisplayKit? Leave a review!
View open issues (12)
View on github
Book a Mock Interview With Me (Silicon Valley Engineering Leader, 100s of interviews conducted)
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating AsyncDisplayKit for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

AsyncDisplayKit has been moved and renamed: Texture

Texture Logo

Learn more here


Apps Using Downloads

Platform Languages

Version Carthage compatible License


ASDK is available via CocoaPods or Carthage. See our Installation guide for instructions.

Performance Gains

AsyncDisplayKit's basic unit is the node. An ASDisplayNode is an abstraction over UIView, which in turn is an abstraction over CALayer. Unlike views, which can only be used on the main thread, nodes are thread-safe: you can instantiate and configure entire hierarchies of them in parallel on background threads.

To keep its user interface smooth and responsive, your app should render at 60 frames per second the gold standard on iOS. This means the main thread has one-sixtieth of a second to push each frame. That's 16 milliseconds to execute all layout and drawing code! And because of system overhead, your code usually has less than ten milliseconds to run before it causes a frame drop.

AsyncDisplayKit lets you move image decoding, text sizing and rendering, layout, and other expensive UI operations off the main thread, to keep the main thread available to respond to user interaction.

Advanced Developer Features

As the framework has grown, many features have been added that can save developers tons of time by eliminating common boilerplate style structures common in modern iOS apps. If you've ever dealt with cell reuse bugs, tried to performantly preload data for a page or scroll style interface or even just tried to keep your app from dropping too many frames you can benefit from integrating ASDK.

Learn More

Getting Help

We use Slack for real-time debugging, community updates, and general talk about ASDK. Signup yourself or email AsyncDisplayKit(at)gmail.com to get an invite.


We welcome any contributions. See the CONTRIBUTING file for how to get involved.


AsyncDisplayKit is BSD-licensed. We also provide an additional patent grant. The files in the /examples directory are licensed under a separate license as specified in each file; documentation is licensed CC-BY-4.0.

AsyncDisplayKit open issues Ask a question     (View All Issues)
  • over 3 years ASTableNode will shine when called reloadData
  • over 3 years Large empty space on github introduce screen
AsyncDisplayKit open pull requests (View All Pulls)
  • podspec
AsyncDisplayKit questions on Stackoverflow (View All Questions)
  • ComponentKit vs AsyncdisplayKit
  • How to layout parent of ASDisplayNode in AsyncDisplayKit?
  • AsyncDisplayKit / Texture: No visible @interface for 'ASDiplayNode' declares the selector 'nodeViewDidAddGestureRecognizer'
  • How to add section header/footer view when using AsyncDisplayKit?
  • AsyncDisplayKit ASTableNode cell don't appear
  • AsyncDisplayKit "Expected node associated with removed cell not to be nil" crash
  • MKSlidingTableViewCell not supports ASyncDisplayKit
  • AsyncDisplayKit AsViewController and swift 3
  • Re-layout ASTableView from AsyncDisplayKit after downloading images using ASNetworkImageNode
  • How can i display an image with animation using ASNetworkImageNode in AsyncDisplayKit?
  • How do I set the title on an AsyncDisplayKit ASButtonNode?
  • Detect Link or URL in ASTextNode AsyncDisplayKit
  • Simple Cell with AsyncDisplayKit Layout
  • How to create a frame for AsTableNode in AsyncDisplayKit?
  • AsyncDisplayKit Layout - how to enforce a maximum height (or width)
  • AsyncDisplayKit Video Device Rotation
  • Does ASOverlaySpec count as "wrapping" in AsyncDisplayKit
  • AsyncDisplayKit calculateLayoutThatFits() function works in 1 project, not in another
  • How to use scrollView functions with AsyncDisplayKit
  • Realm in AsyncDisplayKit causes Termination - realm::IncorrectThreadException
  • AsyncDisplayKit Image Display Blinks
  • AsyncDisplayKit ASButtonNode setTitle not work
  • AsyncDisplayKit - ASButton Size
  • SizeToFit AsyncDisplayKit
  • AsyncDisplayKit Error (Using ASDK as static Library)
  • App Crashes when i add UIImageView to ASCellNode from AsyncDisplayKit
  • AsyncDisplayKit CellNode setting highlighted color
  • AsyncDisplayKit invalidateCalculatedSize Swift not working
  • Add custom Button with AsyncDisplayKit
  • I'm having trouble adding AsyncDisplayKit to my Xcode project
AsyncDisplayKit list of languages used
AsyncDisplayKit latest release notes
2.2 2.2: Farewell, iOS 7!

This is primarily a bug fix release. Changes can be found here: https://github.com/facebook/AsyncDisplayKit/compare/2.1...2.2

Some highlights:

  • Removed support for iOS 7
  • Upgraded to latest PINRemoteImage (CocoaPods), fixing GIFs: #3057
  • Added an assert to prevent dealloc while visible bugs: #3062
  • Added callback for non-fatal error reporting: #2993
  • Added scrollDirection property on ASScrollNode: #3001
  • Fixed some ASPagerNode issues: #3028
2.1 2.1: Declarative Collections (IGListKit Support)

2.1 add support for IGListKit and has a few bug fixes as well https://github.com/facebook/AsyncDisplayKit/compare/2.0.2...2.1

Some highlights:

  • IGListKitSupport #2942
  • Refactored layout #2892 and #2920
  • Refactored and simplified ASDataController #2923
  • Disabled background allocations on iOS 8. This was causing crashes for accessibility users #2954
  • Fixed an issue with deleting sections #2962
2.0.2 2.0.2

This is primarily a bug fix release. Changes can be found here: https://github.com/facebook/AsyncDisplayKit/compare/2.0.1...2.0.2

Some highlights:

  • Added an efficient, alternative to the UIImage imageNamed: method #2859
  • Removed locking while calling into image downloader #2864
  • Fixed an issue where objects released by the ASRunLoopQueue might not be fully released: #2890
  • Respect hitTestSlop in ASControlNode #2896
  • Improved scroll performance #2861
  • Fixed an issue where ASVideoNode's wouldn't autoplay in certain network conditions #2876
Other projects in Objective-C++
Powered by Autocode - Instant Webhooks, Scripts and APIs
Autocode logo wordmark