Skip to content

Мобильное приложение для бронирования отелей на платформе Android.

Notifications You must be signed in to change notification settings

antbessonov/BookingHotel

Repository files navigation

Приложения для бронирования отелей

Мобильное приложение для бронирования отелей на платформе Android.

Стек: Kotlin, Retrofit2, Hilt, Picasso, Jetpack Navigation, Kotlin Coroutines

Описание работы приложения

  • "Отель" - на экране отображаются основные данные об отеле и кнопка, при нажатии на которую осуществляется переход на экран «Номер»,
  • "Номер" - содержит список номеров, с возможностью «Выбрать номер»,
  • "Бронирование" - заполняется все необходимая информация для оплаты брони,
  • "Оплачено" - открывается при успешном сценарии на экране «Бронирование» с номером заказа.

Отель

При запуске приложения начальным экраном будет «Отель». Первым элементом является карусель изображений, которая при свайпе вправо/влево перелистывает фотографии. Далее указывается вся подробная информация об гостинице. При нажатии на кнопку "К выбору номера" происходит переход на следующий экран.

Номер

Экран состоит из списка номеров. В навигационной панели указано название отеля откуда мы перешли. Кнопка назад возвращает на начало. При нажатии на «Выбрать номер» осуществляется переход на один и тот же экран «Бронирование».

Бронирование

При открытии появляются: главное об отеле и данные бронирования (например, направление трансфера и кол-во ночей). В блоке с информацией о покупателе необходимо заполнить обязательные поля с телефоном и почтой. При нажатии на поле номера телефона отрабатывает автоматическая маска с шаблоном +7 (**) -- и при вводе номера числа подставляются в шаблон. Почта проходит валидацию по стандартному шаблону. Пользователь, выйдя из режима ввода, хочет заполнить остальную информацию и если ввод был некорректным, поле окрашивается другим цветом.

Далее необходимо заполнить всю информацию о «Первом туристе». Если пользователь захочет добавить еще одного туриста, то нажимает на «Добавить туриста» и добавляется еще одна вкладка с названием «Второй турист», еще одного «Третий турист» и так далее. Вкладки скрываются и раскрываются.

Оплачено

Экран открывается при успешном сценарии на «Бронирование» при нажатии на «Оплатить». При клике на «Супер!» осуществляется переход в начало – «Отель». Либо пользователь может вернуться назад, нажав на кнопку в навигационной панели. Номер заказа указывается рандомно.

Используемые библиотеки и технологии

Retrofit2

Для взаимодействия с REST API используется библиотека Retrofit2. Библиотека достаточно проста в использовании, имеет понятную документацию и используется многими разработчиками. Retrofit2 поддерживает асинхронную работу. Для обработки простых запросов с JSON объектами в рамках данной задачи подходит отлично.

Hilt

Библиотека внедрения зависимостей Hilt построена на основе Dagger и позволяет использовать ее преимущество в упрошенной форме. Hilt интегрирован с библиотеками Android Jetpack. Будучи простой в настройке библиотека Hilt отлично подходит для данного проекта.

Примечание: В ТЗ было рекомендовано использовать Dagger или Koin, но большинство проектов выполнял с помощью Hilt и поэтому, чтобы уложиться в отведенное время, выбрал привычную библиотеку. С работой Dagger2 знаком.

Picasso

Мощная библиотека загрузки и кэширования изображений для Android. Картинка кэшируется и при повторном запросе на скачивание Picasso может достать ее из кэша, а не скачивать из интернета, что ускоряет работу приложения. Выбрана основываясь на личных предпочтениях.

Jetpack's Navigation

Для навигации использовался Android Jetpack's Navigation.

Kotlin Coroutines

Асинхронная работа реализована с помощью Coroutines. Coroutines являются частью языка Kotlin и рекомендованы для асинхронного программирования на Android.

About

Мобильное приложение для бронирования отелей на платформе Android.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published