- design/mockups/ — 15 макетов (одно состояние = один файл), из /tmp перенесены в репо - design/screenshots/ — те же экраны PNG - design/PRINCIPLES.md — принципы: что берём у десктопа, что на телефоне иначе - design/BORROW.md — что откуда: ядро (Nexus), тема (десктопный макет), отрисовка Markdown (ai/assistent) - design/gen_mockups.py — генератор макетов, путь вывода теперь рядом с ним - README: разделы «Принципы» и «Откуда код» со ссылками
4.6 KiB
agentik-android
Android-клиент агента 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:
sdk.dir=/root/Android/Sdk
Этот файл не коммитится (см. .gitignore).
Сборка debug-APK:
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 —
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, коммит 2c5b3f9 |
ещё не перенесена |
| Макеты экранов | свои, из одобренного десктопного дизайна | в design/ |
Отрисовку Markdown писать не надо — её надо взять из ai/assistent: четыре
файла, разобраны в design/BORROW.md (что копировать, что нет, как переносить
на Android). Модуль оттуда собран под Compose Desktop — целиком как зависимость
не подключается, файлы копируются к нам. Единственное, что придётся переделать —
открытие ссылок: java.awt.Desktop на телефоне нет, вместо него системный
Intent.
Цвета темы пришли из одобренного десктопного макета
agentik-desktop/approved/001-sidebar-utility.html — согласованы с десктопом,
не выдуманы заново.