Smooth asynchronous user interfaces for iOS apps.
Objective-C Objective-C++ Swift Shell C Ruby
Latest commit 1951954 Aug 20, 2016 @Yue-Wang-Google Yue-Wang-Google committed with Adlai-Holler remove non unicode char (#2109)
see #2108
Failed to load latest commit information.
Image .github Update GITHUB_RULES.md Jul 11, 2016
Image AsyncDisplayKit-iOS [Xcode Project] Add new file to the framework target. Update to recom… Mar 9, 2016
Image AsyncDisplayKit.xcodeproj Remove numberOfSectionsForSupplementaryNodeOfKind: Method (#2102) Aug 19, 2016
Image AsyncDisplayKit.xcworkspace disable autocreate schemes Mar 17, 2016
Image AsyncDisplayKit remove non unicode char (#2109) Aug 20, 2016
Image AsyncDisplayKitTestHost Clean up header comments (for consistent Facebook licensing info) (#1741 Jun 12, 2016
Image AsyncDisplayKitTests Remove numberOfSectionsForSupplementaryNodeOfKind: Method (#2102) Aug 19, 2016
Image Base Prevent API misuse at compile time (#2035) Aug 5, 2016
Image examples [Layout Transition] Add default fade in / out layout transition (#2052) Aug 14, 2016
Image examples_extra Merge pull request #1892 from rcancro/finalLayoutableSetChildren Jul 11, 2016
Image plans/section-infos-api [Architecture] Add plans for new Section Info Objects (#2067) Aug 16, 2016
Image smoke-tests * Tidy the header imports, forward declaring classes and protocols wh… Jul 7, 2016
Image .editorconfig Add .editorconfig Apr 29, 2016
Image .gitignore Update .gitignore Jul 11, 2016
Image .slather.yml [.slather.yml] Add newline to end of file Apr 21, 2015
Image .travis.yml [Travis CI] Build Optimizations (#1743) Jun 21, 2016
Image AsyncDisplayKit.podspec [Cocoapods] Update PINCache dependency to include performance improve… Aug 3, 2016
Image CONTRIBUTING.md Update CONTRIBUTING.md Jul 24, 2016
Image Cartfile [Carthage] Add cartfile, update Carthage example (#1796) Jun 22, 2016
Image Default-568h@2x.png Add files via upload Jul 11, 2016
Image Gemfile Generate coverage stats using slather/Coveralls Apr 21, 2015
Image LICENSE Update Copyright License. Feb 9, 2016
Image PATENTS New patent grant. Apr 10, 2015
Image Podfile Update FBSnapshotTestCase and generate @3x images Jun 8, 2016
Image README.md Update README.md Jul 24, 2016
Image build.sh Because Pods and the Podfile.lock are not checked in, they should be … ( Aug 3, 2016
Image inferScript.sh [Infer] Fix Infer errors/warnings (#1938) Jul 16, 2016

README.md

AsyncDisplayKit

Apps Using Downloads

Platform Languages

Version Carthage compatible Build Status License

Installation

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 youself or email AsyncDisplayKit(at)gmail.com to get an invite.

Contributing

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

License

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.