DEV Community

Martin Ma
Martin Ma

Posted on

Designing friction instead of blocking: what I learned building a screen-time app

ChoiceField — stop scrolling without locking yourself out. iOS 17+, free to start. QR: App Store (US)

App Store: https://apps.apple.com/us/app/id6769946195

The problem with every blocker I tried

I've tried the usual stuff on my own phone: hard limits, one-tap locks, deleting apps. They all fail the same way. The block is absolute, so the fix is absolute too — you flip the switch off, and you're back to zero. Every attempt resets to the same starting line.

My wife had the same pattern, worse: down at eleven, still awake at two, half of it short video and half of it shopping. So instead of another lock, I tried the opposite: keep access, add a small pause.

Three rules we committed to

  1. Never make it impossible. If the user can't get back in, they'll remove the app — and then there's no signal left to work with.
  2. Make the exit visible. Every bypass is counted and shown back to you. Hiding friction removes the feedback loop that changes behaviour.
  3. Never go around the system. No MDM profiles, no fake network tricks. Use the platform's own Screen Time stack.

What that looks like on iOS

Under the hood it's the Screen Time APIs (Family Controls authorization, DeviceActivity for monitoring, ManagedSettings for shields). The interesting part isn't the API calls — it's the choices on top of them:

Per-app daily allowance, set once

  • Per-app allowance instead of one global limit. A single 60-minute budget for the whole phone gets spent in ten minutes. Per-app budgets spread out.
  • A pause screen, not a wall. When the allowance runs out you get a sentence and a way back in: wait a bit, or use one of a small number of unlocks you chose in advance.
  • Unlocks are logged, not blocked. The point isn't prevention at all costs: it's seeing the pattern (three unlocks at 1am is information, not failure).
  • Friend Freeze. A trusted person can freeze apps for you for a set window. Accountability without surveillance.

Setting a daily plan

What changed, measured

Before: phone in hand until 2am, screen time after midnight ~50 minutes. After six weeks: down to about 20 minutes, and the useful part — it didn't feel like a fight. The unlock count went from 5–6 a night to 0–1.

Reviewing the week

If you want to try it

ChoiceField is free to start on iOS 17+. No account, everything on-device.

https://apps.apple.com/us/app/id6769946195

If you're building something similar and want to compare notes on the Screen Time APIs — especially the entitlement review process — happy to share what we hit.

Top comments (0)