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: 15 days ago
JSON representation
Тестовый проект на Android с минимальным функционал приложения по заказу еды.
- Host: GitHub
- URL: https://github.com/robarcoo/foodiesapp
- Owner: robarcoo
- Created: 2024-04-01T20:30:10.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-04T19:21:59.000Z (about 2 years ago)
- Last Synced: 2025-01-11T04:19:34.976Z (over 1 year ago)
- Topics: android, dagger2, gson, jetpack-compose, jetpack-navigation, kotlin, multimodule-android-app, viewmodel
- Language: Kotlin
- Homepage:
- Size: 1.46 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FoodiesApp
Тестовое задание Foodies App, которое предоставляет минимальный функционал приложения по заказу еды. В проекте несколько модулей:

- app (<- запуск приложения и навигация)
- core (<- элементы бизнес-логики, а также функции, которые используются несколькими модулями)
- feature (<- экраны и прилагающиеся к ним функции)
Всего feature содержит 4 экрана:
- Каталог
- Сплэшскрин
- Корзина
- Карточка товара
Загрузка данных осуществляется во время загрузки сплэш скрина и после того, как закончится анимация, пользователю не придется ждать загрузки информации. В случае дисконнекта с сервером на момент загрузки данных, то выводится текст, что нет подключение к интернету.

Общение между экранами производится с помощью общей ViewModel и Jetpack Navigation. Немного используется Dagger для инъекции репозитория.
Каталог также имеет дополнительные функции такие, как:
- Поиск
- Фильтр по тегам
В случае отсутствия результатов, выведется соответствующий текст.


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


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


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