Skip to content
Innovialabs

Home Screen Widgets on iOS and Android: When an App Needs One

Basics4 min

In short

A widget shows one up-to-date thing without opening the app and refreshes on the system's terms, not in real time; it is worth building when users have a reason to check often — a status, balance, schedule or progress.

In short: what a widget is

A widget is a small block of your app on the home screen (and, on iOS, the lock screen too) that shows one useful piece of information without opening the app. It is not a mini version of the app but a window onto what matters most.

Live Activities on iOS are a separate format: a live card on the lock screen and in the Dynamic Island for an event that lasts a limited time — a delivery, a ride, a match. On Android a similar job is usually done by an ongoing notification with progress.

An app needs a widget if you can answer one question: what does the user want to see, without opening the app, several times a day or week?

What widgets can and cannot do

CanCannot
Show text, numbers, images, simple chartsWork as a full interface
Open a specific screen in the app on tap (deep link)Accept keyboard input
Simple actions: buttons, toggles (in current OS versions)Play video or complex animation
Come in several sizesUpdate continuously in real time

Technical constraints

iOS: WidgetKit

  • Widgets are written in SwiftUI using WidgetKit, even if the main app is built with Flutter or React Native.
  • Content is built as a timeline — a set of prepared states with display times. The system decides when to render them.
  • Each widget has an update budget: if you ask to refresh too often, the system starts skipping requests.
  • The app shares data with the widget through a shared container (App Group).

Android: App Widgets and Jetpack Glance

  • Classic widgets use RemoteViews — a limited set of UI elements.
  • Jetpack Glance lets you describe widgets in a Compose-like style, but under the hood it still produces RemoteViews with their limits.
  • Periodic updates via updatePeriodMillis cannot run more often than roughly every half hour. For other schedules, use WorkManager or update the widget from the app when data changes.

Live Activities

  • They run on ActivityKit and are updated from the app or through dedicated push notifications.
  • They are limited in duration and data size — a format for a specific event, not a permanent panel.

For cross-platform apps, a widget is separate native code for each platform. Budget for it separately.

Where a widget helps

App typeWhat to show
Delivery, taxiOrder or ride status (better as a Live Activity)
Finance, bankingBalance or limit — with an option to hide amounts
Tasks, notes, calendarUpcoming items, quick entry
Health, fitness, habitsToday's progress, mark as done
TransportNext departures from a chosen stop
LearningWord of the day, current streak
Weather, exchange ratesCurrent values

Where a widget usually isn't needed: apps opened once a month, and "banner" widgets advertising promotions — people remove them from the screen quickly.

How widgets affect engagement

A widget reminds people about the app every time they unlock the phone and shortens the path to the key action. But it only works when it is genuinely useful: if the widget shows stale or pointless data, it gets removed.

What to measure:

  • how many users added the widget;
  • how many sessions start with a tap on the widget;
  • how retention differs between widget users and everyone else.

Keep in mind that users who add a widget are more engaged to begin with — the comparison alone does not prove cause and effect.

Common mistakes

  • Cramming a whole app screen into a widget — it ends up tiny and unreadable.
  • Expecting "every minute" updates and being surprised by stale data.
  • Showing personal data on the lock screen without a way to hide it.
  • No empty state: what the user sees before signing in.

FAQ

Yes, but the widget itself is written natively: SwiftUI on iOS and Kotlin on Android. The main app passes data to it through shared storage, and there are ready-made bridge packages for that.

We can help with this

If you'd rather get the result than figure it all out yourself — this is what we do every day.

Discuss a project

Read next

Have an idea or a task? Tell us about it

We'll reply within one business day and propose a solution. The consultation is free.