
The gap between what iOS could do for senior safety and what Apple allows developers to do is costing lives.
As the developer of WellnessCheck, a dignity-first safety monitoring app for seniors and solo dwellers, I’ve spent months building what I believe is a thoughtful, respectful approach to keeping vulnerable people safe. The app uses iPhone sensors to detect falls and health emergencies, alerts a Care Circle of loved ones, and does it all without treating seniors like patients in a facility.
There’s just one problem: Apple won’t let it work when it matters most.
The Technical Reality
Fall detection requires continuous accelerometer monitoring—roughly 50 readings per second to accurately distinguish a fall from sitting down quickly or dropping the phone. iOS stops CoreMotion accelerometer updates the moment an app moves to the background.
Here’s what the code looks like:
// Starting fall detection - works perfectly in foreground
func startFallDetection() {
motionManager.accelerometerUpdateInterval = 1.0 / 50.0 // 50Hz sampling
motionManager.startAccelerometerUpdates(to: operationQueue) { [weak self] data, error in
guard let acceleration = data?.acceleration else { return }
// Calculate total acceleration magnitude
let magnitude = sqrt(
pow(acceleration.x, 2) +
pow(acceleration.y, 2) +
pow(acceleration.z, 2)
)
// Detect sudden spike followed by stillness (classic fall pattern)
if magnitude > 2.5 { // Impact threshold
self?.analyzePotentialFall(magnitude: magnitude)
}
}
}
// ⚠️ The moment the user switches to Messages, Safari, or locks their phone:
// - accelerometerUpdateInterval: still set
// - operationQueue: still exists
// - Updates delivered: ZERO
// - Falls detected: ZERO
The code is solid. The algorithm works. iOS just… stops calling the closure.
Let me be clear about what this means in practice:
What works in the background: – Checking how long since someone last moved – Tracking step counts through HealthKit – Sending SMS alerts
// ✅ This works - HealthKit background delivery
healthStore.enableBackgroundDelivery(
for: stepCountType,
frequency: .hourly
) { success, error in
// iOS will wake our app periodically to check steps
// We can detect "no steps in 4 hours" - but not a fall
}
// ✅ This works - Background task for inactivity check
BGTaskScheduler.shared.register(
forTaskWithIdentifier: "com.wellnesscheck.inactivity",
using: nil
) { task in
// "User hasn't moved in 6 hours" - useful, but not fall detection
}
What cannot work in the background: – Detecting falls
// ❌ This stops the moment app backgrounds
motionManager.startAccelerometerUpdates(to: queue) { data, error in
// Never called in background
// No entitlement exists to change this
// No workaround possible
}
// ❌ Even CMMotionActivityManager (which DOES have background support)
// only tells you walking/running/stationary - not acceleration data
activityManager.startActivityUpdates(to: queue) { activity in
// activity.stationary = true
// But was it a fall or did they sit down? No way to know.
}
Read that again. The single most critical function of a senior safety app—the thing that could mean the difference between a 20-minute response and a 20-hour response—cannot run when the app isn’t on screen.
The Absurdity of the Current Situation
Think about how seniors actually use their phones. They’re not staring at a fall detection app. They’re:
- Checking messages from grandchildren
- Looking at photos
- Playing games
- Or, most often, the phone is in their pocket or on the counter
In every one of these scenarios, fall detection is disabled. The exact moment a fall is most likely—when someone is walking, climbing stairs, getting out of the shower—is precisely when a fall detection app cannot detect falls.
Apple’s own Apple Watch has fall detection that works continuously. They clearly understand the value. Yet they’ve locked third-party developers out of providing the same protection to the millions of seniors who don’t own an Apple Watch.
“But What About Battery Life?”
I’ve heard the counterarguments. Background processing drains batteries. Users don’t understand what’s running. Bad actors could abuse always-on sensors.
These are legitimate concerns. They’re also solvable problems:
- Battery impact is manageable. The accelerometer is one of the lowest-power sensors in modern iPhones. A well-optimized fall detection algorithm running at 50Hz is not going to drain a battery faster than the screen-on time of checking Facebook.
- Apple already has the framework. Health-related entitlements exist for other purposes. HealthKit background delivery exists. Location services can run continuously for navigation apps. Apple has demonstrated they can create permission structures that inform users and limit abuse.
- The alternative is worse. Seniors who need fall detection but don’t have an Apple Watch are currently choosing between:
- Wearing a medical alert pendant (stigmatizing, often rejected)
- Hoping someone checks on them (unreliable)
- Buying a $400+ Apple Watch (expensive, often too complex)
- Using an app that only works when they remember to keep it open (useless)
What Apple Should Do
I’m not asking Apple to open the floodgates. I’m asking for a Health Monitoring Entitlement with appropriate guardrails:
- Require app review approval demonstrating legitimate health monitoring purpose
- Mandate clear user disclosure about battery impact and data usage
- Limit access to accelerometer only—not microphone, camera, or location
- Require the app to display an ongoing notification so users know it’s running
- Allow users to revoke permission at any time through Settings
Here’s what it could look like:
// Proposed: Health Monitoring Entitlement// Info.plist: com.apple.developer.healthkit.background-motion-sensing // Request permission (similar to location "always" permission) MotionSensingManager.requestAlwaysAuthorization { status in switch status { case .authorizedAlways: // User explicitly granted background accelerometer access // System shows persistent indicator (like location arrow) startBackgroundFallDetection() case .denied: // Fall back to foreground-only detection // Clearly explain limitation to user } } // Usage would be nearly identical to current foreground code // Apple controls the permission, reviews the app, user stays informed
This isn’t radical. This is exactly how Apple handles other sensitive capabilities like location tracking and health data access.
The Human Cost
Every day this limitation exists, falls go undetected. Seniors lie on floors for hours because their phone was in their pocket instead of showing an app on screen. Family members discover loved ones too late because the technology that could have helped was artificially constrained.
And it’s not just fall detection. Ask any diabetic using Abbott’s FreeStyle Libre continuous glucose monitor about their iOS experience. The app has to be running in the foreground, on a phone in the same room, or you miss critical glucose alerts. Not in your pocket. Not on the nightstand while you sleep. In the same room, screen on, app visible.
We’re talking about a medical device that monitors whether someone’s blood sugar is crashing to dangerous levels, and Apple’s background restrictions mean the choice is:
- Stare at your phone 24/7
- Buy a separate dedicated receiver
- Miss the alert that your glucose is at 45 and dropping
This is a continuous glucose monitor that can’t continuously monitor because iOS won’t let it.
The pattern is clear: Apple has decided that battery life and their walled-garden control matter more than letting health apps actually protect people.
I’m building WellnessCheck because I believe technology should help people age with dignity and independence. Apple’s current policies force a choice: dignity (not staring at a safety app all day) or safety (keeping the app visible at all times).
That’s not a choice anyone should have to make.
A Call to Action
If you’re a developer facing similar limitations, speak up. If you’re a senior or love someone who is, let Apple know this matters. If you work at Apple, please—bring this to the people who can change it.
The iPhone is the most sophisticated sensor platform most people carry. It’s time Apple let us use it to save lives.
Charles Stricklin is the founder of Stricklin Development LLC and creator of WellnessCheck, a dignity-first safety monitoring app for seniors and solo dwellers. He’s a Navy veteran based in San Antonio, Texas.
Want to help? – Share this post – File feedback with Apple at apple.com/feedback – Follow WellnessCheck development at wellnesscheck.dev