← all writing tech

The notification that wakes a locked phone is a feature, not a nuisance

Every guide tells you to design notifications that respect Do Not Disturb. For a driver waiting on work, the notification that ignores it is the entire product.

Every article about mobile notifications preaches the same gospel: be quiet, be respectful, honor Do Not Disturb, never interrupt. For the field app I build, I had to do the exact opposite on purpose. The alert that drivers depend on most is the one that detonates through a locked, muted phone like an alarm clock, and that is not a bug in my taste. It is the most important feature in the app.

Here is the framing that flipped it for me. For a driver waiting on a delivery platform, a job that arrives silently is income that quietly went to someone else. The phone is in a jacket pocket, screen off, ringer down, the app swiped away an hour ago. A polite little banner that waits patiently in the tray is worthless. By the time they glance down, the job has been reassigned and the day is a little poorer. The whole value of the alert is that it refuses to be missed.

An alarm clock, not a banner

Once I accepted that, the design target stopped being “notification” and became “alarm clock.” An alarm is a useful thing to copy, because the platform already lets a clock app scream at you through silent mode, screen off, locked. So the new-order alert had to inherit that same privileged behavior:

  • It takes over the whole screen. Not a banner you can ignore from the corner of your eye, a full-screen takeover that lights up a dark, locked phone and puts one decision in front of the driver: accept or pass.
  • It is loud and it loops. A single chime fired once into a noisy yard does nothing. The sound repeats, the phone vibrates in a pattern, and both keep going until someone actually responds, even if the device is sitting at volume zero.
  • It survives the app being dead. Drivers do not keep the app open. The alert has to wake the process from cold, off a high-priority push, when nothing of mine is running.

None of those are settings you flip in a config file. Each one is a fight with the operating system’s defaults, because the platform assumes anything this aggressive is hostile until you prove it is wanted.

You earn this with real devices, not code

The honest part of this story is how I actually got there, and it was not by reading docs and writing the obvious code. It was a brutal empirical loop. Lock a real phone, mute it, swipe the app away, send a job, and watch what happens. Then it does not fire, and you change one thing and try again. Then it fires but stays silent because a budget device quietly demoted your channel. Then it wakes the screen on one handset and not on the cheaper one in the next pocket.

Aggressive notification behavior is not something you write once and trust. It is something you re-prove on every real device you can borrow, because the emulator will lie to you and so will the expensive phone.

The cheap, battery-anxious phones are where this lives or dies, and they are exactly the phones drivers carry. I lost more time to one stubborn handset than to all the actual code.

The same intensity that helps you gets you flagged

There is a sting in the tail. The very thing that makes this alert valuable, its refusal to be silenced, is the thing that makes an app-store reviewer narrow their eyes. Software that wakes a locked phone and screams over Do Not Disturb is, from the outside, indistinguishable from spyware or an ad that hijacks your screen.

So shipping it is not just an engineering problem, it is an argument you have to win in policy language. You document, in plain terms, that this alert is the core function of a tool people use to earn a living, that it is time-critical the way a ride request or an alarm is, and that the user opted into exactly this. Build the alarm clock, then be ready to explain, calmly and on paper, why your app is allowed to ring.

Email