Skip to content

Eilgnaw/dexo

Repository files navigation

Dexo App Icon

Dexo

A native iOS client for Discourse forums, built with UIKit + Swift.

English | 中文

Screenshots

Home Topic Detail Categories
Home Topic Detail Categories

Features

  • Multi-Forum Management — Add, switch, and remove multiple Discourse instances
  • Topic Browsing — Latest / Top topic lists with infinite scrolling
  • Categories & Tags — Browse topics by category or tag
  • Topic Detail — HTML content rendering, image viewer, code blocks, collapsible sections
  • Reply & Create Topic — Reply to topics or specific posts, publish new topics
  • Notifications — Real-time notification updates via MessageBus long-polling
  • Private Messages — View messages with unread indicators, mark as read on tap
  • Secure Auth — RSA-based Discourse User API Key authentication with Keychain storage
  • Appearance — System / Light / Dark mode with custom theme color support

Tech Stack

Component Detail
Language Swift 5
UI Framework UIKit
Minimum Target iOS 15.0
Architecture MVVM + @Observable
Build Tool Tuist
Database SQLite (GRDB)
Networking Alamofire
Image Loading SDWebImage
Image Viewer Lightbox

Getting Started

Prerequisites

  • Xcode 16+
  • mise (runtime version manager)

Build

# Install tools, fetch dependencies, and generate the Xcode project
make setup

# Re-generate the project only
make generate

# Clean
make clean

Open the generated dexo.xcodeproj, select your development team, then build and run.

Project Structure

dexo/
├── Core/
│   ├── Auth/           # Auth flow, Keychain, RSA encryption
│   ├── Networking/     # DoH URLProtocol
│   ├── Observable/     # ObservableViewController base class
│   └── Settings/       # App preferences
├── Database/           # GRDB database manager & models
├── Features/
│   ├── ForumList/      # Forum list
│   ├── ForumDetail/
│   │   ├── Home/       # Latest / Top topics
│   │   ├── Categories/ # Category browsing
│   │   ├── Tags/       # Tag-based browsing
│   │   ├── Messages/   # Private messages
│   │   ├── Notifications/ # Notifications
│   │   └── TopicDetail/   # Topic detail & replies
│   └── Settings/       # Settings
├── Networking/
│   ├── DiscourseAPI.swift    # API client
│   ├── DiscourseRouter.swift # Route definitions
│   └── Models/               # API response models
└── Assets.xcassets/

Links

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages