Dexo - 一个面向 Discourse 的原生 iOS 客户端

大家好!

我想分享一下我一直在使用 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。

12 个赞