mirror of
https://github.com/Instagram/IGListKit
synced 2026-04-21 21:47:34 +00:00
Summary: The GitHub CI seems to be failing still since we added some new header files and didn't include the necessary ones in the IGListKit.h umbrella header. This PR: * Updates the umbrella header to include the new header files * Updates the visibility of the private headers so they don't need to be included in the umbrella. * Does a general clean-up of the Xcode project, re-ordering all of the newly imported files. Assuming this all passes the external CI, we can land it in Phabricator. Pull Request resolved: https://github.com/Instagram/IGListKit/pull/1622 Test Plan: GitHub CI has passed: https://github.com/Instagram/IGListKit/actions/runs/13851019458 Reviewed By: fabiomassimo Differential Revision: D71178515 Pulled By: TimOliver fbshipit-source-id: 1ea643a7bc7a401c45af2776c2a66e3b806035d7
4.5 KiB
4.5 KiB
一个数据驱动的UICollectionView框架,用于构建快速灵活的列表。
| 主要特性 | |
|---|---|
| 🙅 | 无须直接调用 performBatchUpdates(_:, completion:) 或 reloadData() |
| 🏠 | 更好的可复用 cell 和组件体系结构 |
| 🔠 | 创建具有多个数据类型的列表 |
| 🔑 | 解耦的 Diff 算法 |
| ✅ | 完全的单元测试 |
| 🔍 | 可自定义数据模型的 Diff 行为 |
| 📱 | 简化并维持UICollectionView的核心特性 |
| 🚀 | 可扩展的 API 设计 |
| 🐦 | Objective-C 编写,同时完全支持 Swift |
IGListKit由 Instagram 工程师 创建 并且❤️ 维护。
我们在 Instagram 中使用开源的main主版本。
多语言翻译
要求
- Swift 5.1+
- iOS 11.0+
- tvOS 11.0+
- macOS 10.13+ (diffing algorithm components only)
- Interoperability with Swift 3.0+
安装
CocoaPods
推荐使用CocoaPods来进行安装,只需添加如下语句到你的Podfile文件中:
pod 'IGListKit', '~> 5.0.0'
Carthage
对于Carthage, 添加如下到Cartfile文件中:
github "Instagram/IGListKit" ~> 5.0.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。
运行位于仓库根目录下的./scripts/build_docs.sh脚本来生成文档。
远景
想要了解IGListKit的长期目标和愿景,请阅读Vision。
贡献
请查看CONTRIBUTING来了解如何参与贡献。在 Instagram,我们每日都会同步开源版本的IGListKit,因此我们总是在测试最新的改动。但是这也需要所有的改动都需要经历完全的测试,并且遵守我们的开发风格。
我们有一系列新人任务,来帮助新人学习如何参入其中。
License
IGListKit 遵循MIT-licensed。
/Examples/目录下的文件,在文档里指明了它们各自所遵循的协议。文档遵循CC-BY-4.0。