Expo UI in SDK 56 introduces first-class integration with react-native-worklets, enabling synchronous UI thread control of SwiftUI and Jetpack Compose state without JavaScript round-trips. The new useNativeState hook creates an ObservableState backed by native ObservableObject (iOS) or MutableState (Android), while worklet callbacks execute directly on the UI thread when native views fire events. This enables flicker-free input masking — for example, formatting a credit card number on every keystroke without the user ever seeing unmasked characters. The pattern mirrors native SwiftUI @State and Compose mutableStateOf patterns, and is available for both @expo/ui/swift-ui and @expo/ui/jetpack-compose starting with SDK 56.

3m read timeFrom expo.dev
Post cover image
Table of contents
What's actually happeningFlicker-free synchronous input maskingWhy worklet integration mattersTry it
4 Impressions