d5aa844fa0
- design/mockups/ — 15 макетов (одно состояние = один файл), из /tmp перенесены в репо - design/screenshots/ — те же экраны PNG - design/PRINCIPLES.md — принципы: что берём у десктопа, что на телефоне иначе - design/BORROW.md — что откуда: ядро (Nexus), тема (десктопный макет), отрисовка Markdown (ai/assistent) - design/gen_mockups.py — генератор макетов, путь вывода теперь рядом с ним - README: разделы «Принципы» и «Откуда код» со ссылками
95 lines
4.6 KiB
Markdown
95 lines
4.6 KiB
Markdown
# 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` — согласованы с десктопом,
|
||
не выдуманы заново.
|