코드 작성 없이 키보드가 UITextField와 UITextView를 가리지 않도록 해주는 iOS용 드롭인 라이브러리입니다.
Instagram/IGListKit
Instagram이 만든 데이터 기반 UICollectionView 프레임워크로, 자동 diffing을 통해 빠르고 유연한 iOS 목록을 구축합니다.
- 스타
- 13,080
- 포크
- 1,540
- 열린 이슈
- 65
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
IGListKit은 UICollectionView 기반 목록을 만들기 위한 Objective-C 프레임워크입니다. 개발자가 직접 performBatchUpdates나 reloadData를 호출하는 대신 데이터만 정의하면, 프레임워크가 이전 상태와 새 상태의 차이를 계산해 collection view에 업데이트를 적용합니다.
section controller를 통해 데이터 모델과 뷰 로직을 분리하므로, 하나의 컬렉션에서 여러 데이터 유형과 재사용 가능한 셀 또는 컴포넌트를 사용할 수 있습니다. 분리된 diffing 알고리즘이 항목을 비교하며, 모델 비교 방식을 개발자가 맞춤 설정할 수 있습니다. diffing 컴포넌트는 iOS, tvOS, macOS를 지원하고, Swift와 완벽하게 연동됩니다.
IGListKit은 Instagram 엔지니어링 팀이 유지 관리하며 Instagram 앱에서도 사용됩니다. CocoaPods, Carthage, Swift Package Manager로 설치할 수 있고, Examples 디렉터리에 샘플 앱이 포함되어 있습니다.
핵심 기능
- 01UICollectionView의 변경 사항을 자동으로 계산하고 batch update를 적용합니다
- 02section controller를 사용해 여러 데이터 유형을 포함하는 컬렉션을 지원합니다
- 03모델에 맞춰 diffing 동작을 사용자 지정할 수 있습니다
- 04단독으로 사용할 수 있는 분리된 diffing 알고리즘을 제공합니다
- 05Swift와 완벽하게 연동됩니다
활용 사례
- 데이터가 자주 바뀌는 iOS 앱에서 피드 형태 또는 여러 콘텐츠 유형이 섞인 목록을 구축할 때
- 기존 collection view의 수동 performBatchUpdates 및 reloadData 로직을 대체할 때
- 테이블 기반 화면을 컬렉션 기반 레이아웃으로 마이그레이션할 때
빠른 시작
- 1
Podfile에 IGListKit pod를 추가합니다
pod 'IGListKit', '~> 5.2.0' - 2
package URL을 사용해 Xcode에서 Swift Package를 추가합니다
- 3
Examples 디렉터리에서 예제 앱을 열어 사용해 봅니다
사용 전 알아둘 점
- iOS, tvOS, macOS만 대상으로 하며, macOS에서는 diffing 구성 요소만 지원합니다.
- iOS 11.0 이상 및 Swift 5.1 이상이 필요합니다.
- Objective-C로 작성되어 Swift 사용자는 상호 운용 기능을 이용해야 합니다.
토픽
자주 묻는 질문
- IGListKit은(는) 무엇인가요?
- Instagram이 만든 데이터 기반 UICollectionView 프레임워크로, 자동 diffing을 통해 빠르고 유연한 iOS 목록을 구축합니다. IGListKit은 UICollectionView 기반 목록을 만들기 위한 Objective-C 프레임워크입니다. 개발자가 직접 performBatchUpdates나 reloadData를 호출하는 대신 데이터만 정의하면, 프레임워크가 이전 상태와 새 상태의 차이를 계산해 collection view에 업데이트를 적용합니다.
- IGListKit은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- IGListKit은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- IGListKit은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. IGListKit의 마지막 커밋은 2026년 11월 3일입니다.
- IGListKit은(는) 어디에 사용할 수 있나요?
- 데이터가 자주 바뀌는 iOS 앱에서 피드 형태 또는 여러 콘텐츠 유형이 섞인 목록을 구축할 때 기존 collection view의 수동 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 통계는 매일 갱신됩니다.
관련 프로젝트
Photos 앱 편집기를 본떠 회전, 원형 자르기, 가로세로 비율 고정을 지원하는 UIImage 자르기용 iOS 뷰 컨트롤러입니다.
스크롤을 부드럽게 유지하도록 백그라운드 스레드에서 UIKit 스타일 인터페이스를 비동기 렌더링하는 iOS/tvOS 프레임워크입니다.
iOS와 Android에서 사진·동영상 촬영, QR/바코드 스캔, 실시간 프레임 처리를 지원하는 React Native 카메라 라이브러리입니다.
선언형 TypeScript 컴포넌트를 웹 뷰나 JS 브리지 없이 iOS, Android, macOS 네이티브 뷰로 컴파일하는 크로스 플랫폼 UI 프레임워크입니다.
Airbnb가 개발한 iOS 라이브러리로, bodymovin JSON으로 내보낸 After Effects 벡터 애니메이션을 실시간으로 네이티브 렌더링합니다.