An open API service indexing awesome lists of open source software.

https://github.com/robarcoo/foodiesapp

Тестовый проект на Android с минимальным функционал приложения по заказу еды.
https://github.com/robarcoo/foodiesapp

android dagger2 gson jetpack-compose jetpack-navigation kotlin multimodule-android-app viewmodel

Last synced: 4 months ago
JSON representation

Тестовый проект на Android с минимальным функционал приложения по заказу еды.

Awesome Lists containing this project

README

        

# FoodiesApp
Тестовое задание Foodies App, которое предоставляет минимальный функционал приложения по заказу еды. В проекте несколько модулей:

![image](https://github.com/robarcoo/FoodiesApp/assets/111498279/ebe4d20f-2390-4f61-a7b1-70c59c5ec963)

- app (<- запуск приложения и навигация)
- core (<- элементы бизнес-логики, а также функции, которые используются несколькими модулями)
- feature (<- экраны и прилагающиеся к ним функции)

Всего feature содержит 4 экрана:
- Каталог
- Сплэшскрин
- Корзина
- Карточка товара

Загрузка данных осуществляется во время загрузки сплэш скрина и после того, как закончится анимация, пользователю не придется ждать загрузки информации. В случае дисконнекта с сервером на момент загрузки данных, то выводится текст, что нет подключение к интернету.

![image](https://github.com/robarcoo/FoodiesApp/assets/111498279/dfcf0099-6452-4a93-ace6-052febf6e6ad)

Общение между экранами производится с помощью общей ViewModel и Jetpack Navigation. Немного используется Dagger для инъекции репозитория.

Каталог также имеет дополнительные функции такие, как:
- Поиск
- Фильтр по тегам

В случае отсутствия результатов, выведется соответствующий текст.

![image](https://github.com/robarcoo/FoodiesApp/assets/111498279/b2a648d6-8a25-4cec-b4d8-8123b4b2ad10)
![image](https://github.com/robarcoo/FoodiesApp/assets/111498279/65d09b9f-b1cf-4477-90a9-6e8cddeb7925)

Карточки блюд кликабельны, при нажатии открывается страница с деталями товара. И на карточке, и на странице есть кнопка добавить товар в корзину. Снизу страницы отображается общая сумма покупки и кнопка, которая переведет пользователя на страницу корзины.

![image](https://github.com/robarcoo/FoodiesApp/assets/111498279/d1d9feef-3658-4aeb-b7e7-5e91268017d3)
![image](https://github.com/robarcoo/FoodiesApp/assets/111498279/02643e0e-91a0-4392-bf85-f3dead8dda42)

На странице корзины пользователь может менять количество присутствующих в корзине товаров. В случае пустой корзины также выведется сообщение. При нажатии кнопки, мы как бы делаем заказ, поэтому корзина чистится.

![image](https://github.com/robarcoo/FoodiesApp/assets/111498279/3d36d324-8d0b-4d8a-8c22-13149ab3b0bd)
![image](https://github.com/robarcoo/FoodiesApp/assets/111498279/bb0cf190-3484-4b18-9682-3cc6e3ad47c8)

Что можно было бы улучшить в приложении:
- Архитектуру (в силу недостатка опыта совершаю ошибки в этом месте)
- Добавить корутины для запросов и вычислений (не было приоритетной задачей тестового задания, поэтому не захотелось выполнять) для более быстрых вычислений.
- Некоторую логику приложения