Repolode
Instagram

Instagram/IGListKit

Instagram製のデータ駆動型UICollectionViewフレームワーク。自動差分計算により、高速で柔軟なiOSリストを構築できます。

スター
13,080
フォーク
1,540
未解決の Issue
65
最終コミット
3 日前

これは何?

IGListKitは、UICollectionView上にリストを構築するためのObjective-Cフレームワークです。performBatchUpdatesやreloadDataを手動で呼び出す代わりに、開発者がデータを定義すると、フレームワークが変更前後の状態の差分を計算し、UICollectionViewに更新を適用します。

section controllerによってデータモデルとビューのロジックを分離できるため、1つのコレクション内で複数のデータ型や再利用可能なセル、コンポーネントを扱えます。疎結合な差分計算アルゴリズムがアイテムを比較し、モデルの比較方法はカスタマイズできます。差分計算コンポーネントはiOS、tvOS、macOSに対応し、Swiftとの完全な相互運用性も備えています。

IGListKitはInstagramのエンジニアリングチームがメンテナンスしており、Instagramアプリで使用されています。CocoaPods、Carthage、Swift Package Managerからインストールでき、Examplesディレクトリにはサンプルアプリが含まれています。

主な機能

  • 01UICollectionViewの差分を自動計算し、バッチ更新を適用
  • 02section controllerを使い、複数のデータ型を含むコレクションに対応
  • 03モデルに応じて差分計算の動作をカスタマイズ可能
  • 04単独でも利用できる疎結合な差分計算アルゴリズム
  • 05Swiftとの完全な相互運用性

ユースケース

  • データが頻繁に変化するiOSアプリで、フィード形式や複数種類のコンテンツを含むリストを構築する
  • 既存のコレクションビューで、performBatchUpdatesやreloadDataを手動で呼び出す処理を置き換える
  • テーブルベースの画面をコレクションベースのレイアウトに移行する

クイックスタート

  1. 1

    Podfile に IGListKit pod を追加します

    pod 'IGListKit', '~> 5.2.0'
  2. 2

    package URL を使って Xcode から Swift Package を追加します

  3. 3

    Examples ディレクトリからサンプルアプリを開いて試します

使う前に知っておきたいこと

  • iOS、tvOS、macOS のみを対象とし、macOS では diffing コンポーネントのみ利用できます。
  • iOS 11.0 以降と Swift 5.1 以降が必要です。
  • Objective-C で記述されているため、Swift ユーザーは相互運用機能を利用します。

トピック

よくある質問

IGListKit とは?
Instagram製のデータ駆動型UICollectionViewフレームワーク。自動差分計算により、高速で柔軟なiOSリストを構築できます。 IGListKitは、UICollectionView上にリストを構築するためのObjective-Cフレームワークです。performBatchUpdatesやreloadDataを手動で呼び出す代わりに、開発者がデータを定義すると、フレームワークが変更前後の状態の差分を計算し、UICollectionViewに更新を適用します。
IGListKit は無料で使えますか?ライセンスは?
IGListKit は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
IGListKit は今もメンテナンスされていますか?
活発にメンテナンス中。IGListKit の最終コミットは 2026年11月3日 です。
IGListKit は何に使えますか?
データが頻繁に変化するiOSアプリで、フィード形式や複数種類のコンテンツを含むリストを構築する 既存のコレクションビューで、performBatchUpdatesやreloadDataを手動で呼び出す処理を置き換える テーブルベースの画面をコレクションベースのレイアウトに移行する
IGListKit のインストール方法は?
Podfile に IGListKit pod を追加します: pod 'IGListKit', '~> 5.2.0' package URL を使って Xcode から Swift Package を追加します Examples ディレクトリからサンプルアプリを開いて試します
IGListKit はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/Instagram/IGListKit

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト