Приложение "Калинка" предназначено для удобного заказа и доставки продуктов. Основной функционал включает следующие возможности:
- Заказ продуктов: Пользователи могут размещать заказы на покупку продуктов через мобильное приложение.
- Доставка до двери: Водители-экспедиторы получают информацию о заказе и доставляют продукцию прямо к двери клиента.
- Сканирование QR-кодов: Возможность сканировать QR-коды на продукции для проверки маркировки или получения дополнительной информации.
- Геолокация и работа с картами: Приложение использует геопозицию для определения местоположения клиента и оптимального маршрута доставки. Интеграция с картами обеспечивает надежное навигационное решение.
- Фотографии продукции: Экспедиторы могут делать фотографии доставленной продукции для подтверждения выполнения заказа и документации.
- Оплата: Приложение будет поддерживать различные методы оплаты, включая онлайн-платежи через интегрированные платежные системы.
Стек технологий:
- Jetpack Compose
- Kotlin
- Coroutines
- Retrofit
- Room
- Dagger-Hilt
- Navigation with Compose
- MVVM
- ViewModel
- Clean Architecture
- Google AI
Моя роль в приложении:
Приложение было разработано с нуля, начиная с дизайна в Figma и заканчивая реализацией. Я спроектировал архитектуру, используя принципы Clean Architecture и MVVM для обеспечения четкой структуры и разделения ответственностей.
- Jetpack Compose: Использование самого передового инструмента для создания пользовательского интерфейса в Android приложениях, что позволяет создавать динамичные и современные UI.
- Clean Architecture: Обеспечивает разделение приложения на слои (Presentation, Domain, Data) для улучшения масштабируемости и поддержки.
- Yandex Maps: Используется API от Yandex для геотрекинга, расчета маршрутов транспорта
- MVVM: Использование этого шаблона позволяет эффективно управлять пользовательским интерфейсом и бизнес-логикой, обеспечивая отделение от данных.
- Coroutines: Применение асинхронных операций с помощью Coroutines для управления потоками данных с минимальной блокировкой и обеспечения отзывчивости интерфейса.
- Room: Использование Room для локального хранения данных, обеспечивающего быстрый доступ и надежное управление базой данных SQLite.
- Dagger-HiltI: Внедрение зависимостей для упрощения и улучшения модульности кода, обеспечивая удобство в управлении зависимостями и их разрешении.
- Многомодульная архитектура: Разделение приложения на модули для улучшения отказоустойчивости, возможности повторного использования кода и упрощения совместной разработки.
- Google ML: применяется модель машинного обучения для сканирования и распознавания кодов
Технологический стек также включает Kotlin для языка программирования, Retrofit для работы с внешним API и навигацию с использованием Compose. Моя роль также включала проектирование и реализацию логики слоя Domain и Data, определение структуры базы данных и основной части взаимодействия с внешним API.
Скриншоты: