Skip to content
Smooth asynchronous user interfaces for iOS apps.
Objective-C++ Objective-C Swift Ruby Shell C
Branch: master
Clone or download

Latest commit

jparise Add `nullable` to new ASCommonTableViewDelegate methods (#1796)
These were recently introduced in #1795 but were missing `nullable`
annotations on their return types.

Also, reorder the declarations to match `UITableView.h`.
Latest commit 65a65a6 Apr 2, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Lint podspec on all pull requests (#1758) Jan 3, 2020
AsyncDisplayKit.xcodeproj Link to IGListDiffKit in our IGListKit subspec (#1756) Jan 3, 2020
AsyncDisplayKit.xcworkspace Check in Xcode 9.3 "workspace checks" file (#868) Apr 4, 2018
CI BuildKite to ignore all markdown files (#517) Aug 17, 2017
InstrumentsTemplates Improve System Trace Implementation #trivial (#368) Jun 19, 2017
Schemas Pruning ASExperimentalRemoveTextKitInitialisingLock code. (#1766) Jan 28, 2020
Source Add `nullable` to new ASCommonTableViewDelegate methods (#1796) Apr 2, 2020
SubspecWorkspaces/ASDKListKit [License] Simplify the Texture license to be pure Apache 2 (removing … Aug 28, 2018
Tests Pruning ASExperimentalRemoveTextKitInitialisingLock code. (#1766) Jan 28, 2020
docs [Docs] minor fixes in `Layout` (#1735) Dec 5, 2019
examples Fix typo in examples/README.md (#1759) Jan 6, 2020
examples_extra modify examples_extra/Shop swift 4.2 Version (#1709) Oct 23, 2019
plans/LayoutDebugger Layout debugger proposal (#52) Apr 22, 2017
smoke-tests Upgrade Xcode and Cocoapods (#1552) Jun 13, 2019
.clang-format Add clang-format for a common source code format (#1365) Mar 16, 2019
.editorconfig Add .editorconfig Apr 29, 2016
.github_changelog_generator Cut version 2.8.1 (#1491) May 6, 2019
.gitignore Remove BUCK support (#1632) Aug 22, 2019
CHANGELOG.md Minor update in change log #changelog (#1492) May 6, 2019
CONTRIBUTING.md Update CONTRIBUTING.md (#1574) Jul 10, 2019
Cartfile Don't return non-animated GIFs for animation (update to latest PINRem… Feb 21, 2019
Cartfile.resolved Update .gitignore file to include Carthage's artifacts (#1581) Jul 29, 2019
Dangerfile [GitHub CI] Revert back to Ruby Danger as Danger JS is not working pr… Aug 31, 2019
Gemfile Add danger-slack Apr 26, 2017
LICENSE [License] Simplify the Texture license to be pure Apache 2 (removing … Aug 28, 2018
Podfile Remove BUCK support (#1632) Aug 22, 2019
Podfile.lock Experiment with different strategies for image downloader priority (#… Mar 8, 2019
README.md Fix wrongly formatted RELEASE link (#1453) Apr 15, 2019
RELEASE.md Cut version 2.8 #changelog (#1340) Feb 14, 2019
Texture.podspec Link to IGListDiffKit in our IGListKit subspec (#1756) Jan 3, 2020
build.sh Lint podspec on all pull requests (#1758) Jan 3, 2020
format Add clang-format for a common source code format (#1365) Mar 16, 2019

README.md

Coming from AsyncDisplayKit? Learn more here

Texture

Apps Using Downloads

Platform Languages

Version Carthage compatible License

Installation

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

Performance Gains

Texture'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.

Texture 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 Texture.

Learn More

Getting Help

We use Slack for real-time debugging, community updates, and general talk about Texture. Signup yourself or email textureframework@gmail.com to get an invite.

Release process

For the release process see the RELEASE file.

Contributing

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

License

The Texture project is available for free use, as described by the LICENSE (Apache 2.0).

You can’t perform that action at this time.