Тема
Граф создания и публикации Android-приложений
Актуальность графа: 1 сентября 2026 года.
mermaid
flowchart TD
GLOSSARY[Справочник терминов] --> IDEA
IDEA[Продуктовая задача] --> PASSPORT[Паспорт: flow, данные, сеть, devices, аудитория]
PASSPORT --> STACK{Implementation lane}
STACK -->|Android-first| NATIVE[Kotlin + Compose]
STACK -->|Готовый web/PWA| CAP[Capacitor + bundled assets]
STACK -->|Тяжёлая игра| ENGINE[Профильный game engine]
STACK -->|Wear/TV/Auto/XR| FORM[Platform-specific проект]
NATIVE --> MODES{Data/capability profile}
CAP --> MODES
ENGINE --> MODES
FORM --> MODES
MODES --> API[API: loading/error/offline/auth]
MODES --> LOCAL[Local/offline-first + migrations/sync]
MODES --> DEVICE[Camera/location/media/background + denial]
CODEX[Codex + android-release] --> PASSPORT
CODEX --> IMPLEMENT[Вертикальный сценарий + tests]
TOOLCHAIN[JDK 21 + SDK 36 + Gradle Wrapper] --> IMPLEMENT
STARTER[Проверенный Native Compose starter] --> NATIVE
ARCADE[Проверенный arcade Capacitor app] --> CAP
API --> IMPLEMENT
LOCAL --> IMPLEMENT
DEVICE --> IMPLEMENT
IMPLEMENT --> VERIFY[Lint + unit + instrumentation + APK/AAB]
AVD[AVD API 36 / физическое устройство] --> VERIFY
VERIFY --> BUNDLE[bundletool + device-specific splits + 16 KB gate]
BUNDLE --> EVIDENCE[Manifest/SDK/data inventory + SHA-256 + smoke evidence]
POLICY[Google Play policy preflight] --> PASSPORT
PASSPORT --> ACCOUNT
POLICY --> DECL[Privacy + Data Safety + audience + conditional declarations]
EVIDENCE --> DECL
ACCOUNT[Play account: identity + contacts + device verification] --> APPREC[Create app + постоянный package ID]
APPREC --> LISTING[Store listing + countries]
APPREC --> DECL
LISTING --> DECL[Privacy + Data Safety + audience + conditional declarations]
DECL --> SIGN[External upload signing + Play App Signing]
SIGN --> INTERNAL[Internal track + Play-delivered smoke]
INTERNAL --> PRELAUNCH[Pre-launch report]
PRELAUNCH --> CLOSED[Применимый closed testing gate]
CLOSED --> ROLLOUT[First production: selected countries + managed publishing; future updates: staged rollout]
ROLLOUT --> VITALS[Android vitals + halt/hotfix]
APIOPT[Необязательно после ручного релиза: Cloud project + service account] --> AUTOMATION[Play Developer API + least privilege]
AUTOMATION --> INTERNAL
STOP{Есть policy/quality STOP?} -->|Да| FIX[Исправить code/listing/declarations во всех tracks]
FIX --> VERIFY
DECL --> STOP
STOP -->|Нет, есть evidence| SIGN
EVIDENCE --> RUSTORE[Отдельный RuStore preflight]Критические связи
| Откуда | Связь | Куда | Следствие |
|---|---|---|---|
| Паспорт | определяет | stack и capability gates | Permissions/SDK не добавляются «на будущее» |
| Native starter | доказывает | Compose lane | Gradle, APK/AAB и UI test уже воспроизводимы |
| Arcade project | доказывает | Capacitor lane | Он пример, а не архитектура всех apps |
| Capability | требует | denial/error/lifecycle tests | Happy path недостаточен |
| SDK/permission | изменяет | Data Safety и review | Инвентаризация делается до релиза |
| AAB | проходит | internal Play delivery | Локальная сборка не равна Play-ready |
Native .so | требует | 16 KB runtime gate | 4 KB AVD недостаточно |
| Personal account | требует | physical device verification | AVD не заменяет Console gate |
| Glossary | объясняет | термины всех инструкций | Начинающий не должен угадывать значение слова |
| Account verification | предшествует | Create app и production access | Codex не может пройти юридическую проверку за владельца |
| Service account | получает | минимальные app permissions | API не требует передачи личного пароля владельца |
| Policy STOP | блокирует | submission | Повторная отправка без fix повышает enforcement risk |
| Rollout | наблюдается через | Android vitals | Выпуск продолжается после публикации |
Маршруты чтения
- Новое приложение: runbook → stack → reference architecture.
- Среда: Linux setup → doctor → Native starter.
- Проверка и выпуск: testing → Play policy preflight → release runbook.
- Первый Play Console: справочник терминов → пошаговый runbook → чек-лист первой публикации.
- Codex: workflow → локальный plugin.
Интерактивная карта
Карта ниже позволяет приближать сообщества, выбирать узлы и видеть связи между документами. Если встроенная версия неудобна, откройте её на весь экран.
Исходный интерактивный граф находится в graphify-out/graph.html; перед production-сборкой сайта его актуальная версия автоматически копируется в публичный артефакт. После существенных изменений справочника граф обновляется инкрементально.
Сгенерированные Android density-варианты splash/launcher не добавляются как отдельные смысловые узлы: они перечислены в .graphifyignore, а канонические web-иконки остаются в графе. Это не влияет на сборку приложения.