Repolode
Instagram

Instagram/IGListKit

A data-driven UICollectionView framework from Instagram for building fast, flexible iOS lists with automatic diffing.

Stars
13,081
Forks
1,539
Open issues
65
Last commit
4 days ago

What is it?

IGListKit is a Objective-C framework for building lists on top of UICollectionView. Instead of manually calling performBatchUpdates or reloadData, developers describe their data and the framework computes the differences between old and new states, then applies the updates to the collection view.

The framework separates data models from view logic through section controllers, which let a single collection hold multiple data types and reusable cells or components. A decoupled diffing algorithm compares items, and developers can customize how models are compared. It supports iOS, tvOS, and macOS for the diffing components, and offers full Swift interoperability.

IGListKit is maintained by Instagram engineering and is used in the Instagram app. It is installable through CocoaPods, Carthage, and Swift Package Manager, and includes sample apps in the Examples directory.

Key features

  • 01Automatically computes diffs and applies batch updates to UICollectionView
  • 02Supports collections with multiple data types using section controllers
  • 03Customizable diffing behavior for your models
  • 04Decoupled diffing algorithm usable on its own
  • 05Full Swift interoperability

Use cases

  • Building feed-style or mixed-content lists in an iOS app with frequently changing data
  • Replacing manual performBatchUpdates and reloadData logic in existing collection views
  • Migrating table-based screens to collection-based layouts

Quick start

  1. 1

    Add the IGListKit pod to your Podfile

    pod 'IGListKit', '~> 5.2.0'
  2. 2

    Add the Swift Package via Xcode using the package URL

  3. 3

    Open an example app from the Examples directory to try it out

Things to know

  • Targets iOS, tvOS and macOS only, with macOS limited to the diffing components.
  • Requires iOS 11.0 or later and Swift 5.1 or later.
  • Written in Objective-C, so Swift users rely on interop.

Topics

FAQ

What is IGListKit?
A data-driven UICollectionView framework from Instagram for building fast, flexible iOS lists with automatic diffing. IGListKit is a Objective-C framework for building lists on top of UICollectionView. Instead of manually calling performBatchUpdates or reloadData, developers describe their data and the framework computes the differences between old and new states, then applies the updates to the collection view.
Is IGListKit free to use? What license does it have?
IGListKit is open source under the MIT license. Check the license terms before using it in commercial products.
Is IGListKit still maintained?
Actively maintained. The last commit to IGListKit was on Nov 3, 2026.
What can I use IGListKit for?
Building feed-style or mixed-content lists in an iOS app with frequently changing data Replacing manual performBatchUpdates and reloadData logic in existing collection views Migrating table-based screens to collection-based layouts
How do I install IGListKit?
Add the IGListKit pod to your Podfile: pod 'IGListKit', '~> 5.2.0' Add the Swift Package via Xcode using the package URL Open an example app from the Examples directory to try it out
Where can I get IGListKit?
The source code and installation instructions are on GitHub: https://github.com/Instagram/IGListKit

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects