Skip to content

Latest commit

 

History

History
75 lines (55 loc) · 2.62 KB

File metadata and controls

75 lines (55 loc) · 2.62 KB

JetpackApp — Auth Flow на Jetpack Compose

Портфолийный 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
  • DI(Hilt)

Code style

В проекте используется ktlint для единого стиля Kotlin-кода.

  • Проверка: ./gradlew ktlintCheck
  • Форматирование: ./gradlew ktlintFormat

Правила задаются в .editorconfig.


Планы развития

  • Подключить Dependency Injection (Hilt)
  • Унифицировать обработку ошибок
  • Добавить unit-тесты для ViewModel
  • Улучшить UI и добавить скриншоты

Запуск проекта

  1. Клонировать репозиторий
  2. Открыть в Android Studio
  3. Запустить на эмуляторе или устройстве