A data-driven UICollectionView framework for building fast and flexible lists
IGListKit
A data-driven UICollectionView framework for building fast and flexible lists.
Main Features | |
---|---|
? | Never call performBatchUpdates(_:, completion:) or reloadData() again |
? | Better architecture with reusable cells and components |
? | Create collections with multiple data types |
? | Decoupled diffing algorithm |
✅ | Fully unit tested |
? | Customize your diffing behavior for your models |
? | Simply UICollectionView at its core |
? | Extendable API |
? | Written in Objective-C with full Swift interop support |
IGListKit
is built and maintained with ❤️ by Instagram engineering.
We use the open source version master
branch in the Instagram app.
Requirements
- Xcode 9.0+
- iOS 8.0+
- tvOS 9.0+
- macOS 10.11+ (diffing algorithm components only)
- Interoperability with Swift 3.0+
Installation
CocoaPods
The preferred installation method is with CocoaPods. Add the following to your Podfile
:
pod 'IGListKit', '~> 3.0'
Carthage
For Carthage, add the following to your Cartfile
:
github "Instagram/IGListKit" ~> 3.0
For advanced usage, see our Installation Guide.
Getting Started
$ git clone https://github.com/Instagram/IGListKit.git
$ cd IGListKit/
$ ./scripts/setup.sh