Inspiration
In his 2005 Stanford commencement speech, Steve Jobs said he looked in the mirror every morning and asked himself: "If today were the last day of my life, would I want to do what I am about to do today?" When the answer was "No" too many days in a row, he knew something needed to change.
I wanted to turn that habit into something anyone could do in under a minute. I first built Stay Hungry for iOS, but it didn't make it onto the App Store. When I found Shipaton, I decided to rebuild it from scratch as a native Android app. It was my first time ever publishing on Google Play.
What it does
- Reflect: Your front camera becomes a mirror inside a rainbow (or beach-ball) ring. A short clip of the question plays with on-screen captions. You answer Yes or No and write a quick note about why. You can reflect as many times a day as you want, and every note is saved with its date and time.
- Breathe: A guided 4-7-8 breathing exercise with an animated scene: rain, clouds, sun, a rainbow, and falling leaves.
- Reflections: A timeline of every check-in, filterable by All, Yes, or No. Tap any entry to edit it.
- Insights (premium): Current and best streaks, charts of your Yes/No answers over time, a breath-work calendar, and recurring themes pulled from your own notes, so you can see what keeps coming up.
- Private by design: Notes and answers never leave the phone. No accounts, no ads, no analytics. The camera is only a live mirror; nothing is recorded.
Everything above is free except Insights, the option to turn off the splash screen, a short version of the clip that plays only the question, and Hidden Themes. Those unlock with a single $1.99 one-time purchase. No subscription.
How I built it
- Kotlin + Jetpack Compose, dark theme throughout
- CameraX for the live front-camera mirror
- SQLite for on-device storage of reflections and breathing sessions
- The official YouTube embedded player for the clip, with custom on-screen captions
- A pure-Kotlin keyword tokenizer for the themes in Insights (no cloud AI; notes never leave the device)
- RevenueCat SDK 10.x (Google Play Billing 8) for the $1.99 lifetime unlock: a non-consumable product attached to a
stay_hungry_premiumentitlement, served through the current offering. The app checks the entitlement to unlock premium features instantly, and purchases restore automatically. - Google Play In-App Review for ratings
Challenges I ran into
This was my first Android release, and Google Play had a few surprises. My first upload was rejected for using Billing Library 7 and targeting API 35. Updating RevenueCat and targeting API 36 fixed both. My production release was then blocked for not supporting 16 KB memory pages, which I traced to a native library in an older CameraX version and fixed by upgrading. I also reworked the layouts so the mirror, TV, and Yes/No buttons fit on small phones as well as large tablets.
Accomplishments that I'm proud of
Going from zero Android experience to a fully published Play Store app with a working RevenueCat purchase in a matter of days, and keeping every note 100% on-device.
What I learned
How Google Play works end to end: app signing, tracks, license testing, data safety, content ratings, and how RevenueCat's products, entitlements, and offerings fit together.
What's next
Home-screen widgets and gentle morning reminders, more mirror styles, and optional export of your own notes.
Stay Hungry is an unofficial tribute app. It is not affiliated with Apple Inc., the estate of Steve Jobs, or Stanford University.
Log in or sign up for Devpost to join the conversation.