UIKitで宣言的なAPIを使ってリスト画面を効率的に構築できるSwiftフレームワーク
中辛 の解説
SwiftとUIKitで構築された、DifferenceKitベースの差分検知アルゴリズムを搭載したリスト構築フレームワークです。CollectionViewAdapter・Component・Presentation・Pagination・Prefetchingなどの機能があり、宣言的な設計により学習曲線は緩やかです。Swift Managerで即座に導入でき、DocC公式ドキュメントも充実しています。難易度は中程度で、UIKit経験があれば活用できます。
이런 레포예요
이럴 때 쓰면 좋아요
- UIKitを使いながらSwiftUI風の宣言的コードでリスト画面を構築したいとき
- 大規模なデータ変更が頻繁に発生するアプリでアニメーション付き更新を効率的に行いたいとき
- 将来のSwiftUI移行を見据えてコンポーネント単位の責務分離を進めたいとき
핵심 기능
대안 대비 차별점
UIKitを使いながらSwiftUIに近い宣言的APIと差分検知を同時に提供し、SwiftUI移行コストを低減させるという点が特徴です。
食べた人たち
実際に使ってみた人の記録です — 一言も完走の記録も、確認のうえで公開しています。
このリポジトリの作り方
はじめてですか? むずかしくありません — 上から順にたどれば、自分の環境で動かして味見できます。
준비물
- Swift 5.9以上
- iOS 13以上
바로 시작하기
- Xcodeを開き、プロジェクト設定からパッケージ依存関係を追加します。
Project → Package dependencies → Add Package Dependency (+)
- リポジトリURLを検索バーに入力します。
https://github.com/daangn/KarrotListKit
-
使用するバージョンを指定してNextとFinishをクリックしてインストール完了です。
-
フレームワークをインポートします。
import KarrotListKit
- CollectionViewAdapterを初期化します。
private let configuration = CollectionViewAdapterConfiguration()
private let layoutAdapter = CollectionViewLayoutAdapter()
private lazy var collectionViewAdapter = CollectionViewAdapter(
configuration: configuration,
collectionView: collectionView,
layoutAdapter: layoutAdapter
)
private lazy var collectionView = UICollectionView(
frame: .zero,
collectionViewLayout: UICollectionViewCompositionalLayout(
sectionProvider: layoutAdapter.sectionLayout
)
)
- Componentを定義してリストに適用します。
let list = List {
Section(id: "Section1") {
Cell(
id: "Cell1",
component: ButtonComponent(viewModel: .init(title: "Button"))
)
}
}
collectionViewAdapter.apply(list, updateStrategy: .animatedBatchUpdates) {
// 完了処理
}
ギット飯トライで味見
入れるのが面倒で少し不安だったなら — 安全スキャンからインストールまで、ターミナル一行で終わります。
ターミナルに貼り付ければ、ギット飯の安全スキャン → 隔離フォルダへ clone → インストール → 実行方法の案内まで自動です。はじめてでも大丈夫 — この一行だけです。
npx gitbap-try daangn/KarrotListKit
Node.js さえあれば、インストールなしで動きます · ギット飯トライとは? →
スター推移 · 7日
使いやすさ · まねしやすいか
- ゆるいライセンス
- テストあり
- サンプル集
- 最近の更新
- AGENTS.md
- llms.txt
- テンプレート
更新の情報なし · 2024 年に作成
「모바일」 こういうリポジトリを毎週受け取りませんか?
毎週月曜の朝、選んだ一膳だけ。広告なし · いつでも解除。
自分のリポジトリですか? README にギット飯バッジを貼る
[](https://www.gitbap.com/r/daangn/KarrotListKit)Claude からそのまま使う — ギット飯のつなぎ方
ギット飯を Claude につなぐと、こうしたリポジトリを Claude・Cursor・Codex から直接さがして試せます。
Claude の設定 → コネクタにこのアドレスを貼り付け。
https://www.gitbap.com/api/mcpプラグインを入れると /gitbap-trending·/gitbap-try のスラッシュコマンドで、その場でリポジトリを試せます。Claude Code で下の 2 行を順に実行してください。
/plugin marketplace add jakeparkcolde/gitbap-cowork/plugin install gitbap-cowork@gitbapAI が README をもとに要約しました · 原文を見る