gitwtfhub

wtf is iglistkit?

instagram/iglistkit — explained in plain English

Analysis updated 2026-06-24

13,062Objective-CAudience · developerComplexity · 3/5LicenseSetup · easy

TL;DR

IGListKit is an iOS framework from Instagram that makes scrollable lists and feeds faster and easier to maintain by automatically detecting what changed in your data and updating only those rows.

Mindmap

mindmap
  root((IGListKit))
    What It Does
      Fast iOS list rendering
      Auto-diffing data
    Key Concepts
      Section controllers
      Diffing algorithm
      UICollectionView
    Install
      CocoaPods
      Swift Package Manager
      Carthage
    Compatibility
      Swift and Objective-C
      iOS 11 and above

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Build complex iOS feeds like social timelines that update efficiently without reloading the entire list.

REASON 2

Organize a large UICollectionView into independent section controllers to keep code maintainable as the feed grows.

REASON 3

Improve iOS app scroll performance by replacing manual reloadData calls with IGListKit's diffing-based updates.

What's in the stack?

Objective-CSwiftCocoaPodsSwift Package Manager

How it stacks up

instagram/iglistkitcocoalumberjack/cocoalumberjackdarlinghq/darling
Stars13,06213,31912,768
LanguageObjective-CObjective-CObjective-C
Setup difficultyeasyeasyhard
Complexity3/52/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 30min
Use freely for any purpose, including commercial apps, as long as you keep the MIT license and copyright notice.

Wtf does this do

IGListKit is a framework for iOS developers to build faster, more organized lists and grids within their apps. It sits on top of UICollectionView, the standard iOS component for showing scrollable content, and adds smarter data management so developers do not have to manually figure out which items changed when the underlying data updates. A built-in diffing algorithm compares old data to new data and only updates the parts that changed, rather than reloading everything at once. The practical benefit is both performance and cleaner code. Apps avoid unnecessary reloads of entire lists when only a few rows change. The framework also encourages organizing each section of a list into its own separate controller, which makes large, complex feeds like the Instagram home feed easier to build and maintain. Instagram engineering built and uses this library in the production Instagram app. IGListKit is written in Objective-C and has full Swift compatibility. It targets iOS 11 and tvOS 11 and above, with some components also working on macOS. Developers can add it to a project through CocoaPods, Carthage, or Swift Package Manager, all standard iOS dependency tools. The library is open source under an MIT license. It includes example projects in the repository, a getting-started guide, and full API documentation hosted online. The project welcomes outside contributions and marks beginner-friendly issues for those new to the codebase.

Yoink these prompts

Prompt 1
How do I set up IGListKit in a Swift project using Swift Package Manager and create my first section controller?
Prompt 2
Show me how to implement IGListDiffable in a Swift data model so IGListKit can automatically diff my data and animate row changes.
Prompt 3
Walk me through migrating an existing UICollectionView that calls reloadData manually to IGListKit's adapter pattern.

Frequently asked questions

wtf is iglistkit?

IGListKit is an iOS framework from Instagram that makes scrollable lists and feeds faster and easier to maintain by automatically detecting what changed in your data and updating only those rows.

What language is iglistkit written in?

Mainly Objective-C. The stack also includes Objective-C, Swift, CocoaPods.

What license does iglistkit use?

Use freely for any purpose, including commercial apps, as long as you keep the MIT license and copyright notice.

How hard is iglistkit to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is iglistkit for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.