Live Activities Are Usually Half Asleep
Fanta keeps me busy.
Live Activities are a little less alive than I expected.
I went back and forth on whether they were a good fit for my app, Hour by Hour. The feature is powerful, but it has strong opinions and restrictions about how it wants to be used.
Hour by Hour is a day planner that lets you sketch out a plan for your day. It's designed for busy days such as travel where you need to figure out timing, or for tracking a detailed schedule such as at a conference.
Of course, Live Activities are a good fit for this. It just took longer than I expected to get there, mostly because Apple’s APIs are surprisingly limited in a few key ways.
Where things get awkward
Live Activities are clearly designed to be driven by the outside world. Taxis, flight tracking, food delivery. And this means they were designed with push delivery in mind - from a server.
Hour by Hour is not that kind of app. It is almost entirely local and time-based. The schedule usually does not change unless the user edits it. Running a server just to keep a local event “live” would be overkill and silly. (Also I hate server work, and am very bad at it.)
This becomes even more stark when you compare Live Activities to notifications. The notifications API was designed around local scheduling first, before push notifications even existed. Time-based triggers are a core feature. Live Activities were not built that way, and it shows.
Until iOS 26, a Live Activity could only be started now or with a push from a server. No scheduling at all. iOS 26 finally adds the ability to schedule a start:
static func request(
attributes: Attributes,
content: ActivityContent<Activity<Attributes>.ContentState>,
pushType: PushType? = nil,
style: ActivityStyle,
alertConfiguration: AlertConfiguration,
start: Date
) throws -> Activity<Attributes>
That helps. You can now say “start this at 2pm”.
What you still cannot say is “and make this update at 2:30” or “and finish at 3pm”. Live Activities cannot advance based on a timetable. They can only update while the app is open, or when the user triggers an App Intent by interacting with it directly.
You can remove a Live Activity programmatically once you decide it is finished, but only if the app is in the foreground. You just cannot schedule that finishing point in advance.
Interactivity exists via App Intents, but it is slow. Pressing a button takes around two seconds to react, even on an iPhone 17 Pro. There is also no control over animation timing, which makes every interaction feel heavier and even slower than it ought to.
There is a slight philosophical mismatch for my specific app, too. Hour by Hour normally progresses automatically based on time. You do not have to tick things off for the day to move forward. Live Activities want explicit interaction.
The compromise, and why it still works
In the end, I leaned fully into App Intents, and it's basically fine.
In the Live Activity, you tick off events as you go. Once everything is checked off, the activity marks itself as finished and removes itself. It is not quite the model I would choose in a vacuum, but it is predictable, fully offline, and easy to reason about.
It also has an upside. The Live Activity becomes something you actively engage with, rather than a passive progress bar you ignore. Clearing the final item and watching it disappear feels quietly satisfying.
Yes, it is slower than I would like. Yes, I wish it was more responsive. But within Apple’s constraints, it is a compromise I am happy with.
And overall, I think it adds a lot.
Being able to glance at your Lock Screen and see exactly where you are in your day, using a structure you sketched yourself, feels genuinely useful, personal and immediate.
Live Activities might be half asleep, especially when they are running entirely locally. But even half awake, they turn out to be a good companion for a real, messy, human (or cat) day.
