-
-
TaperSense feature graphic with the new logo: Quit smoking, gradually.
-
TaperSense dual-screen ecosystem: seamless synchronization between Android mobile and Wear OS smartwatch.
-
Wrist-based interval countdown and instant craving logging tile on Wear OS.
-
Adaptive pacing countdown timer displaying real-time interval progress and daily cigarette limits.
-
Craving Rescue Mode: delay a few minutes with quick coping steps like deep breathing.
Inspiration
Most people who try to quit smoking are told to stop all at once, and many find that sudden stop too hard to keep up.
Most habit apps treat smoking like a binary switch: either you smoke 20 cigarettes a day, or zero. We asked a different question: What if an app treated quitting like a gradual taper?
We built TaperSense, a harm-reduction pacing app that steadily extends the time between cigarettes, so cutting down happens step by step instead of all at once.
What It Does
- Adaptive Interval Pacing: Builds a schedule from your current daily count and pace. The timer shows when your next planned cigarette is due, and every minute you delay past it counts as progress.
- Slips Without Resets: One slip changes today, not your whole journey. The plan recalibrates instead of wiping your progress or shaming you.
- Craving Rescue Mode: When a craving hits mid-interval, you can delay a few minutes with quick coping steps: deep breathing (4s in, 4s hold, 6s out), a glass of cold water, a brief walk, or keeping your hands busy.
- Multiple Nicotine Products: Works for cigarettes, heated tobacco (IQOS / TEREA), vaping, or a mix.
- Wear OS Companion: Galaxy Watch and Wear OS Tiles, complications and an ongoing activity let you check the countdown and log a cigarette or a delay from your wrist, without picking up your phone.
- AI Pace Coach (Pro): Ask about your cravings, progress or patterns. With your consent, it gets a small summary of recent behaviour (raw history isn't sent) and answers through our server using Gemini.
- Bilingual: Full English and native Arabic (RTL) localization.
How We Built It
- Frontend: Flutter (Dart) with a custom interval dial painter and dark/light theme tokens.
- Wearable Integration: Native Kotlin Wear OS module with Tiles (
TileService), watch face complications (ComplicationDataSourceService) and an Ongoing Activity, kept in sync with the phone app over the Wearable Data Layer. - Backend: Node.js and Express with Google Sign-In and server-issued session tokens, powering cloud sync, the Pro trial and the AI Pace Coach proxy (so no AI key ships in the app).
- In-App Review API: Review prompts are rate-limited and only shown after positive moments, like beating a craving or hitting an interval target.
RevenueCat Integration & Monetization
Monetization in quitting support has to be fair and value-first. RevenueCat (purchases_flutter) powers the whole commercial layer under the entitlement tapersense_pro_access:
- Free Core: Interval pacing, countdown notifications, habit logging and the Wear OS companion are free to download and use.
- TaperSense Pro: Unlocks the AI Pace Coach, cloud sync across devices, the weekly and monthly Progress Lab, adaptive user-approved pace adjustments, and a personalized craving rescue kit.
- 14-Day Free Trial: A server-backed introductory trial so every signed-in user can try Pro first.
- RevenueCat Offerings: The paywall renders whatever packages the current Offering holds (monthly, annual and lifetime), so pricing can change without an app update.
- Offline-Resilient Entitlements: The Pro state is cached locally and mirrored to the watch, so the timer and Pro access keep working offline.
Challenges We Ran Into
- Wear OS Battery & Ticker Performance: Rendering continuous countdowns on the watch without draining the battery meant moving from per-second redraws to system-managed chronometer text and passive state listeners.
- Ethical Paywall Design: Paywalls never interrupt a craving moment; Pro is offered as an option, not a gate on the core timer.
Accomplishments We're Proud Of
- Shipping a working phone + Wear OS app on Google Play, with state kept in sync between the two.
- A non-judgmental slip-recovery flow that recalibrates the pace instead of resetting progress.
- RevenueCat entitlement handling that stays out of the user's way.
- A bilingual launch, with Arabic promo videos and ads for the Gulf.
What We Learned
Shipping in public for Ship-a-ton showed us how much wearables lower the friction of tracking. A "+5 min" delay button on the wrist is much quicker to reach than unlocking a phone in the middle of a craving.
What's Next for TaperSense
- Web paywall funnels using RevenueCat Web Billing and Stripe.
- Exploring Galaxy Watch sensor signals to time craving check-ins better.
- Community recovery circles for peer accountability.
Built With
- android
- dart
- digital-health
- express.js
- flutter
- gemini-api
- google-play
- healthtech
- in-app-purchases
- in-app-review
- kotlin
- node.js
- revenuecat
- samsung-galaxy-watch
- wear-os
Log in or sign up for Devpost to join the conversation.