gitmyhub

IGListKit

Objective-C ★ 13k updated 23d ago

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

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.

Objective-CSwiftCocoaPodsSwift Package Managersetup: easycomplexity 3/5

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.

Where it fits