A sample food delivery application for a coffee shop.
The backend API is written using Nest.js. See justjava-api.
- 100% Kotlin.
- MVVM architecture.
- Retrofit with Coroutines
- Room for local data storage.
- Google Sign In or password Authentication.
- Firebase messaging for notifications.
- Sentry for error logging.
- Koin for dependency injection.
- M-Pesa payments.
Used for messaging.
- Create an project on Firebase.
- Add an application
com.marknkamau.justjava.debug
.
Used for maps when adding a delivery address.
- Go to the GCP console and switch to the project created by Firebase (or any other).
- Enable Maps SDK for Android and Places API in API Library.
- Take note of the API keys (AIza...) in credentials or create one yourself.
NB: If you use your own API endpoint, you will need to change the googleClientId
in /app/build.gradle
Used for error logging.
It is only used in release
builds.
- Create a project on Sentry
- Take note of the project's DSN. Where can I find my DSN?
- Create a
sentry.properties
file. See Proguard instructions.
- Clone the repository.
- Create a
keys.properties
file based onkeys.properties.sample
. - Add the
play-services.json
file from firebase to./app
. - Open and build in Android Studio.
(optional) To overwrite the API url in debug mode, add debugApiBaseUrl="http://10.0.2.2:3000"
to
local.properties. Note: If your url is not https, you will need to add it to
network_security_config.xml