# Instagram/IGListKit

A data-driven UICollectionView framework for building fast and flexible lists.

Repository: https://github.com/Instagram/IGListKit
Canonical: https://ross.abutalabs.com/products/iglistkit
Homepage: https://instagram.github.io/IGListKit/
Language: Objective-C
License: MIT
License Family: permissive
Topics: uicollectionview, ios, objective-c, diffing, instagram
Last push: 2026-08-19T23:51:03+00:00

## Health v2 (maintenance only)
Score: 81/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 98, release rhythm 47, longevity 100
- inputs: {"age_days": 3647, "days_push": 14, "days_rel": 197, "gap_med": 109, "n_releases_24m": 2}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 13068, forks 1539 (observed 2026-08-28T04:11:01.946091+00:00)

## What it is
IGListKit is a data-driven UICollectionView framework from Instagram engineering for building fast, flexible list interfaces on iOS and tvOS. It provides a decoupled diffing algorithm so developers never call performBatchUpdates or reloadData manually, with reusable cells and support for multiple data types.

## Use cases
- build fast scrolling feeds in an iOS app
- update collection view lists without manual batch updates
- render heterogeneous list content with multiple cell types
- diff and animate changes between list data states
- migrate UITableView screens to UICollectionView-based architecture
- build reusable list components for a large iOS codebase

## When to choose
- you are building complex, high-performance list or feed UIs on iOS or tvOS
- you need automatic diffing and animated updates for collection data
- you want an Objective-C framework with full Swift interop
- you need a battle-tested framework used in production at Instagram scale

## When to avoid
- you are building for Android, web, or non-Apple platforms
- your UI is simple enough that plain UICollectionView suffices
- you are starting a brand-new SwiftUI project with no UIKit lists
- you need SwiftUI-native list tooling rather than UIKit-based components

## Facets
- artifact type: framework
- maturity: stable
- function: ui-components, state-management, animation
- domain: mobile-development, frontend, developer-tools
- platform: cpp
- tags: uicollectionview, diffing, objective-c, list-ui, swift-interop, ios, mobile, swift

## Member repositories
- Instagram/IGListKit (main) score 81

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:01.946091+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:13:33.493894+00:00, confidence not recorded.
  - readme: https://github.com/Instagram/IGListKit (fetched 2026-08-28T04:11:01.946091+00:00, sha 5fcf475d6d07)
  - homepage: https://instagram.github.io/IGListKit/ (fetched 2026-08-29T08:09:05.492408+00:00, sha 97d2a3acbdbc)
- Data as of 2026-08-30T08:39:29.467469+00:00.
