프로젝트 소개

Kickstarter for iOS는 Kickstarter 네이티브 iOS 애플리케이션의 공식 오픈소스 릴리스로, 회사의 네이티브 팀이 앱을 어떻게 구축하고 유지 관리하는지에 대한 교육용 자료로 공개되었다. Android 버전도 별도로 오픈소스로 제공된다. 시작하려면 Xcode(README에는 Xcode 14.3 / Swift 5.8 지원이 명시되어 있음)와 저장소 클론이 필요하다. `KsApi.Secrets.isOSS`를 `true`로 설정하면 하드코딩된 데이터를 즉시 제공하는 목 버전이 활성화되어, 실제 백엔드 자격 증명 없이도 앱을 탐색할 수 있다. README에 설명된 주목할 만한 엔지니어링 관행: - 스냅샷 테스트: `Kickstarter-Framework-iOS`의 각 기능 폴더에는 snapshots 디렉터리가 있으며, 여러 언어, 기기, 경계 사례 상태를 다루는 약 600장의 스크린샷을 보관하여 UI 동작을 안정적으로 유지하는 데 사용된다. - 뷰 모델: 함수형 코어를 중심으로 부수 효과를 격리하는 가벼운 방법으로 사용되며, 입력 신호를 출력 신호로 매핑하는 순수 함수로 작성된다. 현지화, 접근성, 이벤트 추적을 포함한 광범위한 테스트가 수반된다. 테스트는 명령줄에서 `make test-all`로 실행하거나, Xcode에서 스킴별로 CMD+U를 눌러 실행할 수 있다. 추가 문서는 별도의 `native-docs` 저장소에 있다. 의존성으로는 자사 라이브러리인 Prelude(Swift 표준 라이브러리에 없는 타입과 함수)와 ReactiveExtensions(ReactiveSwift 기반 ReactiveCocoa에 추가된 연산자), 그리고 AlamofireImage, SnapshotTesting, Apollo, Stripe, Kingfisher, SwiftSoup, Facebook SDK, Firebase, Appboy, PerimeterX 등의 서드파티 프로젝트가 포함된다. 서드파티 고지 사항은 `NOTICE.md`에 있다. 기여는 주로 피드백과 버그 보고를 위한 GitHub 이슈로 환영하며, 운영 체제, 기기, 버전 번호, 재현 단계를 포함하도록 안내한다. 모든 참여자에게 행동 강령이 적용된다. 이 프로젝트는 Apache License 2.0에 따라 라이선스가 부여되며, Copyright 2021 Kickstarter, PBC이다.