Skip to content

Latest commit

 

History

History
97 lines (75 loc) · 3.11 KB

File metadata and controls

97 lines (75 loc) · 3.11 KB

Dexo App Icon

Dexo

一个原生 iOS Discourse 论坛客户端,使用 UIKit + Swift 构建。

English | 中文

截图

论坛首页 帖子详情 板块分类
论坛首页 帖子详情 板块分类

功能

  • 多论坛管理 — 添加、切换、删除多个 Discourse 实例
  • 帖子浏览 — 最新 / 热门话题列表,无限滚动加载
  • 分类 & 标签 — 按板块或标签浏览话题
  • 帖子详情 — HTML 内容渲染、图片查看、代码块展示、折叠内容
  • 回复 & 发帖 — 回复话题或针对特定楼层回复,发布新帖子
  • 通知 — 通过 MessageBus 长轮询实时接收通知更新
  • 私信 — 查看私信列表,未读标记,点击自动标记已读
  • 安全认证 — 基于 RSA 加密的 Discourse User API Key 认证流程,凭证存储在 Keychain
  • 外观设置 — 跟随系统 / 浅色 / 深色模式,支持自定义主题色

技术栈

项目 说明
语言 Swift 5
UI 框架 UIKit
最低版本 iOS 15.0
架构 MVVM + @Observable
构建工具 Tuist
数据库 SQLite (GRDB)
网络 Alamofire
图片加载 SDWebImage
图片查看 Lightbox

快速开始

前置要求

  • Xcode 16+
  • mise (工具版本管理)

构建

# 安装工具、拉取依赖、生成 Xcode 工程(一步到位)
make setup

# 后续只需重新生成工程
make generate

# 清理
make clean

执行完成后打开生成的 dexo.xcodeproj,选择开发团队后即可编译运行。

项目结构

dexo/
├── Core/
│   ├── Auth/           # 认证流程、Keychain、RSA 加解密
│   ├── Networking/     # DoH URLProtocol
│   ├── Observable/     # ObservableViewController 基类
│   └── Settings/       # 应用偏好设置
├── Database/           # GRDB 数据库管理 & 数据模型
├── Features/
│   ├── ForumList/      # 论坛列表
│   ├── ForumDetail/
│   │   ├── Home/       # 最新 / 热门话题
│   │   ├── Categories/ # 板块分类
│   │   ├── Tags/       # 标签话题
│   │   ├── Messages/   # 私信
│   │   ├── Notifications/ # 通知
│   │   └── TopicDetail/   # 帖子详情 & 回复
│   └── Settings/       # 设置页
├── Networking/
│   ├── DiscourseAPI.swift    # API 客户端
│   ├── DiscourseRouter.swift # 路由定义
│   └── Models/               # API 响应模型
└── Assets.xcassets/

友链