Repolode
Instagram

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. 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 프레임워크로, 자동 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 통계는 매일 갱신됩니다.

관련 프로젝트