e-Gym
A basic Jetpack Compose CRUD app, developed just for study the technology, where is possible browse exercises, see their details and create training plans (the feature of start a training isn's developed yet) to keep in shape for the summer, or for some else purpose.
Technologies
This app implements the following technologies to be able to run as proposed:
- Retrofit
- Loads the exercise catalog from a private webservice.
- Firebase
- Read, write and update the training plans as well as perform the user authentication with a google account.
- Jetpack Compose
- To render the views
- Dagger Hilt
- Builds the features dependency graph
- Google Accompanist
- Draws some UI components and controls some Android Window Insets
- Node JS with Exepress
- Helper api http/https server (just for fetch the exercises yet)
- Docker
- Just to deploy the http/https server
Patterns
To performs the proposed functions the app was implemented using the MVVM
, use-cases
and Repository
patterns.
Setup
- Retrofit
- Set the exercises fetching server's url in the
/core/build.gradle.kt
file, at theHELPER_API_URL
build config field variable. - Create a file called
api-keys.properties
into the root app's path with a valuekey1=[server-key]
, whereserver-key
is your server private key.
- Set the exercises fetching server's url in the
- Firebase
- Place the firebase json config file, with
auth
andfirestore
permission scopes on it, in the/app/src/[debug/release]
path.
- Place the firebase json config file, with
- NodeJs JS with Exepress
- As the helper api server is a private server, place the keys of it in the
/functions/oracle-cloud/api/api-keys.json
file. The required format is anarray
ofstring
s. See the/functions/oracle-cloud/api/index.js
file for more details. - Place the firebase json config file, with
firestore
permission scope on it, in the/functions/oracle-cloud/api/e-gym.json
file.
- As the helper api server is a private server, place the keys of it in the