Портфолийный Android-проект на Jetpack Compose, в котором реализован authentication flow с архитектурой, приближённой к production-подходу.
📍 Москва, Россия
💬 Telegram: https://t.me/ferlow
Показать умение:
- проектировать навигацию в Compose
- грамотно работать со state и ViewModel
- разделять UI и бизнес-логику
- писать поддерживаемый и масштабируемый код
Проект используется как case-study для стажировки Android-разработчика.
- Navigation Compose с nested graphs (
auth/main) - Общий
AuthViewModel, заскоупленный наGraph.Auth - Навигация через
UiEvent(однонаправленные события) - Передача аргументов через route (email) +
SavedStateHandle - Вынос общих UI-компонентов в отдельный пакет
- Чёткая модель UI-состояний (sealed states, validation state)
- Отсутствие бизнес-логики в composable-функциях
UI → ViewModel → (Domain) → (Data)
Ключевые решения:
- ViewModel живёт на уровне навигационного графа и шарится между экранами
- Навигация инициируется из ViewModel через события
- Дублирование состояния избегается
- UI полностью управляется состоянием
- Kotlin
- Jetpack Compose
- Navigation Compose
- MVVM
- Coroutines
В проекте используется ktlint для единого стиля Kotlin-кода.
- Проверка:
./gradlew ktlintCheck - Форматирование:
./gradlew ktlintFormat
Правила задаются в .editorconfig.
- Подключить Dependency Injection (Hilt)
- Унифицировать обработку ошибок
- Добавить unit-тесты для ViewModel
- Улучшить UI и добавить скриншоты
- Клонировать репозиторий
- Открыть в Android Studio
- Запустить на эмуляторе или устройстве