[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-70816":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":16,"starSnapshotCount":16,"syncStatus":35,"lastSyncTime":36,"discoverSource":37},70816,"IGListKit","Instagram\u002FIGListKit","Instagram","A data-driven UICollectionView framework for building fast and flexible lists.","https:\u002F\u002Finstagram.github.io\u002FIGListKit\u002F",null,"Objective-C",13069,1539,319,59,0,4,5,11,12,81.16,"MIT License",false,"main",true,[27,28,29,30,31],"diffing","instagram","ios","objective-c","uicollectionview","2026-06-12 04:00:57","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FInstagram\u002FIGListKit\u002Fmain\u002FResources\u002Flogo.png\" width=450 \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FInstagram\u002FIGListKit\u002Factions\u002Fworkflows\u002FCI.yml\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002FInstagram\u002FIGListKit\u002FCI.yml\" alt=\"Build Status\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fcoveralls.io\u002Fgithub\u002FInstagram\u002FIGListKit?branch=main\">\u003Cimg src=\"https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002FInstagram\u002FIGListKit\u002Fbadge.svg?branch=main\" alt=\"Coverage Status\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fcocoapods.org\u002Fpods\u002FIGListKit\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fv\u002FIGListKit.svg?style=flat\" alt=\"Pods Version\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Finstagram.github.io\u002FIGListKit\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fp\u002FIGListKit.svg?style=flat\" alt=\"Platforms\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCarthage-compatible-brightgreen.svg?style=flat\" alt=\"Carthage Compatible\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n----------------\n\nA data-driven `UICollectionView` framework for building fast and flexible lists.\n\n|         | Main Features  |\n----------|-----------------\n&#128581; | Never call `performBatchUpdates(_:, completion:)` or `reloadData()` again\n&#127968; | Better architecture with reusable cells and components\n&#128288; | Create collections with multiple data types\n&#128273; | Decoupled diffing algorithm\n&#9989;   | Fully unit tested\n&#128269; | Customize your diffing behavior for your models\n&#128241; | Simply `UICollectionView` at its core\n&#128640; | Extendable API\n&#128038; | Written in Objective-C with full Swift interop support\n\n`IGListKit` is built and maintained with &#10084;&#65039; by [Instagram engineering](https:\u002F\u002Fengineering.instagram.com\u002F).\nWe use the open source version `main` branch in the Instagram app.\n\n## Multilingual translation\n\n[Chinese README](README.zh.md)\n\n## Requirements\n\n- Swift 5.1+\n- iOS 11.0+\n- tvOS 11.0+\n- macOS 10.13+ *(diffing algorithm components only)*\n- Interoperability with Swift 3.0+\n\n## Installation\n\n### CocoaPods\n\nThe preferred installation method is with [CocoaPods](https:\u002F\u002Fcocoapods.org). Add the following to your `Podfile`:\n\n```ruby\npod 'IGListKit', '~> 5.2.0'\n```\n\n### Carthage\n\nFor [Carthage](https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage), add the following to your `Cartfile`:\n\n```ogdl\ngithub \"Instagram\u002FIGListKit\" ~> 5.2.0\n```\n\n### Swift Package Manager\n\nFor [Swift Package Manager](https:\u002F\u002Fswift.org\u002Fpackage-manager\u002F):\n\n```\nTo integrate using Xcode:\n\nFile -> Swift Packages -> Add Package Dependency\n\nEnter package URL: https:\u002F\u002Fgithub.com\u002FInstagram\u002FIGListKit, and select the latest release.\n```\n\n> For advanced usage, see our [Installation Guide](https:\u002F\u002Finstagram.github.io\u002FIGListKit\u002Finstallation.html).\n\n## Getting Started\n\nTry out IGListKit by opening any of the sample apps available in the `Examples ` directory.\n\n- Our [Getting Started guide](https:\u002F\u002Finstagram.github.io\u002FIGListKit\u002Fgetting-started.html)\n- Ray Wenderlich's [IGListKit Tutorial: Better UICollectionViews](https:\u002F\u002Fwww.raywenderlich.com\u002F147162\u002Figlistkit-tutorial-better-uicollectionviews)\n- Our [example projects](https:\u002F\u002Fgithub.com\u002FInstagram\u002FIGListKit\u002Ftree\u002Fmain\u002FExamples)\n- Ryan Nystrom's [talk at try! Swift NYC](https:\u002F\u002Facademy.realm.io\u002Fposts\u002Ftryswift-ryan-nystrom-refactoring-at-scale-lessons-learned-rewriting-instagram-feed\u002F)(Note: this talk was for an earlier version. Some APIs have changed.)\n- [Migrating an UITableView to IGListCollectionView](https:\u002F\u002Fmedium.com\u002Fcocoaacademymag\u002Figlistkit-migrating-an-uitableview-to-iglistkitcollectionview-65a30cf9bac9), by Rodrigo Cavalcante\n- [Keeping data fresh in Buffer for iOS with AsyncDisplayKit, IGListKit & Pusher](https:\u002F\u002Foverflow.buffer.com\u002F2017\u002F04\u002F10\u002Fkeeping-data-fresh-buffer-ios-asyncdisplaykit-iglistkit-pusher\u002F), Andy Yates, Buffer\n\n## Documentation\n\nYou can find [the docs here](https:\u002F\u002Finstagram.github.io\u002FIGListKit). Documentation is generated with [jazzy](https:\u002F\u002Fgithub.com\u002Frealm\u002Fjazzy) and hosted on [GitHub-Pages](https:\u002F\u002Fpages.github.com).\n\nTo regenerate docs, run `.\u002Fscripts\u002Fbuild_docs.sh` from the root directory in the repo.\n\n## Vision\n\nFor the long-term goals and \"vision\" of `IGListKit`, please read our [Vision](https:\u002F\u002Fgithub.com\u002FInstagram\u002FIGListKit\u002Fblob\u002Fmain\u002FGuides\u002FVISION.md) doc.\n\n## Contributing\n\nPlease see the [CONTRIBUTING](https:\u002F\u002Fgithub.com\u002FInstagram\u002FIGListKit\u002Fblob\u002Fmain\u002F.github\u002FCONTRIBUTING.md) 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.\n\nWe have a set of [starter tasks](https:\u002F\u002Fgithub.com\u002FInstagram\u002FIGListKit\u002Fissues?q=is%3Aissue+is%3Aopen+label%3Astarter-task) that are great for beginners to jump in on and start contributing.\n\n## License\n\n`IGListKit` is [MIT-licensed](.\u002FLICENSE.md).\n\nThe files in the `\u002FExamples\u002F` directory are licensed under a separate license as specified in each file. Documentation is licensed [CC-BY-4.0](https:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby\u002F4.0\u002F).\n\n## Legal\n\nCopyright © Meta Platforms, Inc &#x2022; \u003Ca href=\"https:\u002F\u002Fopensource.fb.com\u002Flegal\u002Fterms\">Terms of Use\u003C\u002Fa> &#x2022; \u003Ca href=\"https:\u002F\u002Fopensource.fb.com\u002Flegal\u002Fprivacy\">Privacy Policy\u003C\u002Fa>\n","IGListKit 是一个用于构建快速且灵活列表的数据驱动型 UICollectionView 框架。它通过消除对 `performBatchUpdates(_:, completion:)` 和 `reloadData()` 的直接调用来简化开发流程，支持多种数据类型组合展示，并提供可定制的差异计算算法以优化性能。该框架采用模块化设计，拥有强大的单元测试覆盖度和扩展性，完全支持 Swift 与 Objective-C 的互操作。适用于需要高性能、高灵活性列表显示的应用场景，如社交媒体、电子商务等复杂列表界面的 iOS 应用开发。",2,"2026-06-11 03:34:20","high_star"]