- add `help` target and make it the default goal (bare `make` lists targets) - add `install-android-app`: build debug APK and install on the selected device - device selection via SERIAL/$ANDROID_SERIAL; several devices list and stop - document the target in android/README.md
42 lines
2.5 KiB
Markdown
42 lines
2.5 KiB
Markdown
# Proposal
|
||
|
||
## Why
|
||
|
||
Разработчику нужно ставить Android-клиент на подключённое устройство, но сегодня в
|
||
`Makefile` есть только `make android`, который собирает debug-APK и никуда его не
|
||
устанавливает. При этом голый `make` по умолчанию запускает цель `frontend`
|
||
(`cd frontend && npm ci && npm run build`), что неочевидно и тянет `npm ci`.
|
||
|
||
## What Changes
|
||
|
||
- Новая Make-цель `install-android-app`: собирает debug-APK клиента и устанавливает его
|
||
на устройство.
|
||
- Выбор устройства: явный серийный номер (`SERIAL`/`ANDROID_SERIAL`) либо автоматически,
|
||
если подключено ровно одно устройство.
|
||
- Если устройств несколько и серийный номер не задан — цель печатает список устройств и
|
||
**не** выполняет установку, завершаясь ненулевым кодом.
|
||
- **BREAKING** (изменение поведения по умолчанию): голый `make` теперь печатает список
|
||
доступных целей и больше не собирает фронтенд; сборка фронтенда остаётся за целями
|
||
`frontend` и `build`.
|
||
- Обновление `android/README.md`: документировать установку на устройство.
|
||
|
||
## Capabilities
|
||
|
||
### New Capabilities
|
||
|
||
- `dev-make-workflow`: Make-интерфейс разработчика — установка Android-клиента на
|
||
выбранное устройство и обзор доступных Make-целей.
|
||
|
||
### Modified Capabilities
|
||
|
||
<!-- Нет: спеки продукта (android-client и др.) не меняются, изменение — только dev-инструмент. -->
|
||
|
||
## Impact
|
||
|
||
- `Makefile`: новая цель `install-android-app`, новая цель `help`, смена `.DEFAULT_GOAL`
|
||
с `frontend` на `help`.
|
||
- `android/README.md`: раздел «Build» дополняется установкой на устройство.
|
||
- Код сервера и Android-приложения не затрагивается.
|
||
- Новых внешних зависимостей нет: используется уже требуемый Android SDK и `adb` из
|
||
`platform-tools`.
|