DingBit — Pavlovian Habit Building for iPhone & Apple Watch
Mobile App

DingBit — Pavlovian Habit Building for iPhone & Apple Watch

A native iOS and Apple Watch app I built to make habits automatic through classical conditioning. You schedule a 'ding' for a small action — breathe, stretch, drink water — and when the sound fires you do the thing. Over enough repetitions the cue triggers the habit by itself. Built in Swift and SwiftUI with SwiftData for local-first storage, WatchConnectivity for equal-priority phone/watch sync, and StoreKit 2 for the freemium tier. Nothing leaves the device — no accounts, no cloud, no backend — so the conditioning loop stays reliable and private. Shipped to the App Store in April 2026.

Key features

  • Schedule recurring 'dings' at custom intervals — the core conditioning cue with reliable delivery whether the app is open or backgrounded
  • Equal-priority Apple Watch companion — complete a habit from the wrist and the delivered notification clears on the phone instantly, no iPhone required to log completions
  • Interactive notification actions — 'Done' and 'In 5 mins' snooze directly from the lock screen without opening the app
  • Per-habit reward sounds with AVAudioSession management — pick a different audio cue for each habit so the brain learns to associate each one distinctly
  • Streak tracking and daily consistency view — a calendar heatmap and per-habit detail stats surface how well the conditioning is taking
  • Freemium tier with StoreKit 2 — 3 habits free, unlimited on supporter, with a 7-day grace period before premium features revert after a lapsed subscription
  • Local-first and account-free — everything persists via SwiftData on-device, no cloud, no sign-in, no analytics SDK, no data leaving the phone
  • Haptic feedback integrated with the ding — on the watch the haptic arrives with the sound so the cue works even without audio
  • Soft-prompt onboarding for notification permission — primes the user before the system dialog so a rushed tap doesn't permanently deny the app's core mechanic

Technologies

SwiftSwiftUISwiftDataWatchConnectivityUserNotificationsStoreKit 2AVFoundationwatchOS

About the project

I initially created the app for my own personal use. During the workday, I often realized I was holding a lot of tension and not drinking enough water. So, to build better habits, I decided to experiment with a little Pavlovian conditioning using an iPhone and Apple Watch app. Just like Pavlov's dog that salivated every time it heard a bell, I thought I'd test the same concept on myself. By setting up notifications every 30 minutes, an hour, or more, the app uses a chime to remind me to relax or drink water.

While experimenting, I set up specific chimes on my phone and discovered I could set up to 8 different haptic feedbacks on the watch. The haptic feedback on the Apple Watch is especially discreet.

It's working out great for me!

The app is completely free, with just a few unlockable customizations in-app if you'd like to support the project (these aren't required to use the app; they are purely aesthetic).

I hope it can be as useful for you as it has been for me.

As always, any feedback or constructive criticism is highly appreciated. Let me know what you think!

DingBit — Pavlovian Habit Building for iPhone & Apple Watch | Portfolio | Gianpiero Vecchi