大家好!
我想分享一下我一直在使用 UIKit 和 Swift 构建的 Discourse 论坛的原生 iOS 客户端 Dexo。
截图
特性
- 多论坛管理 — 在一个应用中添加、切换和移除多个 Discourse 实例
- 帖子浏览 — 带有无限滚动的最新和热门帖子列表
- 分类和标签 — 按分类或标签浏览帖子
- 帖子详情 — 完整的 HTML 内容渲染,包含图片查看器、语法高亮的代码块和可折叠部分
- 回复 — 回复帖子或回复特定楼层
- 安全认证 — 使用带有 RSA 加密的 Discourse 用户 API 密钥流程;凭证存储在 iOS Keychain 中
- 外观 — 系统/浅色/深色模式
计划中
- 通知和私信
- 创建帖子
技术栈
| 组件 | 详情 |
|---|---|
| 语言 | Swift 5 |
| UI 框架 | UIKit |
| 最低支持 | iOS 17.0 |
| 架构 | MVVM + @Observable |
| 数据库 | SQLite (GRDB) |
| 网络 | Alamofire |
| 图片加载 | SDWebImage |
认证工作原理
Dexo 遵循 Discourse 用户 API 密钥 规范。它在设备上生成一个 RSA 密钥对,将公钥发送到您的 Discourse 实例进行授权,并将生成的 API 密钥安全地存储在 iOS Keychain 中。设备上不存储任何密码。
TestFlight
源代码
该项目完全开源:
从源码构建
需要 Xcode 16+ 和 mise:
make setup # 安装工具、获取依赖、生成 Xcode 项目
然后打开 dexo.xcodeproj,选择您的开发团队,然后运行。
反馈
这仍在开发中。
我很想听听您的反馈、功能请求或错误报告。
请随时在此回复或在 GitHub 上开一个 issue。


