daangn/KarrotListKit

UIKitで宣言的なAPIを使ってリスト画面を効率的に構築できるSwiftフレームワーク

開発の材料自由に使える · Apache-2.0モバイルSwift難易度
145+0今週👀 100
7フォーク1Issue

中辛 の解説

SwiftとUIKitで構築された、DifferenceKitベースの差分検知アルゴリズムを搭載したリスト構築フレームワークです。CollectionViewAdapter・Component・Presentation・Pagination・Prefetchingなどの機能があり、宣言的な設計により学習曲線は緩やかです。Swift Managerで即座に導入でき、DocC公式ドキュメントも充実しています。難易度は中程度で、UIKit経験があれば活用できます。

이런 레포예요

이럴 때 쓰면 좋아요

  • UIKitを使いながらSwiftUI風の宣言的コードでリスト画面を構築したいとき
  • 大規模なデータ変更が頻繁に発生するアプリでアニメーション付き更新を効率的に行いたいとき
  • 将来のSwiftUI移行を見据えてコンポーネント単位の責務分離を進めたいとき

핵심 기능

DifferenceKit統合による高速な差分検知宣言的なList・Section・Cell APICollectionViewAdapterによるUIKit抽象化

대안 대비 차별점

UIKitを使いながらSwiftUIに近い宣言的APIと差分検知を同時に提供し、SwiftUI移行コストを低減させるという点が特徴です。

食べた人たち

実際に使ってみた人の記録です — 一言も完走の記録も、確認のうえで公開しています。

試食評 · 使った人のひとこと

まだ試食評がありません。使ってみたら、最初のひとことをどうぞ。

ほかのリポジトリの試食評を見る →

이 레포로 만든 것들

🖋 완주 인증하기

아직 이 레포로 만든 완주 인증이 없어요. 첫 밥도장을 찍어보세요!

このリポジトリの作り方

はじめてですか? むずかしくありません — 上から順にたどれば、自分の環境で動かして味見できます。

준비물

  • Swift 5.9以上
  • iOS 13以上

바로 시작하기

  1. Xcodeを開き、プロジェクト設定からパッケージ依存関係を追加します。
Project → Package dependencies → Add Package Dependency (+)
  1. リポジトリURLを検索バーに入力します。
https://github.com/daangn/KarrotListKit
  1. 使用するバージョンを指定してNextとFinishをクリックしてインストール完了です。

  2. フレームワークをインポートします。

import KarrotListKit
  1. 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
  )
)
  1. 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日

145+0 / 7일

使いやすさ · まねしやすいか

サンプル評点 20/100
  • ゆるいライセンス
  • テストあり
  • サンプル集
  • 最近の更新
  • AGENTS.md
  • llms.txt
  • テンプレート

更新の情報なし · 2024 年に作成

「모바일」 こういうリポジトリを毎週受け取りませんか?

毎週月曜の朝、選んだ一膳だけ。広告なし · いつでも解除。

自分のリポジトリですか? README にギット飯バッジを貼る
[![깃밥](https://www.gitbap.com/badge/daangn/KarrotListKit.svg)](https://www.gitbap.com/r/daangn/KarrotListKit)
Claude からそのまま使う — ギット飯のつなぎ方

ギット飯を Claude につなぐと、こうしたリポジトリを Claude・Cursor・Codex から直接さがして試せます。

方法 ① コネクタ URL

Claude の設定 → コネクタにこのアドレスを貼り付け。

https://www.gitbap.com/api/mcp
方法 ② プラグイン(試用まで)

プラグインを入れると /gitbap-trending·/gitbap-try のスラッシュコマンドで、その場でリポジトリを試せます。Claude Code で下の 2 行を順に実行してください。

/plugin marketplace add jakeparkcolde/gitbap-cowork
/plugin install gitbap-cowork@gitbap
つなぎ方をくわしく →

AI が README をもとに要約しました · 原文を見る