A data-driven UICollectionView framework for building fast and flexible lists.
Find a file
Andrew Monshizadeh a4e5ad862e Move section index to property
Summary:
This pull request removes the `sectionForSectionController:` method from the `IGListCollectionContext` protocol so that the protocol is exclusively for presentation methods.

This should not add new functionality, but rather makes the index directly accessible on the section controllers themselves. This change makes sense because at no time will there be an update to the list that the list adapter is unaware of and so it will always be able to set and update any indexes for a section controller that has changed.

Issue fixed: #609

- [X] All tests pass. Demo project builds and runs.
- [X] I added tests, an experiment, or detailed why my change isn't tested.
- [X] I added an entry to the `CHANGELOG.md` for any breaking changes, enhancements, or bug fixes.
- [X] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md)
Closes https://github.com/Instagram/IGListKit/pull/671

Reviewed By: jessesquires

Differential Revision: D4942159

Pulled By: amonshiz

fbshipit-source-id: d648cfdd381cbf1d9ee7ff549ae27d2972a84622
2017-05-01 07:28:27 -07:00
.github Update ISSUE_TEMPLATE.md 2017-04-26 13:17:23 -07:00
docs Fix spelling in documentation 2017-03-07 08:31:06 -08:00
Examples Move section index to property 2017-05-01 07:28:27 -07:00
Guides Remove refs to IGListSectionType, fix TV app example 2017-04-19 16:21:07 -07:00
IGListKit.xcodeproj Disable iOS 9.3 tests 2017-04-27 14:47:43 -07:00
IGListKit.xcworkspace Initial commit 2016-10-11 10:12:17 -04:00
Pods kill IGListCollectionView. GH issue #409 (redo of D4640425) 2017-03-31 14:54:09 -07:00
Resources Optimized images 2017-02-20 16:18:20 -08:00
Source Move section index to property 2017-05-01 07:28:27 -07:00
Tests Move section index to property 2017-05-01 07:28:27 -07:00
.gitignore Nitpicky comment fixes 2017-03-31 13:01:40 -07:00
.slather.yml Ignore Xcode dir in coverage reports 2016-11-20 07:58:58 -08:00
.travis.yml Disable iOS 9.3 tests 2017-04-27 14:47:43 -07:00
build_docs.sh Fix build docs script 2017-01-28 01:13:54 -08:00
CHANGELOG.md Move section index to property 2017-05-01 07:28:27 -07:00
Dangerfile Setup Danger 2017-03-13 09:32:00 -07:00
IGListKit.podspec Release 2.1.0 prep 2017-01-04 10:14:37 -08:00
LICENSE.md Initial commit 2016-10-11 10:12:17 -04:00
PATENTS.md Initial commit 2016-10-11 10:12:17 -04:00
Podfile Add tvOS support. Close #118 2016-10-29 14:44:11 -07:00
Podfile.lock kill IGListCollectionView. GH issue #409 (redo of D4640425) 2017-03-31 14:54:09 -07:00
README.md Update README.md 2017-04-12 15:04:29 -07:00

Build Status Coverage Status Pods Version Platforms Carthage Compatible


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

Main Features
🙅 Never call performBatchUpdates(_:, completion:) or reloadData() again
🏠 Better architecture with reusable cells and components
🔠 Create collections with multiple data types
🔑 Decoupled diffing algorithm
Fully unit tested
🔍 Customize your diffing behavior for your models
📱 Simply UICollectionView at its core
🚀 Extendable API
🐦 Written in Objective-C with full Swift interop support

IGListKit is built and maintained with ❤️ by Instagram engineering. We use the open source version master branch in the Instagram app.

Requirements

  • Xcode 8.0+
  • iOS 8.0+
  • tvOS 9.0+
  • macOS 10.10+ (diffing algorithm components only)
  • Interoperability with Swift 3.0+

Installation

CocoaPods

The preferred installation method is with CocoaPods. Add the following to your Podfile:

pod 'IGListKit', '~> 2.0.0'

Carthage

For Carthage, add the following to your Cartfile:

github "Instagram/IGListKit" ~> 2.0.0

For advanced usage, see our Installation Guide.

Getting Started

Documentation

You can find the docs here. Documentation is generated with jazzy and hosted on GitHub-Pages.

Vision

For the long term goals and "vision" of IGListKit, please read our Vision doc.

Contributing

Please see the CONTRIBUTING file for how to help out. At Instagram we sync the open source version of IGListKit daily, so we're always testing the latest changes. But that requires all changes be thoroughly tested and follow our style guide.

License

IGListKit is BSD-licensed. We also provide an additional patent grant.

The files in the /Examples/ directory are licensed under a separate license as specified in each file. Documentation is licensed CC-BY-4.0.