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 с минимальным функционал приложения по заказу еды.
- Host: GitHub
- URL: https://github.com/robarcoo/foodiesapp
- Owner: robarcoo
- Created: 2024-04-01T20:30:10.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-04T19:21:59.000Z (about 1 year ago)
- Last Synced: 2025-01-11T04:19:34.976Z (5 months 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 для инъекции репозитория.
Каталог также имеет дополнительные функции такие, как:
- Поиск
- Фильтр по тегамВ случае отсутствия результатов, выведется соответствующий текст.

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

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

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