AX 爱鲜报

isowords 消失方块单词游戏

isowords 是 Point-Free 团队用 SwiftUI 与 Composable Architecture 打造的 iOS 单词搜索游戏,玩家在会消失的立方体上连接相邻字母组词,字母被使用三次后其方块消失并露出内部新字母。项目开源了完整客户端、服务端与测试代码。

爱鲜报评分

0.0

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 下提供了多个迷你应用,只构建所需模块并设置入口点,例如单独运行引导流程。

快速开始

仓库同时包含客户端与服务端代码,运行前需要:

  1. 安装 git-lfs 以拉取图片等资源,例如使用 Homebrew:
$ brew install git-lfs
$ git lfs install
  1. 使用 Xcode 打开工程并按 README 指引构建对应 target。

具体构建步骤请以仓库 README 的 Getting Started 章节为准,不同 Xcode 版本可能略有差异。

适合谁阅读

  • 想系统学习 Composable Architecture 的 Swift 开发者;
  • 关注大型 SwiftUI 项目模块化与测试策略的工程师;
  • 对客户端 / 服务端共享代码的 monorepo 实践感兴趣的人。

项目配套 Point-Free 的四集视频,可结合源码一起观看,理解会更顺畅。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。