Oct 18, 2021
ELI5: IGListKit - Building Flexible Collection Views for iOS
By Dmitry Vinnik
Originally posted here.
This blog post covers a popular open source project called IGListKit, a data-driven UICollectionView framework for building fast and flexible lists in iOS. We explore this open source project using the ELI5 style of explaining things in simple terms in the shortest amount of time.
If you prefer to learn by watching, we also have an accompanying video about IGListKit on our Facebook Open Source YouTube channel.
Why IGListKit?
Today, most large apps rely heavily on scrollable data feeds for their users. At Facebook, we've been dealing with large scale data processing for quite some time, so building a robust framework for displaying the data was a tremendous help, and we wanted to share it with the world. This work resulted in us open-sourcing IGListKit.
IGListKit is an iOS framework for building fast and flexible data-driven lists, or in more technical terms, UICollectionViews.
One of IGListKit's goals is to simplify the development process. The way this framework works is that it first accesses an array of objects to display in UICollectionView. Then, IGListKit's adapter creates section controllers that handle creating individual cells in the list for each object type.
Another great feature of IGListKit is that it keeps your data up-to-date. It means that this framework monitors your objects, and if anything changes, IGListKit performs batch updates on the UICollectionView. With these updates automatically handled, you never have to deal with this error-prone operation ever again!
Where is it used?
IGListKit was open-sourced in late 2016 by Instagram Engineering. Since then, the project has gotten over 12 thousand stars on GitHub, and its community continues to grow.
Where can I learn more?
To learn more about IGListKit, visit their website. It has several getting started guides, examples and API docs. For troubleshooting and the latest updates on the project, feel free to ask a question on the project's GitHub page.
About the ELI5 series
In a series of short videos (~1 min in length), one of our Developer Advocates on the Facebook Open Source team explains a Facebook open source project in a way that is easy to understand and use.
We will write an accompanying blog post (like the one you're reading right now) for each of these videos, which you can find on our YouTube channel.
Interested in working with open source at Facebook? Check out our open source-related job postings on our career page by taking this quick survey.