The last couple of days I've been working with Texture (AsyncDisplayKit), it's a cool framework that basically makes your app run more efficiently. It's all about the performance gains. Texture works with nodes which are thread-safe. Unlike views, which can only be used on the main thread. Today I will show you how you can create a really efficient tableView with Texture, and you'll clearly see the performance gains from it. Since Texture keeps expensive UI operations off the main thread it is available to respond to user interactions at any given time.
Below you can see the difference between the two:


Installation
To install it you can just use CocoaPods: Or Carthage:Usage
First, let's import the dependency: After that we will create the class itself: There are a few big changes here that probably going to need some explanation:- Instead of creating a UIViewController class we will create an ASViewController class which is a subclass of UIViewController. It does a few things automatically for you like if the view controller goes off screen it will automatically reduce the size of the fetch data and display ranges of any of its children.
- A UITableView doesn't exist anymore, we will use an ASTableNode which uses ASTableDataSource and ASTableDelegate. They are very similar to UITableViewDataSource and UITableViewDelegate.
- Instead of an UIImageView we will use an ASImageNode and instead of an UITextField we will use an ASTextNode.
- Instead of addSubview we will use addSubnode.