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 8.0+
- iOS 8.0+
- tvOS 9.0+
- macOS 10.10+ (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', '~> 2.0.0'

### Carthage

For Carthage, add the following to your `Cartfile`:

    github "Instagram/IGListKit" ~> 2.0.0

> For advanced usage, see our Installation Guide.

## Getting Started

- Our Getting Started guide
- Ray Wenderlich’s IGListKit Tutorial: Better UICollectionViews
- Ryan Nystrom’s talk at try! Swift NYC

## Documentation

You can find the docs here. Documentation is generated with jazzy and hosted on GitHub-Pages.

## Contributing

Please see the CONTRIBUTING file for how to help out. At Instagram we sync the open source version of `IGListKit` daily, so we’re always testing the latest changes. But that requires all changes be thoroughly tested and follow our style guide.

## License

`IGListKit` 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.

© 2017 Instagram. All rights reserved. (Last updated: 2017-01-04)

Generated by jazzy ♪♫ v0.7.3, a Realm project.