daangn/KarrotListKit
UIKit 기반의 선언형 리스트 프레임워크로 SwiftUI로의 마이그레이션 비용을 낮춘다
145+0이번 주0 찜
7포크1이슈
중간맛 분석
Swift 언어, UIKit 기반이면서 선언형 를 제공한다. 난이도는 중간 정도다. Component, List, Section, Cell로 구성된 명확한 구조로 바로 프로덕션 앱에 적용할 수 있다. 페이지네이션, 프리페칭, 동적 사이징, 배치 업데이트 전략 등 실제 필요한 기능들이 모두 포함되어 있고, Swift Manager로 간편하게 설치한다.
이런 레포예요
이럴 때 쓰면 좋아요
- 큰 데이터셋을 다루는 전자상거래 또는 소셜 피드 앱에서 부드러운 스크롤 성능 필요 시
- 기존 UIKit 프로젝트를 SwiftUI로 점진적으로 마이그레이션하려는 팀
- 복잡한 리스트 레이아웃과 인터랙션을 선언형으로 간단하게 관리하고 싶을 때
핵심 기능
선언형 Component 기반 UI 구성DifferenceKit 기반 최적화된 diffing 알고리즘페이지네이션, 프리페칭, 동적 사이징 지원
대안 대비 차별점
UIKit을 기반으로 하면서도 SwiftUI와 유사한 선언형 API를 제공하므로 기존 앱에서 마이그레이션 비용 없이 현대적인 개발 경험을 얻을 수 있다.
준비물
- Swift 5.7 이상
- Xcode 14 이상
- iOS 13 이상
바로 시작하기
-
Xcode에서 Package dependencies 추가 Xcode에서 Project → Package dependencies → Add Package Dependency를 선택한다.
-
패키지 URL 입력 검색창에 다음 URL을 입력한다:
https://github.com/daangn/KarrotListKit
-
버전 선택 후 추가 원하는 버전을 선택하고 Next, Finish를 클릭한다.
-
프로젝트에 import 사용할 파일에서 다음을 추가한다:
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
)
)
- List 구성 및 적용
let list = List {
Section(id: "Section1") {
Cell(
id: "Cell1",
component: ButtonComponent(viewModel: .init(title: "Title"))
)
}
}
collectionViewAdapter.apply(
list,
updateStrategy: .animatedBatchUpdates
) {
// 완료 후 처리
}
별 추이 · 7일
145+0 / 7일
활용성 · 따라 만들기 좋은가
샘플 점수 20/100
- 관대한 라이선스
- 테스트 있음
- 예제 디렉토리
- 최근 활동
- AGENTS.md
- llms.txt
- 템플릿
⚪ 최근 활동 정보 없음 · 2024년 생성
이 레포에 깃밥 배지 달기
[](https://www.gitbap.com/r/daangn/KarrotListKit)🔌 클로드에서 바로 써보기
깃밥을 클로드에 연결하면 이런 레포를 클로드·커서·Codex에서 바로 찾고 체험할 수 있어요.
방법 ① 커넥터 URL
클로드 설정 → 커넥터에 이 주소를 붙여넣기.
https://www.gitbap.com/api/mcp방법 ② 플러그인 (체험까지)
플러그인을 설치하면 /gitbap-trending·/gitbap-try 슬래시 커맨드로 레포를 그 자리에서 체험. Claude Code에서 아래 두 줄을 차례로 실행하세요.
/plugin marketplace add jakeparkcolde/gitbap-cowork/plugin install gitbap-cowork@gitbapAI가 README 기반으로 요약했습니다 · 원문 보기