You do not draw directly into the Dynamic Island. You create a Live Activity: a system-owned experience that can appear on the Lock Screen and, on supported iPhones, in the Dynamic Island.
That distinction matters. Your normal React Native screen is not running inside the Island. iOS renders a separate, tightly controlled interface and decides when and where to show it.
The pieces
- ActivityKit starts, updates and ends the activity.
- WidgetKit provides the extension that iOS can display outside the app.
- SwiftUI is the native route for the Lock Screen plus compact, minimal and expanded Island layouts.
- App Groups can share small pieces of data between the main app and its extension.
- ActivityKit push notifications are optional when a server must update an activity after the app is no longer active.
Current Expo projects also have a shorter route: expo-widgets can create iOS
widgets and Live Activities with Expo UI components. It still creates an iOS
widget-extension target and still requires a development build — it cannot run
inside Expo Go. If that API covers the design, use it. If you need unsupported
behavior or deeper platform control, create the extension in Swift and add it
through a config plugin, or maintain the iOS project directly.
Build the smallest useful version first
Define one small, Codable activity state: an order status, workout progress, timer or score. Design every presentation size, then wire three actions from the app: start, update and end. Add deep links so a tap opens the exact screen that owns the activity.
Only add remote updates after local updates work reliably. Remote Live Activities also need the correct push entitlement, server-side token handling and APNs delivery. Each extension has its own target, bundle identifier, signing and provisioning requirements, so test the real build on a physical device and through TestFlight.
The Island works best for a live event with a clear ending. If the information is not time-sensitive, a regular widget or notification is usually the better product.