2016-09-07 22:37:59 +00:00
<!DOCTYPE html>
< html lang = "en" >
< head >
< title > IGListKit Reference< / title >
< link rel = "stylesheet" type = "text/css" href = "css/jazzy.css" / >
< link rel = "stylesheet" type = "text/css" href = "css/highlight.css" / >
< meta charset = 'utf-8' >
< script src = "js/jquery.min.js" defer > < / script >
< script src = "js/jazzy.js" defer > < / script >
2016-11-23 20:42:52 +00:00
2021-10-28 22:47:52 +00:00
< script src = "js/lunr.min.js" defer > < / script >
< script src = "js/typeahead.jquery.js" defer > < / script >
< script src = "js/jazzy.search.js" defer > < / script >
2016-09-07 22:37:59 +00:00
< / head >
< body >
< a title = "IGListKit Reference" > < / a >
< header >
< div class = "content-wrapper" >
2023-04-07 07:23:43 +00:00
< p > < a href = "index.html" > IGListKit 4.1.0 Docs< / a > (93% documented)< / p >
< p class = "header-right" > < a href = "https://github.com/Instagram/IGListKit" > < img src = "img/gh.png" alt = "GitHub" / > View on GitHub< / a > < / p >
< div class = "header-right" >
2021-10-28 22:47:52 +00:00
< form role = "search" action = "search.json" >
< input type = "text" placeholder = "Search documentation" data-typeahead >
< / form >
2023-04-07 07:23:43 +00:00
< / div >
2016-09-07 22:37:59 +00:00
< / div >
< / header >
< div class = "content-wrapper" >
< p id = "breadcrumbs" >
< a href = "index.html" > IGListKit Reference< / a >
2023-04-07 07:23:43 +00:00
< img id = "carat" src = "img/carat.png" alt = "" / >
2016-09-07 22:37:59 +00:00
IGListKit Reference
< / p >
< / div >
< div class = "content-wrapper" >
< nav class = "sidebar" >
< ul class = "nav-groups" >
2016-11-23 20:42:52 +00:00
< li class = "nav-group-name" >
< a href = "Guides.html" > Guides< / a >
< ul class = "nav-group-tasks" >
2017-05-12 14:19:12 +00:00
< li class = "nav-group-task" >
< a href = "best-practices-and-faq.html" > Best Practices and FAQ< / a >
< / li >
2018-04-23 16:27:43 +00:00
< li class = "nav-group-task" >
2019-11-21 00:20:23 +00:00
< a href = "generating-your-models-using-remodel.html" > Generating your models using remodel< / a >
2018-04-23 16:27:43 +00:00
< / li >
2016-11-23 20:42:52 +00:00
< li class = "nav-group-task" >
< a href = "getting-started.html" > Getting Started< / a >
< / li >
2016-11-28 00:53:20 +00:00
< li class = "nav-group-task" >
< a href = "iglistdiffable-and-equality.html" > IGListDiffable and Equality< / a >
< / li >
2016-12-27 20:37:57 +00:00
< li class = "nav-group-task" >
< a href = "installation.html" > Installation< / a >
< / li >
2016-11-23 20:42:52 +00:00
< li class = "nav-group-task" >
< a href = "migration.html" > Migration< / a >
< / li >
2017-08-23 21:12:05 +00:00
< li class = "nav-group-task" >
< a href = "modeling-and-binding.html" > Modeling and Binding< / a >
< / li >
2017-05-12 14:19:12 +00:00
< li class = "nav-group-task" >
< a href = "vision.html" > VISION< / a >
< / li >
< li class = "nav-group-task" >
< a href = "working-with-core-data.html" > Working with Core Data< / a >
< / li >
< li class = "nav-group-task" >
< a href = "working-with-uicollectionview.html" > Working with UICollectionView< / a >
< / li >
2016-11-23 20:42:52 +00:00
< / ul >
< / li >
2016-09-07 22:37:59 +00:00
< li class = "nav-group-name" >
< a href = "Classes.html" > Classes< / a >
< ul class = "nav-group-tasks" >
< li class = "nav-group-task" >
< a href = "Classes/IGListAdapter.html" > IGListAdapter< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Classes/IGListAdapterUpdater.html" > IGListAdapterUpdater< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Classes/IGListBatchUpdateData.html" > IGListBatchUpdateData< / a >
< / li >
< li class = "nav-group-task" >
2017-05-12 14:19:12 +00:00
< a href = "Classes/IGListBindingSectionController.html" > IGListBindingSectionController< / a >
2016-09-07 22:37:59 +00:00
< / li >
2018-02-06 23:42:25 +00:00
< li class = "nav-group-task" >
< a href = "Classes/IGListCollectionView.html" > IGListCollectionView< / a >
< / li >
2016-11-22 07:18:30 +00:00
< li class = "nav-group-task" >
2017-05-12 14:19:12 +00:00
< a href = "Classes/IGListCollectionViewLayout.html" > IGListCollectionViewLayout< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Classes/IGListGenericSectionController.html" > IGListGenericSectionController< / a >
2016-11-22 07:18:30 +00:00
< / li >
2016-09-07 22:37:59 +00:00
< li class = "nav-group-task" >
< a href = "Classes/IGListIndexPathResult.html" > IGListIndexPathResult< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Classes/IGListIndexSetResult.html" > IGListIndexSetResult< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Classes/IGListMoveIndex.html" > IGListMoveIndex< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Classes/IGListMoveIndexPath.html" > IGListMoveIndexPath< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Classes.html#/c:objc(cs)IGListReloadDataUpdater" > IGListReloadDataUpdater< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Classes/IGListSectionController.html" > IGListSectionController< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Classes/IGListSingleSectionController.html" > IGListSingleSectionController< / a >
< / li >
2023-04-07 07:23:43 +00:00
< li class = "nav-group-task" >
< a href = "Classes/IGListTransitionData.html" > IGListTransitionData< / a >
< / li >
2016-09-07 22:37:59 +00:00
< / ul >
< / li >
< li class = "nav-group-name" >
< a href = "Constants.html" > Constants< / a >
< ul class = "nav-group-tasks" >
< li class = "nav-group-task" >
< a href = "Constants.html#/c:@IGListKitVersionNumber" > IGListKitVersionNumber< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Constants.html#/c:@IGListKitVersionString" > IGListKitVersionString< / a >
< / li >
< / ul >
< / li >
< li class = "nav-group-name" >
2018-02-06 23:42:25 +00:00
< a href = "Enums.html" > Enumerations< / a >
2016-09-07 22:37:59 +00:00
< ul class = "nav-group-tasks" >
2018-02-06 23:42:25 +00:00
< li class = "nav-group-task" >
< a href = "Enums/IGListAdapterUpdateType.html" > IGListAdapterUpdateType< / a >
< / li >
2016-09-07 22:37:59 +00:00
< li class = "nav-group-task" >
< a href = "Enums/IGListDiffOption.html" > IGListDiffOption< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Enums/IGListExperiment.html" > IGListExperiment< / a >
< / li >
< / ul >
< / li >
< li class = "nav-group-name" >
< a href = "Protocols.html" > Protocols< / a >
< ul class = "nav-group-tasks" >
< li class = "nav-group-task" >
< a href = "Protocols/IGListAdapterDataSource.html" > IGListAdapterDataSource< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Protocols/IGListAdapterDelegate.html" > IGListAdapterDelegate< / a >
< / li >
2018-04-23 16:27:43 +00:00
< li class = "nav-group-task" >
< a href = "Protocols/IGListAdapterMoveDelegate.html" > IGListAdapterMoveDelegate< / a >
< / li >
2019-11-21 00:20:23 +00:00
< li class = "nav-group-task" >
< a href = "Protocols/IGListAdapterPerformanceDelegate.html" > IGListAdapterPerformanceDelegate< / a >
< / li >
2018-02-06 23:42:25 +00:00
< li class = "nav-group-task" >
< a href = "Protocols/IGListAdapterUpdateListener.html" > IGListAdapterUpdateListener< / a >
< / li >
2016-09-07 22:37:59 +00:00
< li class = "nav-group-task" >
< a href = "Protocols/IGListAdapterUpdaterDelegate.html" > IGListAdapterUpdaterDelegate< / a >
< / li >
2017-05-12 14:19:12 +00:00
< li class = "nav-group-task" >
< a href = "Protocols/IGListBatchContext.html" > IGListBatchContext< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Protocols/IGListBindable.html" > IGListBindable< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Protocols/IGListBindingSectionControllerDataSource.html" > IGListBindingSectionControllerDataSource< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Protocols/IGListBindingSectionControllerSelectionDelegate.html" > IGListBindingSectionControllerSelectionDelegate< / a >
< / li >
2016-09-07 22:37:59 +00:00
< li class = "nav-group-task" >
< a href = "Protocols/IGListCollectionContext.html" > IGListCollectionContext< / a >
< / li >
2018-02-06 23:42:25 +00:00
< li class = "nav-group-task" >
< a href = "Protocols/IGListCollectionViewDelegateLayout.html" > IGListCollectionViewDelegateLayout< / a >
< / li >
2019-11-21 00:20:23 +00:00
< li class = "nav-group-task" >
< a href = "Protocols/IGListCollectionViewLayoutCompatible.html" > IGListCollectionViewLayoutCompatible< / a >
< / li >
2016-09-07 22:37:59 +00:00
< li class = "nav-group-task" >
< a href = "Protocols/IGListDiffable.html" > IGListDiffable< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Protocols/IGListDisplayDelegate.html" > IGListDisplayDelegate< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Protocols/IGListScrollDelegate.html" > IGListScrollDelegate< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Protocols/IGListSingleSectionControllerDelegate.html" > IGListSingleSectionControllerDelegate< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Protocols/IGListSupplementaryViewSource.html" > IGListSupplementaryViewSource< / a >
< / li >
2018-02-06 23:42:25 +00:00
< li class = "nav-group-task" >
< a href = "Protocols/IGListTransitionDelegate.html" > IGListTransitionDelegate< / a >
< / li >
2016-09-07 22:37:59 +00:00
< li class = "nav-group-task" >
< a href = "Protocols/IGListUpdatingDelegate.html" > IGListUpdatingDelegate< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Protocols/IGListWorkingRangeDelegate.html" > IGListWorkingRangeDelegate< / a >
< / li >
< / ul >
< / li >
< li class = "nav-group-name" >
2019-11-21 00:20:23 +00:00
< a href = "Type%20Definitions.html" > Type Definitions< / a >
2016-09-07 22:37:59 +00:00
< ul class = "nav-group-tasks" >
< li class = "nav-group-task" >
2019-11-21 00:20:23 +00:00
< a href = "Type%20Definitions/IGListCollectionScrollingTraits.html" > IGListCollectionScrollingTraits< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Type%20Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListCollectionViewBlock" > IGListCollectionViewBlock< / a >
2016-09-07 22:37:59 +00:00
< / li >
2021-10-28 22:47:52 +00:00
< li class = "nav-group-task" >
< a href = "Type%20Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListDataSourceChangeBlock" > IGListDataSourceChangeBlock< / a >
< / li >
2016-09-07 22:37:59 +00:00
< li class = "nav-group-task" >
2019-11-21 00:20:23 +00:00
< a href = "Type%20Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListItemUpdateBlock" > IGListItemUpdateBlock< / a >
2016-09-07 22:37:59 +00:00
< / li >
< li class = "nav-group-task" >
2019-11-21 00:20:23 +00:00
< a href = "Type%20Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListObjectTransitionBlock" > IGListObjectTransitionBlock< / a >
2016-09-07 22:37:59 +00:00
< / li >
2016-11-21 23:36:26 +00:00
< li class = "nav-group-task" >
2019-11-21 00:20:23 +00:00
< a href = "Type%20Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListReloadUpdateBlock" > IGListReloadUpdateBlock< / a >
2016-11-21 23:36:26 +00:00
< / li >
< li class = "nav-group-task" >
2019-11-21 00:20:23 +00:00
< a href = "Type%20Definitions.html#/c:IGListSingleSectionController.h@T@IGListSingleSectionCellConfigureBlock" > IGListSingleSectionCellConfigureBlock< / a >
2016-11-21 23:36:26 +00:00
< / li >
2018-05-01 23:54:35 +00:00
< li class = "nav-group-task" >
2019-11-21 00:20:23 +00:00
< a href = "Type%20Definitions.html#/c:IGListSingleSectionController.h@T@IGListSingleSectionCellSizeBlock" > IGListSingleSectionCellSizeBlock< / a >
2018-05-01 23:54:35 +00:00
< / li >
2016-09-07 22:37:59 +00:00
< li class = "nav-group-task" >
2019-11-21 00:20:23 +00:00
< a href = "Type%20Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListToObjectBlock" > IGListToObjectBlock< / a >
2016-09-07 22:37:59 +00:00
< / li >
2021-10-28 22:47:52 +00:00
< li class = "nav-group-task" >
< a href = "Type%20Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListTransitionDataApplyBlock" > IGListTransitionDataApplyBlock< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Type%20Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListTransitionDataBlock" > IGListTransitionDataBlock< / a >
< / li >
2016-09-07 22:37:59 +00:00
< li class = "nav-group-task" >
2019-11-21 00:20:23 +00:00
< a href = "Type%20Definitions.html#/c:IGListAdapter.h@T@IGListUpdaterCompletion" > IGListUpdaterCompletion< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Type%20Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListUpdatingCompletion" > IGListUpdatingCompletion< / a >
2016-09-07 22:37:59 +00:00
< / li >
< / ul >
< / li >
< li class = "nav-group-name" >
< a href = "Functions.html" > Functions< / a >
< ul class = "nav-group-tasks" >
< li class = "nav-group-task" >
< a href = "Functions.html#/c:@F@IGListDiff" > IGListDiff< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Functions.html#/c:@F@IGListDiffPaths" > IGListDiffPaths< / a >
< / li >
< li class = "nav-group-task" >
< a href = "Functions.html#/c:IGListExperiments.h@F@IGListExperimentEnabled" > IGListExperimentEnabled< / a >
< / li >
< / ul >
< / li >
2019-11-21 00:20:23 +00:00
< li class = "nav-group-name" >
< a href = "Structs.html" > Structures< / a >
< ul class = "nav-group-tasks" >
< li class = "nav-group-task" >
< a href = "Structs/IGListCollectionScrollingTraits.html" > IGListCollectionScrollingTraits< / a >
< / li >
< / ul >
< / li >
2016-09-07 22:37:59 +00:00
< / ul >
< / nav >
< article class = "main-content" >
< section >
< section class = "section" >
2016-11-23 20:42:52 +00:00
2016-09-07 22:37:59 +00:00
< p align = "center" >
2023-02-09 02:34:25 +00:00
< img src = "https://raw.githubusercontent.com/Instagram/IGListKit/main/Resources/logo-animation.gif" width = 400 / >
2016-09-07 22:37:59 +00:00
< / p >
2016-11-21 23:36:26 +00:00
< p align = "center" >
2023-04-07 07:23:43 +00:00
< a href = "https://github.com/Instagram/IGListKit/actions/workflows/CI.yml" >
< img src = "https://img.shields.io/github/actions/workflow/status/Instagram/IGListKit/CI.yml"
2016-11-21 23:36:26 +00:00
alt="Build Status">
< / a >
2023-02-09 02:34:25 +00:00
< a href = "https://coveralls.io/github/Instagram/IGListKit?branch=main" >
< img src = "https://coveralls.io/repos/github/Instagram/IGListKit/badge.svg?branch=main"
2016-11-21 23:36:26 +00:00
alt="Coverage Status" />
< / a >
< a href = "https://cocoapods.org/pods/IGListKit" >
< img src = "https://img.shields.io/cocoapods/v/IGListKit.svg?style=flat"
alt="Pods Version">
< / a >
2016-12-14 22:39:01 +00:00
< a href = "https://instagram.github.io/IGListKit/" >
< img src = "https://img.shields.io/cocoapods/p/IGListKit.svg?style=flat"
alt="Platforms">
< / a >
2016-11-21 23:36:26 +00:00
< a href = "https://github.com/Carthage/Carthage" >
< img src = "https://img.shields.io/badge/Carthage-compatible-brightgreen.svg?style=flat"
alt="Carthage Compatible">
< / a >
< / p >
2016-09-07 22:37:59 +00:00
< hr >
< p > A data-driven < code > UICollectionView< / code > framework for building fast and flexible lists.< / p >
< table > < thead >
< tr >
< th > < / th >
< th > Main Features< / th >
< / tr >
< / thead > < tbody >
< tr >
2016-10-11 18:38:22 +00:00
< td > 🙅 < / td >
2016-09-07 22:37:59 +00:00
< td > Never call < code > performBatchUpdates(_:, completion:)< / code > or < code > reloadData()< / code > again< / td >
< / tr >
< tr >
2016-10-11 18:38:22 +00:00
< td > 🏠 < / td >
2016-09-07 22:37:59 +00:00
< td > Better architecture with reusable cells and components< / td >
< / tr >
< tr >
2016-10-11 18:38:22 +00:00
< td > 🔠 < / td >
2016-09-07 22:37:59 +00:00
< td > Create collections with multiple data types< / td >
< / tr >
< tr >
2016-10-11 18:38:22 +00:00
< td > 🔑 < / td >
< td > Decoupled diffing algorithm< / td >
2016-09-07 22:37:59 +00:00
< / tr >
< tr >
2016-10-11 18:38:22 +00:00
< td > ✅ < / td >
2016-09-07 22:37:59 +00:00
< td > Fully unit tested< / td >
< / tr >
< tr >
2016-10-11 18:38:22 +00:00
< td > 🔍 < / td >
< td > Customize your diffing behavior for your models< / td >
2016-09-07 22:37:59 +00:00
< / tr >
< tr >
2016-10-11 18:38:22 +00:00
< td > 📱 < / td >
< td > Simply < code > UICollectionView< / code > at its core< / td >
2016-09-07 22:37:59 +00:00
< / tr >
< tr >
2016-10-11 18:38:22 +00:00
< td > 🚀 < / td >
2016-11-21 23:36:26 +00:00
< td > Extendable API< / td >
2016-09-07 22:37:59 +00:00
< / tr >
< tr >
2016-10-11 18:38:22 +00:00
< td > 🐦 < / td >
< td > Written in Objective-C with full Swift interop support< / td >
2016-09-07 22:37:59 +00:00
< / tr >
< / tbody > < / table >
2016-12-14 22:39:01 +00:00
< p > < code > IGListKit< / code > is built and maintained with ❤ ️ by < a href = "https://engineering.instagram.com/" > Instagram engineering< / a > .
2023-02-09 02:34:25 +00:00
We use the open source version < code > main< / code > branch in the Instagram app.< / p >
2021-10-28 22:47:52 +00:00
< h2 id = 'multilingual-translation' class = 'heading' > Multilingual translation< / h2 >
< p > < a href = "README.zh.md" > Chinese README< / a > < / p >
2017-05-12 14:19:12 +00:00
< h2 id = 'requirements' class = 'heading' > Requirements< / h2 >
2016-11-21 23:36:26 +00:00
< ul >
2018-02-06 23:42:25 +00:00
< li > Xcode 9.0+< / li >
2019-11-21 00:20:23 +00:00
< li > iOS 9.0+< / li >
2016-11-21 23:36:26 +00:00
< li > tvOS 9.0+< / li >
2018-04-23 16:27:43 +00:00
< li > macOS 10.11+ < em > (diffing algorithm components only)< / em > < / li >
2016-11-21 23:36:26 +00:00
< li > Interoperability with Swift 3.0+< / li >
< / ul >
2017-05-12 14:19:12 +00:00
< h2 id = 'installation' class = 'heading' > Installation< / h2 >
< h3 id = 'cocoapods' class = 'heading' > CocoaPods< / h3 >
2016-09-07 22:37:59 +00:00
2016-12-27 20:37:57 +00:00
< p > The preferred installation method is with < a href = "https://cocoapods.org" > CocoaPods< / a > . Add the following to your < code > Podfile< / code > :< / p >
2019-11-21 00:20:23 +00:00
< pre class = "highlight ruby" > < code > < span class = "n" > pod< / span > < span class = "s1" > 'IGListKit'< / span > < span class = "p" > ,< / span > < span class = "s1" > '~> 4.0.0'< / span >
2016-09-07 22:37:59 +00:00
< / code > < / pre >
2017-05-12 14:19:12 +00:00
< h3 id = 'carthage' class = 'heading' > Carthage< / h3 >
2016-09-07 22:37:59 +00:00
2016-12-27 20:37:57 +00:00
< p > For < a href = "https://github.com/Carthage/Carthage" > Carthage< / a > , add the following to your < code > Cartfile< / code > :< / p >
2019-11-21 00:20:23 +00:00
< pre class = "highlight plaintext" > < code > github "Instagram/IGListKit" ~> 4.0.0
2016-11-21 23:36:26 +00:00
< / code > < / pre >
2021-10-28 22:47:52 +00:00
< h3 id = 'swift-package-manager' class = 'heading' > Swift Package Manager< / h3 >
< p > For < a href = "https://swift.org/package-manager/" > Swift Package Manager< / a > :< / p >
< pre class = "highlight plaintext" > < code > To integrate using Xcode:
File -> Swift Packages -> Add Package Dependency
Enter package URL: https://github.com/Instagram/IGListKit, and select the latest release.
< / code > < / pre >
2016-12-27 20:37:57 +00:00
< blockquote >
< p > For advanced usage, see our < a href = "https://instagram.github.io/IGListKit/installation.html" > Installation Guide< / a > .< / p >
< / blockquote >
2017-05-12 14:19:12 +00:00
< h2 id = 'getting-started' class = 'heading' > Getting Started< / h2 >
2023-04-07 07:23:43 +00:00
< p > Try out IGListKit by opening any of the sample apps available in the < code > Examples< / code > directory.< / p >
2016-09-07 22:37:59 +00:00
2016-12-14 22:39:01 +00:00
< ul >
< li > Our < a href = "https://instagram.github.io/IGListKit/getting-started.html" > Getting Started guide< / a > < / li >
< li > Ray Wenderlich’ s < a href = "https://www.raywenderlich.com/147162/iglistkit-tutorial-better-uicollectionviews" > IGListKit Tutorial: Better UICollectionViews< / a > < / li >
2023-02-09 02:34:25 +00:00
< li > Our < a href = "https://github.com/Instagram/IGListKit/tree/main/Examples" > example projects< / a > < / li >
2021-10-28 22:47:52 +00:00
< li > Ryan Nystrom’ s < a href = "https://academy.realm.io/posts/tryswift-ryan-nystrom-refactoring-at-scale-lessons-learned-rewriting-instagram-feed/" > talk at try! Swift NYC< / a > (Note: this talk was for an earlier version. Some APIs have changed.)< / li >
2017-05-12 14:19:12 +00:00
< li > < a href = "https://medium.com/cocoaacademymag/iglistkit-migrating-an-uitableview-to-iglistkitcollectionview-65a30cf9bac9" > Migrating an UITableView to IGListCollectionView< / a > , by Rodrigo Cavalcante< / li >
< li > < a href = "https://overflow.buffer.com/2017/04/10/keeping-data-fresh-buffer-ios-asyncdisplaykit-iglistkit-pusher/" > Keeping data fresh in Buffer for iOS with AsyncDisplayKit, IGListKit & Pusher< / a > , Andy Yates, Buffer< / li >
2016-12-14 22:39:01 +00:00
< / ul >
2017-05-12 14:19:12 +00:00
< h2 id = 'documentation' class = 'heading' > Documentation< / h2 >
2016-09-07 22:37:59 +00:00
2016-11-21 23:36:26 +00:00
< p > You can find < a href = "https://instagram.github.io/IGListKit" > the docs here< / a > . Documentation is generated with < a href = "https://github.com/realm/jazzy" > jazzy< / a > and hosted on < a href = "https://pages.github.com" > GitHub-Pages< / a > .< / p >
2017-06-01 03:51:02 +00:00
< p > To regenerate docs, run < code > ./scripts/build_docs.sh< / code > from the root directory in the repo.< / p >
2017-05-12 14:19:12 +00:00
< h2 id = 'vision' class = 'heading' > Vision< / h2 >
2023-02-09 02:34:25 +00:00
< p > For the long-term goals and “ vision” of < code > IGListKit< / code > , please read our < a href = "https://github.com/Instagram/IGListKit/blob/main/Guides/VISION.md" > Vision< / a > doc.< / p >
2017-05-12 14:19:12 +00:00
< h2 id = 'contributing' class = 'heading' > Contributing< / h2 >
2016-09-07 22:37:59 +00:00
2023-02-09 02:34:25 +00:00
< p > Please see the < a href = "https://github.com/Instagram/IGListKit/blob/main/.github/CONTRIBUTING.md" > CONTRIBUTING< / a > file for how to help. At Instagram, we sync the open source version of < code > IGListKit< / code > daily, so we’ re always testing the latest changes. But that requires all changes be thoroughly tested and follow our style guide.< / p >
2017-06-01 03:51:02 +00:00
< p > We have a set of < a href = "https://github.com/Instagram/IGListKit/issues?q=is%3Aissue+is%3Aopen+label%3Astarter-task" > starter tasks< / a > that are great for beginners to jump in on and start contributing.< / p >
2017-05-12 14:19:12 +00:00
< h2 id = 'license' class = 'heading' > License< / h2 >
2016-09-07 22:37:59 +00:00
2021-10-28 22:47:52 +00:00
< p > < code > IGListKit< / code > is < a href = "./LICENSE.md" > MIT-licensed< / a > .< / p >
2016-09-07 22:37:59 +00:00
2016-12-14 22:39:01 +00:00
< p > The files in the < code > /Examples/< / code > directory are licensed under a separate license as specified in each file. Documentation is licensed < a href = "https://creativecommons.org/licenses/by/4.0/" > CC-BY-4.0< / a > .< / p >
2023-04-07 07:23:43 +00:00
< h2 id = 'legal' class = 'heading' > Legal< / h2 >
2023-04-07 08:58:02 +00:00
< p > Copyright © Meta Platforms, Inc • < a href = "https://opensource.fb.com/legal/terms" > Terms of Use< / a > • < a href = "https://opensource.fb.com/legal/privacy" > Privacy Policy< / a > < / p >
2016-09-07 22:37:59 +00:00
< / section >
< / section >
< section id = "footer" >
2023-04-07 07:23:43 +00:00
< p > © 2023 < a class = "link" href = "https://twitter.com/MetaOpenSource" target = "_blank" rel = "external noopener" > Instagram< / a > . All rights reserved. (Last updated: 2023-04-07)< / p >
< p > Generated by < a class = "link" href = "https://github.com/realm/jazzy" target = "_blank" rel = "external noopener" > jazzy ♪♫ v0.14.3< / a > , a < a class = "link" href = "https://realm.io" target = "_blank" rel = "external noopener" > Realm< / a > project.< / p >
2016-09-07 22:37:59 +00:00
< / section >
< / article >
< / div >
< / body >
< / html >