Veggie
Veggie copied to clipboard
Vegetable ordering app using MVP architecture
Warning
I'm no longer maintaining this project. I haven't update Firebase project & backend so most of the things should not work as expected. Feel free to reach out to me for any help.
Veggie
It is a simple fruits and vegetable shopping app, built to support my friend's startup. It is also an experiment to make use of Model View Presenter architecture.
Features
- Select products you want to purchase. You can search and sort them by category. Product volume can be managed while checkout.
- You will be notified when your order is shipped and you can check your order history.
- Yes, we provide shipping to Mars.
Structure
This application is built using Model View Presenter architecture which is divided in three modules. Code separation allows to reuse the code. Makes it easy to maintain and modify. It provides abstraction while creating Android views. I have listed all of the modules with their usage.
App module
Android application module which acts as a View. It depends on core module which delivers all necessary data. This allows to focus on user interface and simplifies the code.
Common Module
All common data models between app and core module are available here.
Core Module
This module works as a Presenter. All application logic is provided here. I've described package name with their use.
- presenter - Handles all application logic. Android activity / fragment uses associated presenter to handle data delivery, network operation, error cases and database operations.
- remote - Handles remote connection with backend. Usually accessed by
PresenterandServiceclasses. - service - Background services to download product and user information. These classes helps to cache user data in advance so they doesn't need to wait.
- storage - ContentProvider implementation along with helper classes to access database easily.
Setup
- Download project source and import in Android studio .
- Create new project in Firebase console.
- In Firebase console, add Android app with package name
com.greentopli.app.user. - Download
google-services.jsonfile from Firebase console and add toapp/src/user/directory of project .
Reference
- Dribble client by joe birch.
- Product icons are created by Devender Malhotra.
- Basket icon is created by Freepik from www.flaticon.com, and it is licensed under CC 3.0 BY.
- Launcher icon is created using Android asset studio.