2016-09-07 22:37:59 +00:00
< p align = "center" >
2016-10-11 18:38:22 +00:00
< img src = "https://raw.githubusercontent.com/Instagram/IGListKit/master/Resources/logo-animation.gif" width = 400 / >
2016-09-07 22:37:59 +00:00
< / p >
2016-10-27 17:09:43 +00:00
< p align = "center" >
< a href = "https://travis-ci.org/Instagram/IGListKit" >
< img src = "https://travis-ci.org/Instagram/IGListKit.svg?branch=master&style=flat"
alt="Build Status">
< / a >
2016-11-21 17:53:23 +00:00
< a href = "https://coveralls.io/github/Instagram/IGListKit?branch=master" >
< img src = "https://coveralls.io/repos/github/Instagram/IGListKit/badge.svg?branch=master"
alt="Coverage Status" />
2016-10-27 17:09:43 +00:00
< / a >
< a href = "https://cocoapods.org/pods/IGListKit" >
< img src = "https://img.shields.io/cocoapods/v/IGListKit.svg?style=flat"
alt="Pods Version">
< / a >
2016-12-12 19:11:19 +00:00
< a href = "https://instagram.github.io/IGListKit/" >
< img src = "https://img.shields.io/cocoapods/p/IGListKit.svg?style=flat"
alt="Platforms">
< / a >
2016-10-27 17:09:43 +00:00
< a href = "https://github.com/Carthage/Carthage" >
< img src = "https://img.shields.io/badge/Carthage-compatible-brightgreen.svg?style=flat"
alt="Carthage Compatible">
< / a >
< / p >
2016-09-07 22:37:59 +00:00
2016-10-27 17:09:43 +00:00
----------------
2016-09-07 22:37:59 +00:00
A data-driven `UICollectionView` framework for building fast and flexible lists.
2016-11-23 20:42:52 +00:00
| | Main Features |
----------|-----------------
2016-10-11 18:38:22 +00:00
🙅 | Never call `performBatchUpdates(_:, completion:)` or `reloadData()` again
🏠 | Better architecture with reusable cells and components
🔠 | Create collections with multiple data types
🔑 | Decoupled diffing algorithm
2016-11-23 20:42:52 +00:00
✅ | Fully unit tested
2016-10-11 18:38:22 +00:00
🔍 | Customize your diffing behavior for your models
📱 | Simply `UICollectionView` at its core
🚀 | Extendable API
🐦 | Written in Objective-C with full Swift interop support
2016-09-07 22:37:59 +00:00
2016-12-14 17:30:09 +00:00
`IGListKit` is built and maintained with ❤️ by [Instagram engineering ](https://engineering.instagram.com/ ).
2016-12-12 15:11:19 +00:00
We use the open source version `master` branch in the Instagram app.
2016-09-07 22:37:59 +00:00
2016-10-25 16:58:18 +00:00
## Requirements
- Xcode 8.0+
- iOS 8.0+
2016-10-29 21:39:18 +00:00
- tvOS 9.0+
2016-12-29 18:56:56 +00:00
- macOS 10.10+ *(diffing algorithm components only)*
2016-10-25 16:58:18 +00:00
- Interoperability with Swift 3.0+
2016-09-07 22:37:59 +00:00
## Installation
2016-10-12 18:09:34 +00:00
### CocoaPods
2016-10-25 16:58:18 +00:00
2016-12-27 20:37:57 +00:00
The preferred installation method is with [CocoaPods ](https://cocoapods.org ). Add the following to your `Podfile` :
2016-09-07 22:37:59 +00:00
```ruby
2016-12-12 15:11:19 +00:00
pod 'IGListKit', '~> 2.0.0'
2016-09-07 22:37:59 +00:00
```
2016-10-12 00:39:37 +00:00
### Carthage
2016-12-27 20:37:57 +00:00
For [Carthage ](https://github.com/Carthage/Carthage ), add the following to your `Cartfile` :
2016-10-12 00:39:37 +00:00
```ogdl
2016-12-09 19:43:09 +00:00
github "Instagram/IGListKit" ~> 2.0.0
2016-10-12 00:39:37 +00:00
```
2016-12-27 20:37:57 +00:00
> For advanced usage, see our [Installation Guide](https://instagram.github.io/IGListKit/installation.html).
2016-11-23 20:42:52 +00:00
## Getting Started
2016-09-07 22:37:59 +00:00
2016-12-12 22:29:29 +00:00
- Our [Getting Started guide ](https://instagram.github.io/IGListKit/getting-started.html )
- Ray Wenderlich's [IGListKit Tutorial: Better UICollectionViews ](https://www.raywenderlich.com/147162/iglistkit-tutorial-better-uicollectionviews )
- Ryan Nystrom's [talk at try! Swift NYC ](https://realm.io/news/tryswift-ryan-nystrom-refactoring-at-scale-lessons-learned-rewriting-instagram-feed/ )
2016-09-07 22:37:59 +00:00
## Documentation
You can find [the docs here ](https://instagram.github.io/IGListKit ). Documentation is generated with [jazzy ](https://github.com/realm/jazzy ) and hosted on [GitHub-Pages ](https://pages.github.com ).
## Contributing
2016-12-14 03:56:51 +00:00
Please see the [CONTRIBUTING ](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md ) 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.
2016-09-07 22:37:59 +00:00
## License
`IGListKit` is BSD-licensed. We also provide an additional patent grant.
2016-12-12 15:11:19 +00:00
The files in the `/Examples/` directory are licensed under a separate license as specified in each file. Documentation is licensed [CC-BY-4.0 ](https://creativecommons.org/licenses/by/4.0/ ).