Skip to content

alexxk2/ApplicationForm

Repository files navigation

ApplicationForm

Приложение для создания заявок с помощью базы адресов.

Приложение состоит из двух экранов. Первый экран нужен толкьо для перехода к главному экрану создания заявки

Экран Создание заявки
На экране находся поля для ввода информации по заявке: поле ввода улицы, дома, корпуса и квартиры, а также кнопка для отправки заявки. На экране реализована следующая логика

  • При открытии экрана на поле для ввода улицы, показывается клавиатура.
  • После ввода 3-х символов открывается выпадающий список улиц(список приходит с сервера).
  • Поиск улиц по вхождению ввода в название.
  • Если выбрать улицу появляется окно для выбора номера дома из имеющихся в базе.
  • Сортировка по номеру дома.
  • Если не выбрать улицу, или такой нет, то просто вводим ее название - окно с выбором дома скрывается.
  • Если выбран номер дома из базы, то поля дом, корпус будут скрыты, если нет - показаны.
  • Кнопка Отправить активна только если выбраны все параметры.
  • Если выбираем улицу из списка - то имеем некий ID улицы.
  • По нажатию на кнопку Отправить будет показан тост-сообщение с данными о заявке.

Техническая часть

  • Проект выполенен как single activity с фрагментами. Навигация с помощью Navigation component и SafeArgs.
  • Проект реализован на чистой архитектуре, использованым слои data, domain, presentation. Слои не связаны, модели в разных слоях используются разные.
  • В presentation слое проекта используется паттерн MVVM и LiveData. Управление Ui через states.
  • DI реализован с помощью Koin.
  • Для получения данных с API используется Retrofit и Courutines.
  • Добавлен splashScreen.
  • Создан кастомный адаптер для autocomleteTextView.

Используемый стек

  • Kotlin
  • Clean Architecture
  • Koin
  • Retrofit
  • SOLID
  • MVVM (ViewModel, LiveData)
  • ViewBinding
  • Navigation Component
  • Coroutines
  • SplashScreen

Gif flow приложения


Экран Списки покупок