Данный проект был создан как Android-клиент для сайта по прокату вещей между студентами. В процессе разработки был реализован следующий функционал:
- Регистрация пользователя
- Авторизация пользователя
- Выход из профиля
- Просмотр информации о профиле
- Создание объявления об аренде
- Просмотр своих объявлений
- Просмотр всех объявлений об аренде
- Просмотр карточки объявления
- Фильтрация всех объявлений по категориям
- Compose Jetpack - для создания пользовательского интерфейса
- Retrofit - для работы с АПИ
- Kotlin Coroutines
- Coil - для загрузки изображений из интернета
- SharedPreferences - для сохранения настроек пользователя
- Koin - для внедрения зависимостей
- MVVM - шаблон проектирования
- Clean architecture
- 1й экран - если пользователь не авторизовался, то списка объявлений и кнопки для их создания нет
- 2й экран - если пользователь авторизовался, но еще не создал ни одного объявления
- 3й экран - если у пользователя есть объявления
Экраны регистрации и авторизации
На экране выводится информация о товаре с кнопкой для его арендовывания. Переход на экран осуществляется через нажатие на иконку объявления в списках своих и чужих объявлений.
Экран создания объявлений, без заполненных полей кнопка создания недоступна, есть проверка на корректность введенных данных.
При наличии авторизации пользователя во вкладке выводится информация о профиле пользователя. В ином случае при ее выборе происходит перенаправление на экран входа в приложение.
При авторизации АПИ возвращало куки, по которому позже происходила проверка проверка доступа пользователя к различным запросам к серверу. Поэтому при построении HTTP-клиента пришлось использовать перехватчик запросов, который бы во время отправки АПИ перехватывал бы запрос и вставлял в его заголовок куки.