一个数据驱动的“UICollectionView”框架,用于构建快速灵活的列表。
主要特性 | |
---|---|
🙅 | 不要直接调用 performBatchUpdates(_:, completion:) 或 reloadData() |
🏠 | 更好的可复用cell和组件体系结构 |
🔠 | 创建具有多个数据类型的集合 |
🔑 | 解耦扩散算法 |
✅ | 全单元测试 |
🔍 | 自定义差异行为模型的 |
📱 | 简化 UICollectionView 核心 |
🚀 | 可扩展API |
🐦 | Objective-C编写,同时完全支持Swift |
IGListKit
由Instagram 工程师 创建 并且❤️ 维护.
我们在Instagram中使用开源的master
主版本.
- Xcode 9.0+
- iOS 8.0+
- tvOS 9.0+
- macOS 10.11+ (diffing algorithm components only)
- Interoperability with Swift 3.0+
CocoaPods优选安装方法. 添加如下到 Podfile
文件中:
pod 'IGListKit', '~> 3.0'
针对Carthage, 添加如下到 Cartfile
文件中:
github "Instagram/IGListKit" ~> 3.0
对于高级用法, 查阅 安装指南.
$ git clone https://github.com/Instagram/IGListKit.git
$ cd IGListKit/
$ ./scripts/setup.sh
- 入门指南
- Ray Wenderlich's IGListKit Tutorial: Better UICollectionViews
- 样例项目
- Ryan Nystrom's talk at try! Swift NYC (Note: this talk was for an earlier version. Some APIs have changed.)
- Migrating an UITableView to IGListCollectionView, by Rodrigo Cavalcante
- Keeping data fresh in Buffer for iOS with AsyncDisplayKit, IGListKit & Pusher, Andy Yates, Buffer
这里可以查阅文档. 文档由jazzy生成, 托管在 GitHub-Pages.
运行位于数据仓root目录 ./scripts/build_docs.sh
生成文档.
For the long-term goals and "vision" of IGListKit
, please read our Vision doc.
Please see the CONTRIBUTING file for how to help. 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.
We have a set of starter tasks that are great for beginners to jump in on and start contributing.
IGListKit
is MIT-licensed.
The files in the /Examples/
directory are licensed under a separate license as specified in each file. Documentation is licensed CC-BY-4.0.