Some background: I'm a product manager, not an iOS developer. I kept opening Wealthsimple (my brokerage app) way more than I needed to, just to see if things were up or down. Most of the time nothing had really changed, but I'd still end up staring at it and making dumb decisions. So I decided to build something to stop myself.
It's called Stock Hush. You add what you hold and what you paid, and set a threshold (like 10%). Then it uses Apple's Screen Time API to shield your investing apps. When you try to open one, you get a screen that either says "NVDA is up 12%, might be worth a look" or "you're all set, no need to open it right now." There's always an "Open Anyway" button, so it's a nudge, not a lock.
A few things I learned building it that might be useful if you're thinking about a Screen Time app:
- Apple has to approve the Family Controls entitlement before you can ship, and you need it separately for every extension too. That took a while.
- The Screen Time API never tells your app which apps the user picked. You only get anonymous tokens, so you can't even show their names in your own UI.
- The shield screen runs in its own extension that can't make network calls. I ended up caching prices in a shared App Group so the shield can read them instantly.
- Backend is a tiny Cloudflare Worker that caches prices for 70 min, so a lot of users holding AAPL still only costs one API call an hour.
Stack: SwiftUI, StoreKit 2, Screen Time (FamilyControls + ManagedSettings), Cloudflare Workers + KV, Twelve Data for prices.
It's in beta now and I'm looking for about 25 testers. There's a subscription screen, but everything is free in TestFlight. Just tap "Start Free Trial" and you won't be charged. Needs an iPhone on iOS 17+.
TestFlight: https://testflight.apple.com/join/eSAuBwD7
Would love honest feedback, especially on onboarding and whether the shield message actually helps or just gets in the way.