Inspiration

We often miss getting back to important notifications or lose track of them. We wanted to build an app that helps users remember information without taking content from the notification and adding it somewhere else. We thought, what if they can directly keep track of the notifications and pin them to the panel they open hundreds of times a day? That's the inspiration for Pinnit.

What it does

Pinnit provides a way for users to keep track of their notification history and allows them to search, sort, and filter them on a per-app basis. Notifications can be either pinned to the notification panel immediately or scheduled to be pinned. Once a notification is pinned, it cannot be dismissed by swiping, meaning the user is always shown what they have to remember.

How we built it

We built Pinnit using Kotlin & Jetpack Compose for the Android platform. By using Jetpack Compose we leveraged its powerful animation library to build a unique and smooth experience for users. The entire app is beautifully animated and transitions between screens are always purposeful.

Challenges we ran into

One of the major challenges for this project was figuring out how to listen to notifications as they are received and keep track of them. This was particularly challenging because it's easy to create duplicates, so we had to make sure to generate unique IDs based on different parameters of notifications to avoid creating duplicates.

Another challenge was keeping track of notification actions; since those cannot be saved to the database, we kept track of them using an LRU cache.

Accomplishments that we're proud of

Building user customisable dynamic theming, paired with smooth transitions and animations through out the app. It makes for a really well built Android app.

What we learned

During the development cycle of this project, we were able to learn how Android handles system notifications, how Material 3 dynamic theming works, and also how shared element transitions work in Jetpack Compose. There are handful of custom components and canvas usage which was a good learning experience as well and made me comfortable with using those.

What's next for Pinnit

We have a handful of things planned for future updates:

• The ability to exclude apps and wrods from Pinnit so that it cannot listen to notifications that might be sensitive or private to the user. • A homescreen widget • App shortcuts • Location-based reminders

Built With

Share this project:

Updates