Guilt
Guilt is an inspiration from Meta (pun intended), it tracks the apps usage and maps it with geo location data where the app was last used. The app is built to collect data points for users app usage behaviour at different locations.
Tech stack & Open-source libraries
- Minimum SDK level 21
- 100% Kotlin based + Coroutines + Flow for asynchronous.
- JetPack
- Lifecycle - dispose observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.
- Room DB
- Permisions
- Location
- UsageStat
- Foreground Service
Basic overview
- As the app starts it starts a foreground service. The service calls the usageStat api to fetch recent events, and fetches the location at that moment.
- Then service inserts that data in sql db (ROOM).
- When the app is opened again, it fetches the latest entries from DB and shows them on the home.