Inspiration

Innovation doesn’t always happen “next”. Many of the best ideas show up mid-moment and only feel important a few seconds later.
It’s the familiar: “wait… that was actually really good - I should’ve saved that.”

But recording and note-taking both assume you can predict importance in advance. Real life doesn’t work that way. I built REWIND moments to act as a mobile-first “undo button” for moments of insight.

What it does

REWIND moments runs explicit, time-bounded sessions (Lecture / Meeting / Walk / Brainstorm). While a session is active, the app keeps a short rolling audio buffer.

When something brilliant happens, I can tap REWIND (from a persistent notification) and the app saves the last N seconds into a Rewind Capsule.

Each capsule includes:

  • the captured audio clip (WAV)
  • timestamp and duration
  • a tag (Idea / Instruction / Moment)
  • optional AI output: title, summary, and transcript

Capsules are browsable in-app, playable instantly, and can be archived to Google Drive.

How I built it

At the core is an Android Foreground Service (with a visible notification) that uses AudioRecord to stream microphone audio into a ring buffer in memory (up to 2 minutes).

When REWIND is triggered, I:

  1. snapshot the last N seconds from the ring buffer
  2. save it as a proper WAV file (PCM 16-bit, 16 kHz, mono)
  3. create a JSON sidecar file for capsule metadata (tags + AI state)
  4. optionally run AI transcription and summarization asynchronously and update the capsule when finished

The UI is built with Jetpack Compose:

  • Setup screen to choose session mode and rewind length
  • Session screen with a live countdown
  • Capsules screen to play, delete, tag, and open details
  • Details screen that auto-refreshes while AI output is generated

For archiving, I added Google Sign-In and the Drive API to upload capsules and automatically organize them into folders by category.

Challenges I faced

  • Android microphone restrictions: third-party apps can’t do invisible background recording. Using a Foreground Service with a visible notification was the only realistic, policy-safe approach.
  • Ring buffer correctness: handling the wrap-around cleanly so the rewind snapshot truly represents the last N seconds.
  • AI reliability: network and quota failures required explicit "pending / done / error" states and a retry flow.
  • UX under time pressure: saving the moment must be instant, so audio capture happens immediately while summarization runs in the background by calling the Google Gemini API to transcribe and summarize.

What I learned

This project reinforced how much mobile innovation is about working with platform constraints rather than around them.
Having explicit sessions, visible indicators, and saving first while enriching later leads to a more trustworthy and usable design.

What’s next for REWIND moments

  • Search across transcripts and tags
  • Optional photo add-on after a rewind (foreground camera) to capture context
  • Smarter local summaries when AI is unavailable
  • Pin/star important capsules and add export options

Built With

  • android
  • audiorecord
  • coroutines
  • foreground-service
  • gemini-api
  • google-drive-api
  • google-sign-in
  • jetpack-compose
  • kotlin
  • notifications
  • okhttp
Share this project:

Updates