- July 26, 2025
- Mins Read
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 main
branch in the Instagram app.
The preferred installation method is with CocoaPods. Add the following to your Podfile
:
pod ‘IGListKit’, ‘~> 4.0.0’
For Carthage, add the following to your Cartfile
:
github “Instagram/IGListKit” ~> 4.0.0
To integrate using Xcode:
File -> Swift Packages -> Add Package Dependency
Enter package URL: https://github.com/Instagram/IGListKit, and select the latest release.
For advanced usage, see our Installation Guide.
Try out IGListKit by opening any of the sample apps available in the Examples
directory.
You can find the docs here. Documentation is generated with jazzy and hosted on GitHub-Pages.
To regenerate docs, run ./scripts/build_docs.sh
from the root directory in the repo.
For the long-term goals and “vision” of IGListKit
, please read our Vision doc.
NavigationKit is a lightweight library which makes SwiftUI navigation super easy to use. 💻 Installation 📦 Swift Package Manager Using Swift Package Manager, add ...
An alternative SwiftUI NavigationView implementing classic stack-based navigation giving also some more control on animations and programmatic navigation. NavigationStack Installation ...
With SwiftUI Router you can power your SwiftUI app with path-based routing. By utilizing a path-based system, navigation in your app becomes ...
This package takes SwiftUI's familiar and powerful NavigationStack API and gives it superpowers, allowing you to use the same API not just ...