# Dexo — нативный клиент для Discourse на iOS

**URL:** https://meta.discourse.org/t/dexo-a-native-ios-client-for-discourse/399129
**Category:** Extras
**Created:** [24.Март.2026 09:38:31 UTC](https://meta.discourse.org/t/dexo-a-native-ios-client-for-discourse/399129 "2026-03-24T09:38:31Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![Eilgnaw](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eilgnaw/32/548026_2.png) [@Eilgnaw](https://meta.discourse.org/u/Eilgnaw)
#### Post date: [24.Март.2026 09:38:31 UTC](https://meta.discourse.org/t/dexo-a-native-ios-client-for-discourse/399129/1 "2026-03-24T09:38:31Z")

</div>

Всем привет!

Хочу поделиться **Dexo** — нативным iOS-клиентом для форумов Discourse, который я разрабатываю с использованием UIKit и Swift.

## Скриншоты

| Главная | Детали темы | Категории |
| --- | --- | --- |
| ![upload home.png](https://global.discourse-cdn.com/meta/original/4X/9/a/e/9ae76ce267e13c542c2e13e2b9aff90af5b6abdf.png) | ![detail.png](https://global.discourse-cdn.com/meta/original/4X/1/e/1/1e1a844d298cb3cd8784bf5ea932c5a3898daa93.png) | ![cate.png](https://global.discourse-cdn.com/meta/original/4X/6/6/d/66dfe867e7d2ca67ae56667b3421a9277258591c.png) |

## Возможности

- **Управление несколькими форумами** — Добавление, переключение между несколькими экземплярами Discourse и их удаление в одном приложении
- **Просмотр тем** — Списки последних и популярных тем с бесконечной прокруткой
- **Категории и теги** — Просмотр тем по категории или тегу
- **Детали темы** — Полная отрисовка HTML-контента с просмотрщиком изображений, блоками кода с подсветкой синтаксиса и раскрывающимися секциями
- **Ответы** — Ответ на тему или на конкретный пост
- **Безопасная авторизация** — Использует поток API-ключа пользователя Discourse с шифрованием RSA; учётные данные хранятся в связке ключей iOS (Keychain)
- **Внешний вид** — Системный / Светлый / Тёмный режим

### В планах

- Уведомления и личные сообщения
- Создание тем

## Стек технологий

| Компонент | Детали |
| --- | --- |
| Язык | Swift 5 |
| UI-фреймворк | UIKit |
| Минимальная версия | iOS 17.0 |
| Архитектура | MVVM + `@Observable` |
| База данных | SQLite (GRDB) |
| Сеть | Alamofire |
| Загрузка изображений | SDWebImage |

## Как работает авторизация

Dexo следует спецификации [API-ключа пользователя Discourse](https://meta.discourse.org/t/user-api-keys-specification/48536).  
Приложение генерирует пару ключей RSA на устройстве, отправляет открытый ключ вашему экземпляру Discourse для авторизации и безопасно сохраняет полученный API-ключ в связке ключей iOS.  
Пароли на устройстве не хранятся.

## TestFlight

> **[Join the Dexo beta](https://testflight.apple.com/join/3BnxhsWs)**
>
> Available on iOS

## Исходный код

Проект полностью открыт:

> **[GitHub - Eilgnaw/dexo](https://github.com/Eilgnaw/dexo)**
>
> Contribute to Eilgnaw/dexo development by creating an account on GitHub.

## Сборка из исходного кода

Требуется Xcode 16+ и [mise](https://mise.jdx.dev):

```bash
make setup # Установка инструментов, загрузка зависимостей, генерация проекта Xcode

Затем откройте dexo.xcodeproj, выберите свою команду разработчика и запустите сборку.

```

## Обратная связь

Это всё ещё работа в процессе.  
Буду рад услышать ваши отзывы, предложения по новым функциям или сообщения об ошибках.  
Не стесняйтесь отвечать здесь или открыть issue на GitHub.

---

_[View the full topic](https://meta.discourse.org/t/dexo-a-native-ios-client-for-discourse/399129)._
