whatisgithub

What is iglistkit?

instagram/iglistkit — explained in plain English

Analysis updated 2026-06-24

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

In one sentence

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
Click or tap to explore — scroll the page freely

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

What do people build with it?

USE CASE 1

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

USE CASE 2

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

USE CASE 3

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

What is it built with?

Objective-CSwiftCocoaPodsSwift Package Manager

How does it compare?

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 get it running?

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.

So what is it?

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.

Copy-paste 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

What 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.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.