Files
subochev d5aa844fa0 design: макеты 15 экранов + принципы Android + откуда взят код
- design/mockups/ — 15 макетов (одно состояние = один файл), из /tmp перенесены в репо
- design/screenshots/ — те же экраны PNG
- design/PRINCIPLES.md — принципы: что берём у десктопа, что на телефоне иначе
- design/BORROW.md — что откуда: ядро (Nexus), тема (десктопный макет), отрисовка Markdown (ai/assistent)
- design/gen_mockups.py — генератор макетов, путь вывода теперь рядом с ним
- README: разделы «Принципы» и «Откуда код» со ссылками
2026-09-20 13:59:22 +03:00

95 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# agentik-android
Android-клиент агента [agentik](https://git.binom.pw/subochev/agentik).
## Что это
Базовый скелет Android-приложения (Jetpack Compose). Логика диалогов,
сетевые вызовы и экраны будут навешиваться следующими задачами; пока
есть только стартовый экран и тёмная тема, согласованная с десктопным
клиентом.
## Ядро
Агент живёт в Nexus (`caffeine`, `pw.binom.agentik:client`). Версия —
в `gradle/libs.versions.toml` (`agentik = "5"`). Библиотека движок
не задаёт — на Android он собирается через
`agentikHttpClient(OkHttp, token) { ... }` поверх `ktor-client-okhttp`.
## Сборка
Нужен `local.properties` с `sdk.dir`:
```properties
sdk.dir=/root/Android/Sdk
```
Этот файл **не коммитится** (см. `.gitignore`).
Сборка debug-APK:
```bash
export ANDROID_HOME=/root/Android/Sdk
./gradlew :app:assembleDebug
```
Артефакт: `app/build/outputs/apk/debug/app-debug.apk`.
## Дизайн
Одна тема — тёмная. Цвета в `app/src/main/kotlin/pw/binom/agentik/android/ui/theme/Color.kt`:
| Слот | Значение |
|-----------------|--------------|
| `Background` | `#121218` |
| `Surface` | `#17212B` |
| `Accent` | `#6AB2F2` |
| `OnBackground` | `#EBEBEB` |
| `Muted` | `#768C9E` |
| `ErrorRed` | `#EC3942` |
Экраны должны читать `MaterialTheme.colorScheme.*`, а не палитру
напрямую.
**Макеты экранов — в `design/`**: пятнадцать экранов, по одному состоянию на
файл, плюс те же экраны картинками. Смотреть — открыв `design/mockups/*.html`
в браузере. Разбор — `design/README.md`.
## Принципы
**Что куда и как переходить — принципы описаны в десктопном клиенте**, он
эталон требований и макетов:
[`subochev/agentik-desktop`](https://git.binom.pw/subochev/agentik-desktop) —
`REQUIREMENTS.md`, `approved/README.md`, `THEMES.md`, `STORAGE.md`, `CACHE.md`.
Копий этих документов здесь нет намеренно: два источника правды разъедутся.
**Чем Android отличается от десктопа** — отдельный документ:
`design/PRINCIPLES.md`. Коротко: принципы те же, меняется обёртка — телефон
всегда узкий (десктопные требования про широкое и узкое окно к нам не
относятся), системная кнопка и жест «Назад» вместо кнопки внутри узкого окна,
шторки снизу вместо модальных окон, нет наведения курсора, есть клавиатура
и системные разрешения.
## Откуда код
Что берём и откуда — `design/BORROW.md`. Коротко:
| Что | Откуда | Состояние |
|---|---|---|
| Ядро агента | `subochev/agentik` → Nexus `caffeine`, `pw.binom.agentik:client` | подключено |
| Скелет и тема | свой, этот репозиторий | есть |
| **Отрисовка Markdown** | **[`ai/assistent`](https://git.binom.pw/ai/assistent)**, коммит `2c5b3f9` | **ещё не перенесена** |
| Макеты экранов | свои, из одобренного десктопного дизайна | в `design/` |
**Отрисовку Markdown писать не надо — её надо взять** из `ai/assistent`: четыре
файла, разобраны в `design/BORROW.md` (что копировать, что нет, как переносить
на Android). Модуль оттуда собран под Compose Desktop — целиком как зависимость
не подключается, файлы копируются к нам. Единственное, что придётся переделать —
открытие ссылок: `java.awt.Desktop` на телефоне нет, вместо него системный
`Intent`.
Цвета темы пришли из одобренного десктопного макета
`agentik-desktop/approved/001-sidebar-utility.html` — согласованы с десктопом,
не выдуманы заново.