Widget Development on iOS and Android: What's Actually Worth Building

Widgets get requested on almost every client project because they look good in a pitch deck, and most of them go unused after install. Looking across a dozen widgets we've shipped, the ones with meaningful daily engagement (measured as widget taps per active user per week) all shared one trait: they showed information that changed frequently enough to be worth glancing at without opening the app, like a delivery-tracking client's package-status widget or a habit-tracking client's streak counter.
The ones that got ignored were static shortcuts dressed up as widgets — a 'quick access to your account' widget for a banking client, for instance, saw almost no usage because opening the app and tapping the account tab wasn't meaningfully slower than finding and tapping the widget. We now push back at the proposal stage on widget ideas that don't have a genuine glanceable-data component, because building one takes real engineering time (a separate target, its own timeline provider, and testing across sizes) that's wasted on a widget nobody taps.
iOS WidgetKit's timeline-based update model is more restrictive than clients expect — widgets don't push-update in real time, they run on a timeline the system schedules, and asking for frequent updates gets throttled by the system's budget for widget refresh. For the delivery-tracking widget, we used a combination of a reasonable timeline reload policy (every 15 minutes during active delivery windows, less frequently otherwise) plus a silent push notification to trigger a timeline reload on actual status changes, since the timeline alone wasn't responsive enough for a status that could change at any moment.
Android's Glance-based widgets (built on Jetpack Glance rather than the older RemoteViews approach) gave us significantly less boilerplate once we adopted it, and interactive elements within the widget — buttons that trigger an action without opening the app — worked more reliably than iOS's more limited widget interactivity at the time we built these, which is an area Apple has since started closing the gap on with interactive widgets in newer iOS versions.
Lock screen widgets on iOS and the equivalent always-on-display complications on some Android devices are worth a specific mention: they get more consistent glances than home screen widgets simply because users see the lock screen far more often than they browse a home screen page. For the habit-tracker client, moving the streak counter to also support a lock screen widget roughly doubled its engagement compared to the home screen version alone.

