isowords 消失方块单词游戏
isowords 是 Point-Free 团队用 SwiftUI 与 Composable Architecture 打造的 iOS 单词搜索游戏,玩家在会消失的立方体上连接相邻字母组词,字母被使用三次后其方块消失并露出内部新字母。项目开源了完整客户端、服务端与测试代码。
爱鲜报评分
0 人评分
3k
星数
否
中文
Swift
主语言
是
活跃
23
贡献者
人工分析
EDITORIAL推荐理由
这是学习 SwiftUI 与 Composable Architecture 的绝佳实战范例,整个 App 拆分为 86 个模块,展示了超模块化架构、依赖注入与详尽测试的工程实践。客户端与服务端同仓库共享核心逻辑,还包含自动生成 App Store 截图与预览视频的巧思。适合想深入理解大型 Swift 应用架构的开发者研读。
适用场景
- 学习 Composable Architecture 架构设计
- 研究 SwiftUI 大型项目模块化拆分
- 参考客户端与服务端共享代码的 monorepo 实践
- 学习自动化快照测试与 App Store 素材生成
- 作为 iOS 游戏开发与测试工程参考
优点
- 完整开源客户端、服务端与测试套件,学习价值高
- 超模块化设计(86 个模块)显著提升编译速度与预览稳定性
- Composable Architecture 让状态、行为与依赖高度可测
- 客户端与服务端共享核心类型、游戏逻辑与路由代码
- 配套 Point-Free 四集视频讲解,文档与教程丰富
缺点
- 需要 macOS 与 Xcode 环境,并安装 git-lfs 拉取资源
- 依赖 Composable Architecture 等自研库,上手门槛偏高
- 仓库 License 未明确标注,商用需谨慎确认授权
- 代码规模庞大,初学者直接阅读容易迷失
isowords 是什么
isowords 是一款运行在 iOS 上的单词搜索游戏,玩法围绕一个「会消失的立方体」展开:玩家连接相邻字母拼出单词,单词越长得分越高;当某个字母被使用三次后,它所在的方块会消失,露出内部的新字母,从而不断扩展可组合的空间。游戏已上架 App Store,而本仓库开源了它的完整源码,包括 iOS 客户端、服务端以及大量测试。
技术架构亮点
Composable Architecture 驱动
整个应用由 Point-Free 团队自研的 Composable Architecture 支撑,核心思想包括:
- 全局状态集中在单一数据源
Store中; - 行为由可组合的
Reducer实现,大功能拆成小 reducer 再组合; - 所有副作用以 reducer 返回的值显式表达;
- 依赖被包装成简单数据类型,便于替换为 mock。
这样做的收益是:复杂功能可拆分为子领域并通过状态变更通信,第三方 API(如 StoreKit、GameCenter)不再阻碍模拟器运行与测试,详尽的单元与集成测试也能快速编写。
超模块化
客户端与服务端被拆分为 86 个模块,可以只构建所需功能,显著改善编译时间与 SwiftUI 预览稳定性,也让体积受限的 App Clip 得以轻松发布。
客户端 / 服务端同仓库
两端代码放在同一仓库,便于同时运行与调试,并共享大量代码:
- 描述玩家、谜题、移动等的核心类型;
- 随机谜题生成、谜题校验、词典等游戏逻辑;
- 服务端处理请求的路由与客户端发起 API 请求使用同一份代码;
- 集成测试可同时覆盖服务端与 iOS 客户端。
自动化截图与预览视频
App Store 上的截图由快照测试套件自动生成,预览视频则是运行一个精简版 App(TrailerFeature)录屏得到,可在 Xcode 中选择 TrailerPreview 目标本地运行。
预览用迷你应用
针对难以在 SwiftUI 预览中调试的功能,项目在 App/Previews 下提供了多个迷你应用,只构建所需模块并设置入口点,例如单独运行引导流程。
快速开始
仓库同时包含客户端与服务端代码,运行前需要:
- 安装
git-lfs以拉取图片等资源,例如使用 Homebrew:
$ brew install git-lfs
$ git lfs install
- 使用 Xcode 打开工程并按 README 指引构建对应 target。
具体构建步骤请以仓库 README 的 Getting Started 章节为准,不同 Xcode 版本可能略有差异。
适合谁阅读
- 想系统学习 Composable Architecture 的 Swift 开发者;
- 关注大型 SwiftUI 项目模块化与测试策略的工程师;
- 对客户端 / 服务端共享代码的 monorepo 实践感兴趣的人。
项目配套 Point-Free 的四集视频,可结合源码一起观看,理解会更顺畅。
评论
- 暂无评论,来写第一条吧。