This project is a bare bones, example project for making your own Android app and Scala backend. I used this project to learn how to create and deploy a backend service (I was already familiar with Android development).
I wanted to make this project public because I imagine there are some Android developers out there who are interested in learning more about backend. If that's you, then this repo (and the backend repo) would be a good reference to learn how to make your own backend scala service.
Below is a summary of the tech stack used for this project:
System | Technologies Used |
---|---|
Andoid App | Kotlin, Coroutines, Koin, Retrofit, MVVM, Single Activity Multi Fragment |
Authentication | Auth0 SDK (Android & Scala), OAuth2.0, JWT |
Backend Service | Scala, Play Framework, Slick |
Database | Postgres, PSQL |
If you are interested in using Scala Play to make your own backend service, below are a few good resources to review. These are the same resources I used to teach myself:
- The free chapters of Hands On Scala (Sufficient for getting comfortable with Scala)
- Scala Play Framework Tutorials by Mark Lewis
- Official Play Documentation
The approach I took for making this project was the following:
- Build the backend service. I used the above resources to learn how to do this
- Create the Android app
- Get the Android app and backend service to communicate with each other
- Start adding authentication to the backend service and app via Auth0. This is a good Scala + Auth0 tutorial
- Add Auth0 to the Android app. This is a good Android + Auth0 doc
- Ensure that the app and backend service can still communicate now that authentication has been added
- Deploy the backend service to Heroku