Inspiration:
I got my inspiration from X thread where it shows chains of users thought which is simple and easy to use. I have always wanted to know what I have been doing the whole day if I actually did what I said I want to do without having a checklist to gate myself with and also things I don't want to do. As a very visual person, I was convinced that having media like Timeline would be useful and it's been beyond what I assumed.
What it does:
Timeline takes snapshot of every app used and logs it for as long as user wanted it to and does excludes apps users don't want captured.
How we built it:
It's built with KMP but due to iOS app sandboxing architecture. I decided to opt-in only for Android which allow me to use accessibility to enable trackingservice for app usage logging and screenshotservice which captures the snapnots, both rely on foreground services. Trackingservice also tracks if accessibility permission is revoked by the device OEM and restores it by itself but user is prompted that the permission is revoked
Challenges we ran into:
Main there challenges I had during the development is I rely on free Gemini API which makes it a lot harder during development because of the lower rate limit on the API but I do enjoy it and I got to be frugal with my time and token usage. My app got rejected for Production in Playstore because Google Play requests for more data by testers which sent me back to another 14 days which today marks the third 7th day of my app in Play console.
The last is my PC is slow, to get a release build successful sometimes take 3 hours but I'm able to overcome
Accomplishments that we're proud of:
I'm proud to be able to participate in this hackathon and also have my app on Playstor
What we learned: I learned to believe in myself even when I'm in resource constraint and it's important to make my app always easy to use for all users.
What's next for Timeline:
Getting it to the hands of daily million users.
Built With
- android
- kmp
- kotlin
- productivity
Log in or sign up for Devpost to join the conversation.