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.
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.
- 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.
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.
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.
All common data models between app and core module are available here.
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
Presenter
andService
classes. - 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.
- 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.json
file from Firebase console and add toapp/src/user/
directory of project .
- 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.