На главную

ACTION DECK / ТЕХНОЛОГИИ

Сначала игра.
Потом всё остальное.

Приложение хранит игровые данные на устройстве. Сеть помогает обновлять библиотеку и синхронизировать данные, когда это нужно.

KotlinJetpack ComposeRoomDjangoDockerOffline-first

Android

Технологии Android-приложения
ЯзыкKotlin 2.1.21
ИнтерфейсJetpack Compose + Material 3
НавигацияNavigation Compose 2.9.0
Локальная базаRoom (SQLite) 2.7.1
Внедрение зависимостейKoin 3.5.6
HTTP-клиентKtor (OkHttp) 2.3.12
ИзображенияCoil 2.7.0
АрхитектураMVVM + Repository
Android9+ (min SDK 28, target SDK 36)

Сервер

Технологии сервера
ФреймворкDjango (Python)
База данныхPostgreSQL
КонтейнеризацияDocker Compose
HTTPS и reverse proxyCaddy
APIapi.actiondeck.ru

Архитектура приложения

MVVM + Repository разделяет интерфейс, состояние экранов и работу с данными. Koin связывает зависимости. Room сохраняет локальную библиотеку и пользовательские данные.

  1. 01 / ИнтерфейсMainActivity → Splash → Onboarding → MainScreen
  2. 02 / Состояние экрановCharactersVM, LibraryVM, HomebrewVM, ActionDetailVM
  3. 03 / ДанныеRoom · Ktor · ContentSyncManager · DataStore · SrdDataLoader
  4. 04 / ЗависимостиKoin · DatabaseModule

Обновление библиотеки

  1. Приложение проверяет манифест контента и сравнивает его версию с локальной.
  2. Если версия новее, загружает каталог с сервера и проверяет данные.
  3. Библиотека обновляется атомарно в Room. Пользовательский Homebrew сохраняется отдельно.
  4. Без сети приложение использует локальные данные и встроенную библиотеку.

Гостевой режим и облако

Для начала игры аккаунт не требуется. Вход через Google позволяет синхронизировать пользовательские данные. Информация об обработке данных — в политике конфиденциальности.

Из приложения

Настоящие экраны: от создания персонажа до редактирования собственных действий.

Инфраструктура

Сайт и API работают через Caddy с HTTPS. Django и PostgreSQL развёрнуты в Docker Compose. Release-сборка Android использует R8, minify, shrinkResources и подпись приложения.

Скачать Action Deck