Smooth asynchronous user interfaces for iOS apps.
Objective-C Objective-C++ Swift Shell Python Ruby
Permalink
Failed to load latest commit information.
.github Add the slack channel to the issue template. (#2690) Dec 1, 2016
AsyncDisplayKit-iOS [Xcode Project] Add new file to the framework target. Update to recom… Mar 9, 2016
AsyncDisplayKit.xcodeproj [ASStackLayoutSpec] Refactor baseline alignment algorithm (#2892) Jan 18, 2017
AsyncDisplayKit.xcworkspace disable autocreate schemes Mar 17, 2016
AsyncDisplayKit [ASTableNode/ASCollectionNode] Inversion (#2891) Jan 20, 2017
AsyncDisplayKitTestHost Clean up header comments (for consistent Facebook licensing info) (#1741 Jun 12, 2016
AsyncDisplayKitTests [ASStackLayoutSpec] Refactor baseline alignment algorithm (#2892) Jan 18, 2017
Base Minor Collection Simplifications (#2906) Jan 19, 2017
buck-files Support Buck build (#2849) Jan 4, 2017
examples [ASTableNode/ASCollectionNode] Inversion (#2891) Jan 20, 2017
examples_extra Fixed Carthage build error (#2761) Dec 18, 2016
plans/section-infos-api Introduce ASSectionContext and ASSection (#2178) Oct 1, 2016
smoke-tests another deprecation warning (#2571) Nov 9, 2016
.buckconfig Support Buck build (#2849) Jan 4, 2017
.buckversion Buck: use snapshot_reference_images_path instead of copying images to… Jan 20, 2017
.editorconfig Add .editorconfig Apr 29, 2016
.gitignore Support Buck build (#2849) Jan 4, 2017
.slather.yml [.slather.yml] Add newline to end of file Apr 21, 2015
.travis.yml [Build] Update build script to use iOS 10.1 (Xcode 8.1). Nov 8, 2016
AsyncDisplayKit.podspec Support Buck build (#2849) Jan 4, 2017
BUCK Buck: use snapshot_reference_images_path instead of copying images to… Jan 20, 2017
CONTRIBUTING.md Update CONTRIBUTING.md Jul 24, 2016
Cartfile Fix Carthage build (#2567) Nov 7, 2016
Default-568h@2x.png Add files via upload Jul 11, 2016
Gemfile Generate coverage stats using slather/Coveralls Apr 21, 2015
LICENSE Update Copyright License. Feb 9, 2016
PATENTS New patent grant. Apr 10, 2015
Podfile Remove Buck abstract target in Podfile (#2878) Jan 9, 2017
README.md Update CocoaPod badges to be dynamic. (#2886) Jan 11, 2017
build.sh Print out cocoapods environment to help with #2881 (#2882) Jan 9, 2017
inferScript.sh [Infer] Fix Infer errors/warnings (#1938) Jul 16, 2016

README.md

AsyncDisplayKit

Apps Using Downloads

Platform Languages

Version Carthage compatible 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 yourself 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.