docs: add android checklist and prioritized roadmap
Some checks are pending
CI / test (push) Has started running

This commit is contained in:
2026-03-08 22:59:33 +03:00
parent bf7b4fa3c0
commit 3c855d78a6
2 changed files with 231 additions and 0 deletions

121
docs/android-checklist.md Normal file
View File

@@ -0,0 +1,121 @@
# Android Checklist (Telegram-подобный клиент)
## 1. Базовая архитектура
- [ ] Kotlin + Jetpack Compose
- [ ] Модульность: `core`, `data`, `feature-*`, `app`
- [ ] DI (Hilt/Koin)
- [ ] MVI/MVVM + единый state/presenter слой
- [ ] Coroutines + Flow + structured concurrency
- [ ] Логирование (Timber/Logcat policy)
- [ ] Crash reporting (Firebase Crashlytics/Sentry)
## 2. Сеть и API
- [ ] Retrofit/OkHttp + auth interceptor
- [ ] Авто-refresh JWT
- [ ] Единая обработка ошибок API
- [ ] Realtime WebSocket слой (reconnect/backoff)
- [ ] Маппинг DTO -> Domain -> UI models
- [ ] Версионирование API и feature flags
## 3. Локальное хранение и sync
- [ ] Room для чатов/сообщений/пользователей
- [ ] DataStore для настроек
- [ ] Кэш медиа (Coil/Exo cache)
- [ ] Offline-first чтение истории
- [ ] Очередь отложенных действий (send/edit/delete)
- [ ] Конфликт-резолв и reconcile после reconnect
## 4. Авторизация и аккаунт
- [ ] Login/Register flow (email-first)
- [ ] Verify email экран/обработка deep link
- [ ] Reset password flow
- [ ] Sessions list + revoke one/all
- [ ] 2FA TOTP + recovery codes
- [ ] Logout с полным cleanup local state
## 5. Профиль и приватность
- [ ] Просмотр/редактирование профиля
- [ ] Avatar upload + crop 1:1
- [ ] Username/name/bio editing
- [ ] Privacy settings (PM/last seen/avatar/group invites)
- [ ] Blocked users management
## 6. Список чатов
- [ ] Tabs/фильтры (all/private/group/channel/archive)
- [ ] Pinned chats
- [ ] Unread badge + mention badge `@`
- [ ] Muted badge
- [ ] Last message preview по типам медиа
- [ ] Online indicator в private чатах
## 7. Сообщения
- [ ] Отправка текста
- [ ] Reply/quote
- [ ] Edit (<=7 дней)
- [ ] Delete for me / for all (по правам)
- [ ] Forward в 1+ чатов
- [ ] Reactions
- [ ] Delivery/read states
## 8. Медиа и вложения
- [ ] Upload image/video/file/audio
- [ ] Галерея в сообщении (multi media)
- [ ] Media viewer (zoom/swipe/download)
- [ ] Единое контекстное меню для медиа
- [ ] Voice playback waveform + speed
- [ ] Audio player UI (не как voice)
- [ ] Circle video playback (view-only при необходимости)
## 9. Запись голосовых
- [ ] Hold-to-record
- [ ] Slide up to lock
- [ ] Slide left to cancel
- [ ] Минимальная длина записи (>=1s)
- [ ] Единый global audio focus (1 источник звука)
## 10. Группы/каналы
- [ ] Create group/channel
- [ ] Join/leave
- [ ] Invite link (create/regenerate/join)
- [ ] Roles owner/admin/member
- [ ] Admin actions: add/remove/ban/unban/promote/demote
- [ ] Ограничения канала: писать только owner/admin
- [ ] Member visibility rules (скрытие списков/действий)
## 11. Поиск
- [ ] Глобальный поиск: users/chats/messages
- [ ] Поиск внутри чата inline (не модалка)
- [ ] Jump to message из результатов
## 12. Уведомления
- [ ] FCM push setup
- [ ] Локальные уведомления для foreground
- [ ] Notification channels (Android)
- [ ] Deep links: open chat/message
- [ ] Mention override для muted чатов
## 13. UI/UX и темы
- [ ] Светлая/темная тема (читаемая)
- [ ] Адаптивность phone/tablet
- [ ] Контекстные меню без конфликтов жестов
- [ ] Bottom sheets/dialog behavior consistency
- [ ] Accessibility (TalkBack, dynamic type)
## 14. Безопасность
- [ ] Secure token storage (EncryptedSharedPrefs/Keystore)
- [ ] Certificate pinning (опционально)
- [ ] Root/emulator policy (опционально)
- [ ] Privacy-safe logging (без токенов/PII)
## 15. Качество
- [ ] Unit tests (domain/data)
- [ ] UI tests (Compose test)
- [ ] Integration tests для auth/chat/realtime
- [ ] Performance baseline (startup, scroll, media)
- [ ] ANR/crash budget + monitoring
## 16. Релиз
- [ ] CI/CD (build, test, lint, detekt)
- [ ] Internal QA build channel
- [ ] Beta rollout
- [ ] Release checklist и runbook инцидентов

110
docs/android-roadmap.md Normal file
View File

@@ -0,0 +1,110 @@
# Android Roadmap (до production)
## Принципы
- Backend/API уже есть: Android строим поверх текущего контракта (`/auth`, `/chats`, `/messages`, `/realtime`, `/media`).
- Сначала закрываем core-мессенджер, потом polish.
- Каждая фаза завершается demo + regression check.
## Phase 0: Foundation (1-2 недели)
**Цель:** запустить каркас приложения и базовую сетевую инфраструктуру.
### Scope
- Проектная архитектура, DI, навигация.
- Retrofit/OkHttp + auth/refresh.
- Room + DataStore заготовки.
- Базовый theme system и design tokens.
- Экран логина (email-first).
### DoD
- Можно авторизоваться и получить `me`.
- Сборка/линт/тесты в CI зеленые.
## Phase 1: Web-Core parity MVP (3-5 недель)
**Цель:** довести Android до текущего рабочего web-core.
### Scope
- Chat list: unread/mentions/pin/archive/mute badges.
- Chat screen: send/read/reply/edit/delete/forward/reactions.
- Realtime: receive/update/delete/typing/read/delivered/presence.
- Media: image/video/file/audio upload + viewer.
- Voice: record (hold/lock/cancel) + playback + waveform.
- Groups/channels roles/permissions, invite links.
### DoD
- Основные пользовательские сценарии проходят без перезапуска.
- Нет blocker-багов по auth/chat/realtime/media.
## Phase 2: Stability & Security (2-3 недели)
**Цель:** сделать релизно-устойчивую версию.
### Scope
- Offline queue + reconcile после reconnect.
- Session management + 2FA + recovery codes UX.
- Crash reporting + performance baseline.
- Deep link handling (`verify-email`, `join`, `open chat/message`).
- Расширенное тестирование (unit/integration/ui).
### DoD
- Crash-free rate целевой для internal beta.
- Критичные сценарии покрыты автотестами.
## Phase 3: Product polish (2-4 недели)
**Цель:** UX-качество уровня “приятно ежедневно использовать”.
### Scope
- Chat info polish (media tabs, links, jump to message).
- Контекстные меню и жесты без конфликтов.
- Тонкая настройка тем (light/dark readability).
- Улучшение поиска и навигации по результатам.
- Accessibility pass.
### DoD
- UX-bug backlog снижен до low/medium.
- Продуктовая приемка по ключевым flows.
## Phase 4: Release (1-2 недели)
**Цель:** выкладка в production.
### Scope
- FCM push production config.
- Подготовка Play Console, privacy, release notes.
- Staged rollout (5% -> 25% -> 100%).
- Monitoring и incident runbook.
### DoD
- Успешный staged rollout без критических откатов.
## Приоритеты (P0/P1/P2)
### P0 (обязательно до релиза)
- Auth + refresh + logout cleanup
- Chat list + chat screen core actions
- Realtime стабильность
- Media upload/view + voice record/playback
- Roles/permissions для group/channel
- Crash reporting + минимальные тесты
### P1 (сразу после P0)
- Search UX
- Chat info/media tabs
- Advanced formatting/threads polish
- Better offline UX
### P2 (после релиза)
- Дополнительные эффекты/анимации
- Расширенная аналитика
- Экспериментальные UX-фичи
## Оценка сроков
- Реалистично до strong beta: **8-12 недель**.
- До стабильного production с полировкой: **10-16 недель**.
## Риски
- Drift между web и android поведением.
- Realtime race conditions при нестабильной сети.
- Media edge-cases (mime/duration/seek).
- Permission UX (микрофон/уведомления) на разных Android версиях.
## Следующий практический шаг
1. Заморозить API-контракт (OpenAPI snapshot).
2. Поднять Android skeleton (Phase 0).
3. Зафиксировать Definition of Done для Phase 1 demo.