An android app to ease the tedious task of managing homework for you and your class.
This project was part of my twelfth class seminar course where I tried playing with different things:
- MVVM using ViewModel, LiveData and Lifecycles
- Navigation with Androids Navigation Components
- Database management with Room
- Dependency Injection with Koin
- Android Material Design UI compontents
- Asynchronous programming with Kotlin Coroutines
- Networking using Retrofit
Note that some features do not work properly or are straight up not implemented to begin with (authentication, notifications, …).
To build the application you have to specify a KLASSENPLANER_BASE_URL
property in your gradle.properties
file. You can do this by either editing your local gradle properties (located under ~/.gradle/gradle.properties
, create if the file doesn't exist) or editing the projects properties (but remember not to push if you don't explicitly want to).
To make the deep link work, edit app/res/navigation/setup_nav_graph.xml
and change BASE.URL
to your desired URL.
You can mock a simple back-end for testing using json-server and the file from this gist. Authentication and status codes won't be available, but I was never provided with something better, so this will have to do. If you are running the application inside the android emulator and have json-server running on the same device, you can access the server using http://10.0.2.2:3000/
as the address and setting the android:usesCleartextTraffic
manifest attribute to true
when you are using a device running Android 9 or above.