
IGListKit
A Swift-compatible Objective-C framework for building data-driven UICollectionView lists on iOS.
- Stars
- 13.1k
- Forks
- 1.5k
- Licence
- MIT
- Language
- Objective-C
- Last update
- 13 days ago
- Type
- Library
What it is
IGListKit is a framework from Instagram engineering that helps iOS developers build UICollectionView-based lists from data. You supply your data and it works out what changed, so screens update without manual batch-update or reloadData calls. It is written in Objective-C and works with Swift code.
- Build a feed or list where items of different types appear together
- Replace manual performBatchUpdates or reloadData calls with diff-driven updates
- Customize how models are compared when computing differences
- Migrate an existing UITableView-based screen to a collection view structure, per linked guides
Great for
- iOS developers building list or feed screens with UICollectionView
- Teams who want a reusable, decoupled diffing approach for their models
- Apps that mix several data types in one collection
- Developers already comfortable with Objective-C or Swift interop
Not ideal for
- Developers who need SwiftUI-only solutions, since the README describes a UICollectionView framework and does not mention SwiftUI
- Projects that need Android or web support, since the README covers only Apple platforms
- Beginners with no iOS background, since the README assumes familiarity with UICollectionView
How to get it
- 1
Install with a package manager
You'll need: Xcode with Swift 5.1+ · CocoaPods, Carthage, or Swift Package Manager
CocoaPods: add to Podfile
pod 'IGListKit', '~> 5.2.0'Carthage: add to Cartfile
github "Instagram/IGListKit" ~> 5.2.0 - 2
Run it
- Add the IGListKit dependency using CocoaPods, Carthage, or Swift Package Manager.
- Open one of the sample apps in the Examples directory.
- Follow the Getting Started guide on the project docs site.
- Create a list adapter and supply your data models.
- 3
Get the most out of it
- Read the Getting Started guide at the project homepage for setup patterns
- Study the example projects in the Examples directory
- Customize diffing behavior for your own models as described in the README
- Review the Vision document to understand long-term project direction
Downloads
Strengths
- Removes the need to call performBatchUpdates or reloadData by hand, according to the README
- Supports collections with multiple data types and reusable cells
- Written in Objective-C with documented Swift interop and has unit tests
Trade-offs
- README lists Swift 5.1+, iOS 11.0+ and macOS only for diffing components, so older targets may not work
- Some linked learning material is for an earlier version and the README warns that some APIs have changed
- Latest release 5.2.0 ships no binaries, so it must be added through a dependency manager
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| IGListKit (this) | 13.1k | Library | intermediate | 13 days ago | iOS developers building list or feed screens with UICollectionView |
| SDWebImage | 25.6k | Library | intermediate | 7 months ago | iOS or macOS app developers who need to show remote images in lists or grids |
| SkeletonView | 12.9k | Library | beginner | 5 months ago | iOS developers building apps that load data from the network |
| SVProgressHUD | 12.4k | Library | beginner | 8 months ago | iOS developers who need a quick loading indicator for a blocking task |
| FSCalendar | 10.6k | Library | intermediate | 2.2 years ago | iOS developers who need a calendar or date-picker view in their app |
| awesome-ios | 53.8k | Curated list | beginner | 2 months ago | iOS developers looking for a library for a specific task such as networking, animation or testing |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.