# Android Checklist (Telegram-подобный клиент) ## 1. Базовая архитектура - [x] Kotlin + Jetpack Compose - [ ] Модульность: `core`, `data`, `feature-*`, `app` - [x] DI (Hilt/Koin) - [x] MVI/MVVM + единый state/presenter слой - [x] Coroutines + Flow + structured concurrency - [ ] Логирование (Timber/Logcat policy) - [ ] 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 - [ ] Версионирование 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) - [ ] Verify email экран/обработка deep link - [ ] Reset password flow - [ ] Sessions list + revoke one/all - [ ] 2FA TOTP + recovery codes - [x] 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. Список чатов - [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 ## 8. Медиа и вложения - [x] Upload image/video/file/audio - [ ] Галерея в сообщении (multi media) - [x] Media viewer (zoom/swipe/download) - [ ] Единое контекстное меню для медиа - [ ] Voice playback waveform + speed - [x] 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) - [x] Roles owner/admin/member - [ ] Admin actions: add/remove/ban/unban/promote/demote - [x] Ограничения канала: писать только owner/admin - [ ] Member visibility rules (скрытие списков/действий) ## 11. Поиск - [ ] Глобальный поиск: users/chats/messages - [ ] Поиск внутри чата inline (не модалка) - [ ] 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 и темы - [ ] Светлая/темная тема (читаемая) - [ ] Адаптивность phone/tablet - [ ] Контекстные меню без конфликтов жестов - [ ] Bottom sheets/dialog behavior consistency - [ ] 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) - [ ] 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 инцидентов