d5aa844fa0
- design/mockups/ — 15 макетов (одно состояние = один файл), из /tmp перенесены в репо - design/screenshots/ — те же экраны PNG - design/PRINCIPLES.md — принципы: что берём у десктопа, что на телефоне иначе - design/BORROW.md — что откуда: ядро (Nexus), тема (десктопный макет), отрисовка Markdown (ai/assistent) - design/gen_mockups.py — генератор макетов, путь вывода теперь рядом с ним - README: разделы «Принципы» и «Откуда код» со ссылками
82 lines
6.9 KiB
Markdown
82 lines
6.9 KiB
Markdown
# Принципы Android-клиента
|
||
|
||
**Коротко:** принципы те же, что у десктопного клиента. Меняется не смысл,
|
||
а обёртка — телефон всегда узкий, у него своя кнопка «Назад», нет курсора и
|
||
есть клавиатура со шторками. Ниже: что берём как есть, что своё.
|
||
|
||
**Обговорённые принципы лежат в репозитории десктопного клиента** (он — эталон
|
||
требований и макетов):
|
||
|
||
- https://git.binom.pw/subochev/agentik-desktop — файл `REQUIREMENTS.md`
|
||
(требования R1…, разделы «Общее», «Раскладка и адаптивность», «Список
|
||
диалогов» и далее), плюс `approved/README.md` (что одобрено и почему),
|
||
`THEMES.md` (тема и имена цветов), `STORAGE.md`, `CACHE.md`.
|
||
Ссылки даны на `main`; для точного среза — коммит `2c5b3f9`.
|
||
|
||
Мы **не копируем** эти документы себе: один источник правды лучше двух копий,
|
||
которые разъедутся. Здесь только список того, что для телефона иначе.
|
||
|
||
---
|
||
|
||
## ЧАСТЬ 1. Берём как есть
|
||
|
||
1. **Состав экрана.** Что видно в любой момент: список диалогов и открытый
|
||
диалог с полем ввода. Больше обязательного нет (`R2`).
|
||
2. **Список диалогов.** Лента папок («Все чаты», группы, «+»), поиск, список
|
||
со значком, названием, последней строкой, временем, кружком непрочитанных.
|
||
3. **Группы.** «Все чаты» — встроенная: не удаляется и не переименовывается.
|
||
Удаление группы диалоги не удаляет — они возвращаются в «Все чаты».
|
||
У группы только название.
|
||
4. **Ассистенты.** Имя придумывает человек (сервер своего имени не сообщает),
|
||
адрес целиком вместе с путём `/agentik`, отличие в списке — цветом **или**
|
||
картинкой, что-то одно. Картинка **копируется внутрь клиента**, не берётся
|
||
по исходному адресу.
|
||
5. **Проверка связи.** Отдельным экраном поверх: идёт → отвечает → не отвечает,
|
||
внизу «Проверить снова»; добавление доступно только при успехе.
|
||
Запросы — из исходников агента, оба ничего не меняют.
|
||
6. **Цвета.** Берём из схемы по смыслу, **не числом в коде** (`R1.1`). Имена
|
||
по смыслу, а не по виду: «фон», «панель», «акцент», «ошибка», «успех»
|
||
(`R1.2`). Цвета различения ассистентов — **не из схемы**: они
|
||
пользовательские и в другой теме остаются собой (`R1.5`).
|
||
7. **«Нет данных — нет цифры».** Не показываем счётчик, которого нет в
|
||
источниках.
|
||
8. **Сообщения — единственный источник правды.** События от агента — только
|
||
«будильник»; после сигнала догоняем сообщения запросом «что после такого-то».
|
||
|
||
## ЧАСТЬ 2. На телефоне иначе
|
||
|
||
9. **Узких и широких окон нет.** Десктопные `R3`–`R6` (две панели рядом,
|
||
порог ширины, кнопка «Назад» внутри узкого окна) **к нам не относятся**:
|
||
телефон всегда узкий. Вместо них — системная кнопка и жест «Назад»
|
||
(предсказуемый переход), и он же закрывает открытый диалог.
|
||
10. **Модальные окна → шторки снизу.** Где на десктопе два окна друг над другом
|
||
(настройки + проверка связи) — на телефоне полноэкранный экран или шторка
|
||
снизу. Одно действие — один экран.
|
||
11. **Курсора нет** — нет «наведения». Вместо него отклик на нажатие
|
||
(подсветка/рябь). Десктопное требование про цвета наведения (`R1.4`)
|
||
на телефоне превращается в проверку цвета нажатия.
|
||
12. **Клавиатура.** Поле ввода поднимается над клавиатурой, список сообщений
|
||
сдвигается, а не перекрывается. Открытая клавиатура — обычное состояние,
|
||
а не край.
|
||
13. **Запись голоса — с разрешением.** На десктопе микрофон доступен без
|
||
спроса, на телефоне нужно системное разрешение; отказ — состояние экрана,
|
||
а не ошибка.
|
||
14. **Файлы.** Картинки ассистентов и вложения — во внутреннем каталоге
|
||
приложения (на телефоне свои правила доступа к файлам). Пользователь
|
||
выбирает файл системным диалогом.
|
||
15. **Экран и поворот.** Края экрана (строка состояния, «подбородок» с
|
||
жестами) учитываем; при повороте и смене размера ничего не теряется.
|
||
16. **Тёмная тема — стартовая, не единственная.** Как и на десктопе,
|
||
схем несколько (`R1.1`).
|
||
|
||
## ЧАСТЬ 3. Что решаем позже
|
||
|
||
- Порог, с которого телефон считать «широким» (планшет, разворот) — пока не
|
||
нужен: рисуем узкий вид.
|
||
- Системная цветовая схема телефона: следовать за ней или держать свою.
|
||
|
||
---
|
||
|
||
**Кода в этих документах нет намеренно** — здесь поведение. Реализация — по
|
||
задачам, через правки в этом репозитории.
|