这个项目能做什么

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 中按 scheme 使用 CMD+U 运行。其他文档位于单独的 `native-docs` 仓库中。 依赖项包括第一方库 Prelude(Swift 标准库中缺失的类型和函数)和 ReactiveExtensions(添加到 ReactiveCocoa 的运算符,基于 ReactiveSwift 构建),以及第三方项目,如 AlamofireImage、SnapshotTesting、Apollo、Stripe、Kingfisher、SwiftSoup、Facebook SDK、Firebase、Appboy 和 PerimeterX。第三方声明位于 `NOTICE.md` 中。 贡献主要以 GitHub issues 的形式欢迎,用于反馈和错误报告,并附有说明,要求包含操作系统、设备、版本号和重现步骤。行为准则适用于所有参与者。该项目根据 Apache License 2.0 许可,Copyright 2021 Kickstarter, PBC。