02Handoff2026

Widgets andLive Activities

Home screen widgets, an app icon menu and an interactive Live Activity, so a contractor on a job site can start a walkthrough, record a client meeting or clock in without digging through the app. I designed and built them, and they reached every iOS user 24 days after the pitch.

Native iOS DesignInteraction DesignDesigned and Built
A gloved hand holding an iPhone on a timber-framed job site, with Handoff's Live Activity card on the Lock Screen.

This one was mine start to finish. I had never built a widget or a Live Activity, and I wanted to. Building is the part of the job I enjoy most, and this one looked both fun and useful. I pitched it on August 24, designed it in Paper that week, built it in our Expo app, ran the rollout and fixed what came back.

24 days
From pitch to every iOS user
1,400+
Live Activities in the first three weeks
~90
Contractor companies using them

Four to six taps is too many on a job site

Contractors use Handoff in the field, between site visits, often with a client standing next to them. More than half of our daily active users are in the mobile app, and about 7 in 10 of those are on iOS.

To record a meeting or start a walkthrough, they had to find the app, open it, find the project and then find the feature. That's four to six taps while the client waits. iOS already has a way around this: widgets, a menu on the app icon and Live Activities. Granola shows a Live Activity while it records a meeting, and Handoff records meetings too, so the idea fit.

Before4 to 6 taps
  1. 1Find the app
  2. 2Open it
  3. 3Projects
  4. 4Find the project
  5. 5Find the feature
After2 taps
  1. 1Tap an action on the widget
  2. 2Pick the project

The widget knows who you are, not which job you're on, so it still asks for the project. A row on the Schedule widget already knows, so it goes straight in.

Four days in Paper first

I didn't go straight to code. Over four days in Paper I tried colorways, layouts and states for every surface, and threw most of them away.

Small widget, round two. Five colorways for the grid and four layouts for two actions. What shipped grew out of the light grid and the stacked rows.
Five directions for the Schedule widget. What shipped grew out of the first: the next event, then the rest of the day.
One card that changes through its states, instead of a new card for each thing you start.

Widgets and quick actions

Each part does one job, and every one is a link into the app. A button on a widget runs in the background and can't open the app, so links were the only way to land people on the right screen.

  1. Schedule widgetWhat's next, with a countdown that ticks on its own, and the rest of today below it. Each row opens that item.
  2. Quick actionsPress and hold the app icon for the same actions, filtered to what your plan includes. I use these menus in other apps all the time, so Handoff got one.
  3. Small widgetsTwo versions of the same square: a grid of four actions, or two rows with targets big enough to hit in gloves. Press and hold either one to choose its actions.
Rebuilt from the shipped widget code.

Live Activities and the Lock Screen launcher

On the Lock Screen, the Handoff mark under the clock opens the app. When you clock in or start recording a meeting, a Live Activity keeps the timer there, so you can put the phone in your pocket and still see it running.

  1. Handoffin 13 min
    Client walkthrough600 SF Detached ADU
    WalkthroughMeetingTrack time

    Starting soon

  2. HandoffTracking time
    600 SF Detached ADU
    2:14:38
    Stop

    Tracking time

  3. HandoffRecording
    600 SF Detached ADU
    6:12
    Stop

    Recording

The Live Activity in its three states, rebuilt from the shipped layout code. The running ones count up live. The mark under the clock is the Lock Screen launcher.

Built in the real app, shipped in 24 days

I built it in the real app, not a prototype. Expo's widget tools write SwiftUI from TypeScript, so the widgets are native without a separate Swift project. Mobile engineering reviewed every pull request. I ran it on my own phone well before anyone else had it, then rolled it out in stages: internal testers, 25%, 50%, and everyone on September 17.

Real use found four problems the simulator didn't, like a timer that filled the Dynamic Island on some phones. I fixed each one within a day or two.