122 lines
4.5 KiB
Markdown
122 lines
4.5 KiB
Markdown
# 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
|
||
- [ ] Единая обработка ошибок API
|
||
- [x] Realtime WebSocket слой (reconnect/backoff)
|
||
- [x] Маппинг DTO -> Domain -> UI models
|
||
- [ ] Версионирование API и feature flags
|
||
|
||
## 3. Локальное хранение и sync
|
||
- [ ] Room для чатов/сообщений/пользователей
|
||
- [x] DataStore для настроек
|
||
- [ ] Кэш медиа (Coil/Exo cache)
|
||
- [ ] Offline-first чтение истории
|
||
- [ ] Очередь отложенных действий (send/edit/delete)
|
||
- [ ] Конфликт-резолв и 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
|
||
- [ ] 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)
|
||
- [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. Уведомления
|
||
- [ ] 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. Качество
|
||
- [x] 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 инцидентов
|