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

GitHub