概要
公開日: 2026-06-18
翻訳生成に失敗したため、原文をそのまま保存しています。
原文
Widgets and Live Activities are perfect for the moments when opening the app is more work than the user should have to do. A delivery ETA, a workout timer, a flight status, the next meeting, a saved shortcut - this is the kind of information people want while they are already doing something else. Widgets and live activities allow your apps to stay useful, without even asking users to open it. Building those surfaces from a React Native app has historically meant a separate Xcode target, App Groups, SwiftUI layout code, and the ongoing burden of keeping that extension in sync with the rest of your app. Starting with SDK 56, expo-widgets is stable. You build widgets and Live Activities as React components using Expo UI. Continuous Native Generation handles the Widget Extension target, the App Group configuration, and the SwiftUI scaffolding. There's no separate iOS project to maintain. This is the same library that shipped as alpha in SDK 55, hardened and promoted. The core idea hasn't changed: write widgets in React, let the system render them through SwiftUI, and manage updates from your Expo app. What changed in SDK 56 is the stability promise and a set of practical improvements: widgets and Live Activities now receive their environment directly, they no longer need to be pre-rendered by the main app, and error handling is better. Why widgets and Live Activities are worth building The reason to build widgets and Live Activities isn't UI completeness. It's surface area. The app icon is one tap into your app. A widget is zero taps and can provide value while the user is doing something else. A Live Activity stays present during an in-progress event and updates as conditions change, even when the device is locked. These surfaces complement the app by keeping relevant information close by when a full app session is not needed. Flighty is a good public example. It won the 2023 Apple Design Award for Interaction, and Apple's writeup calls out the parts that matter here: Live Activities, Dynamic Island integration, widget support, and putting key flight information where travelers need it most. For a flight tracker, that is the product experience. Travelers want gate changes, boarding status, and arrival timing without repeatedly opening an app. Flighty puts that information on the Lock Screen and Dynamic Island so it is available when the trip is actually happening. The pattern that wins in production: - Widgets for information users want close at hand (calendar, weather, a habit streak, a balance), - Live Activities for “in-progress” events with a clear start and end (a delivery ETA, a workout timer, a ride share, a flight in progress). Both let your app stay relevant during the time when users aren't actively in the app. OneSignal's 2024 State of Customer Engagement Report (bit old but the data is concrete) found that apps using iOS Live Activities have 23.7% higher average 30-day retention rates. It is not a promise that adding a Live Activity will automatically improve retention, but it does point to the same product pattern: timely information, shown in the right place, can make an app easier to return to. What's stable in SDK 56? The alpha shipped with SDK 55 in March. Since then, community testing and internal iteration surfaced the rough edges we needed to smooth out before calling the library stable. The headline changes: Widgets and Live Activities now receive their full environment through WidgetEnvironment, with context such as widget family, content margins, color scheme, rendering mode, and presentation and accessibility context that helps widgets adapt to where and how the system is displaying them. Widgets and Live Activities no longer require pre-rendering in the app. Instead of doing a startup pass through the app's React tree to prepare widget layout, the widget bundle can render independently with the context it needs for the current surface. Configurable widgets. SDK 56 adds support for configurable widgets to