Концепт Android-мессенджера HYPER в стиле Material You 3. Полноценный интерфейс на Jetpack Compose с чатами, настройками, профилем, темами и QR-авторизацией. Серверная часть пока не подключена — все данные демонстрационные и хранятся локально.
Поддерживается Android 11 (API 30) и выше.
- Приветствие — брендовый экран «Добро пожаловать в HYPER!» с кнопкой «Войти» и переходом к регистрации.
- Авторизация — вход по почте/логину и паролю, показ/скрытие пароля, ошибки, демо-доступ.
- 2FA — если аккаунт не демонстрационный, после входа запрашивается 6-значный код (демо-код
123456). - Регистрация — открывается внутри приложения в WebView:
https://web.hyper-messenger.ru/register. - Нижняя навигация — три «плашки» в стиле iOS: Чаты, Настройки, Профиль.
- Чаты — поиск, фильтры, закреплённые чаты, непрочитанные, демо-диалог с отправкой сообщений.
- Настройки — темы, уведомления, приватность, QR-авторизация, настройки на сайте, активные устройства, информация о приложении и выход.
- Темы — системная/светлая/тёмная, динамический цвет Material You (Android 12+), пять акцентных палитр и живой предпросмотр.
- Профиль — карточка пользователя, статистика, данные аккаунта, редактирование имени и статуса, выход.
- QR-авторизация — экран сканера с анимированной рамкой и демо-подтверждением входа. Реальный сканер камеры подключается вместе с сервером.
- Иконка — из
mesresources/icon.pngсгенерированы launcher-иконки, адаптивная иконка и монохромная тема Android 13+.
| Поле | Значение |
|---|---|
| Логин | test@hyper.ru |
| Пароль | despatch |
| 2FA | нет |
Демо-вход работает полностью офлайн и не требует сервера. Любая другая пара логин/пароль в концепте показывает шаг 2FA, чтобы продемонстрировать сценарий; универсальный код — 123456.
Требования:
- JDK 17
- Android SDK с
compileSdk 35(Android Studio Koala или новее)
./gradlew assembleDebugAPK появится здесь:
app/build/outputs/apk/debug/app-debug.apk
Release-сборка (без подписи):
./gradlew assembleReleaseФайл .github/workflows/android-build.yml собирает проект при push/PR и вручную через Actions → Android Build → Run workflow. В артефакты попадают:
hyper-debug-apk— устанавливаемый debug APK;hyper-release-unsigned-apk— unsigned release APK.
Все веб-адреса собраны в одном файле:
app/src/main/java/ru/hyper/messenger/core/HyperConfig.kt
const val WEB_BASE_URL = "https://web.hyper-messenger.ru"
const val REGISTER_URL = "$WEB_BASE_URL/register"
const val SETTINGS_URL = "$WEB_BASE_URL/settings"
const val LOGIN_URL = "$WEB_BASE_URL/login"В исходном ТЗ для регистрации был указан домен
web.hyper-messer.ru, а для остальных страниц —web.hyper-messenger.ru. Здесь используется единый доменweb.hyper-messenger.ru. Если нужен именноmesser, поменяйте одну строку вHyperConfig.kt.
app/src/main/java/ru/hyper/messenger/
├── core/HyperConfig.kt # адреса сайтов
├── data/
│ ├── AuthRepository.kt # локальная демо-авторизация и 2FA
│ ├── AuthViewModel.kt # состояние входа
│ ├── DemoData.kt # чаты, сообщения, демо-пользователь
│ └── PreferencesRepository.kt # темы и настройки
├── model/ # пользователь, чаты, сообщения
├── ui/
│ ├── HyperRoot.kt # навигация приложения
│ ├── components/ # общие Material You компоненты
│ ├── screens/ # welcome, login, 2FA, web, main, chat, settings, profile
│ └── theme/ # цветовые схемы, типографика, формы
└── MainActivity.kt
- Заменить
AuthRepositoryна реальные запросы к API HYPER (вход, 2FA, refresh токена). - Подключить WebView-события успешной регистрации/входа и обновление сессии.
- Загружать чаты, сообщения и профиль из API вместо
DemoData. - Добавить QR-сканер камеры (CameraX + ML Kit или ZXing) и обмен QR-токеном с сервером.
- Реализовать пуш-уведомления, звонки, вложения и голосовые сообщения.
- Заменить локальные настройки на синхронизацию с аккаунтом и DataStore + защищённое хранилище токенов.
Это UI-концепт, а не готовый продакшен-мессенджер. Сайт и API ещё не запущены, поэтому экраны регистрации, настроек на сайте и QR могут показывать ошибку загрузки — это ожидаемо.