# 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 инцидентов