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