iOS 14 Widgets bring app content right to the iPhone home screen

by: | Jul 9, 2020

Some of the biggest news from Apple’s recent Developer’s Conference was how the iPhone home screen is now easier for users to experience “glanceable” information. The most important change: a completely redesigned iOS Widgets user experience that gives developers prime placement for their apps on this valuable first screen.

In this post, we explain the redesigned iOS 14 Widgets experience, and why businesses should take advantage of them to increase app user engagement.

What is a Widget?

A Widget is a component that can be used to display a small amount of timely, relevant information, so people can see it at a glance. It is like a small window into your app’s content.

Widgets were originally introduced in Mac OS 10.4 as dashboard widgets. They appeared in iOS 10, but were confined to their own screen to the left of the home screen — a space that most users forget about. With iOS 14, the Widgets now share the most visited screen on your phone — the home screen — making them much more useful.

Widgets increase app user engagement

The main purpose of a Widget is to display information for a user to “glance” at without having to actually open an app. As an app developer, it might seem counterintuitive to be excited about something that reduces the need to launch an app. But a Widget delivers value to a user at the moment they need it, and creates an opportunity for repeat app engagement.

Widgets provide a convenient entry point to a full application, with deep-links to take users directly within the app. Now that Widgets can be added to the home screen in iOS 14, these entry points to your full app are right on the first screen.

What are some good use cases for Widgets?

Virtually any app can benefit from a Widget on the home screen to improve user experience and help businesses re-engage with their customers.

For example, McCormick, one of our clients, could add a Widget to their Flavor Maker iOS app and present new recipes each day on the home screen. Since Widgets are dynamic, the recipe could change during the day — showing breakfast options in the morning and dinner options in the afternoon. When they see a recipe they like, the user taps the Widget to launch the full app experience for ingredients and cooking directions. The “glance” of information attracts the user and drives more app engagement.

Widgets could be especially helpful in connected home products to show status or provide related information. For example, a smart thermostat could show indoor temperature or a heater setting. A connected sprinkler might display the operating schedule, and a smart lighting system could show when lights are programmed to be on or off.

For apps that include e-commerce capabilities, businesses could display daily promotions. Media apps could highlight new content in Widgets, enabling people to launch videos, music, and articles directly from the home screen. Social media apps might display highlights from your live feed or trending posts.

How app developers build an iOS Widget

Widgets may be presented in three different sizes — small, medium, or large. They can be displayed on the iPhone and iPad home screens, and on the Mac Notification Center.

iOS Widgets 3 sizes


A Widget is a regular SwiftUI view that is updated over time from a series of entries provided by the app. To add a Widget to an existing project, it is necessary to create a Widget target — a new option available in Xcode 12 — and link the necessary files to this new target. SwiftUI previews can be used to streamline development and see how your Widget will behave in different environments (dark theme, different sizes, etc.).

There are three main components of a Widget:

  • A Widget extension (a struct annotated with @main and implements the Widget protocol) that is instantiated by the system. This provides the configurations for the Widget, as well as its view and a placeholder view to be shown while content is loaded.
  • A SwiftUI view to display the content.
  • A timeline provider, which provides a list of timeline entries (structs that implement the TimelineEntry protocol) to be displayed. These entries contain information about when the Widget should be updated and which content to display. This list can be updated by the app when it is running, by the system when there are no more items on the list provided, or at a specified time. You may also tell the system not to request updates if you only want to provide updates when the app is running.

By default, Widgets support all three sizes. This might not make sense for all use cases. Developers let the system know which Widget sizes to support and even to display different views for each size.

Widgets also offer configuration options. You can provide intents to be used by the system. You can provide options for users to interact with a Widget or personalize it.

Widgets are supported on iOS, iPadOS, and macOS — so developers can provide a similar experience across all platforms.

Widgets vs App Clips

Both Widgets and App Clips offer up valuable information at the moment users need it. In terms of functionality, Widgets and App Clips are very different. Widgets help increase repeat engagement from existing users by extending an app’s functionality to the home screen with glanceable information. As we wrote on our blog, App Clips for iOS help increase app discovery and encourage new users to try an app without downloading the full application.

Want to create a Widget for your app?

Contact us to learn more about Widgets, App Clips, or any of the exciting features coming in iOS 14 this fall. Our iOS app developers are happy to provide an overview of the key takeaways that matter most to your business.