„Dienstplan“ was one of my first projects which was Kotlin and Firebase from scratch.
What it does
The app works as schedule („Dienstplan“) viewer and reminder for members of the Red Cross in Styria. You provide it with a link to your schedule ical file (every member has one) and the app displays your upcoming shifts, and more importantly, it notifies you of changes. To get notifications faster (within a few minutes after each change instead of a couple of times a day) users can purchase a subscription through the Play Store.
Fetching schedule updates
Regularly updating the schedule in the background on a user’s device to find changed events uses power and makes users unhappy. For paying users this was solved by sending the calendar link to Firebase where a Cloud Function is triggered regularly which checks the schedule, compares it with the previous version, and notifies the device if there’s a change. This allows for super-fast updates without draining the device battery.
Confirming paying users
Users can pay to use the app: with a yearly subscription they help cover development cost and keep the app free of adverts. As small thank you they get notifications quicker and they can see how an event changed over time.
To confirm that a user is indeed a paying user the purchase token is sent to Firebase where it is validated with Google. If it is valid the user is granted extra privileges and another subscription check is scheduled for just after the subscription is due to expire. All this is done using Firebase Cloud Functions and triggers for Firebase Cloud Firestore.
The app is available in the Austrian Play Store. Users outside Austria may not be able to download the app.