Burak introduces Callstack’s book on incremental React Native adoption and sets up a demonstration using Apple’s SwiftUI About Me sample app. The goal is to add React Native screens to that existing app.
Incremental React Native Adoption in iOS Apps
Speaker
Burak, a brownfield enthusiast at Callstack, demonstrates adding React Native screens to an existing SwiftUI app.
Burak uses the React Native Enterprise Framework quick start and selects the iOS Brownfield option, which supports integrating React Native into existing native apps such as SwiftUI or UIKit apps. He creates a project called HelloBrownfield, chooses Metro, and selects both the iOS and Android brownfield plugins.
The new project’s App.tsx contains the screen that will appear in the native app. Burak runs `yarn package ios` to create three XCFramework files, then adds those frameworks to the Xcode project’s Frameworks, Libraries, and Embedded Content section.
In the native app, Burak imports HelloBrownfieldReact, assigns ReactNativeBundle to ReactNativeBrownfield.shared.bundle, and starts React Native when the app launches. He then replaces the content of the Story view with ReactNativeView and sets its module name to HelloBrownfield.
After the app builds, Burak opens the Story view and shows the React Native screen inside the SwiftUI app. He presents this as a way to adopt React Native incrementally within a native app.
Takeaways
- RNEF’s brownfield setup can add React Native screens to an existing SwiftUI app.
- Package the React Native project for iOS and add its XCFramework files in Xcode.
- Start the React Native instance in the app, then place ReactNativeView where a screen is needed.
- Choose Metro for a standard setup; RNEF also offers Re.Pack for super app use.
Mentioned in this talk
Search inside this talk
What was claimed 5
- works at
“working at Callstack”
YouTube Unverified1 source· Talk
- featureReact Native Enterprise Framework: Supports incremental integration of React Native into existing native apps
“integrating React Native into an existing native app”
YouTube Unverified1 source· Talk
- uses
“For now, we're going with Metro.”
YouTube Unverified1 source· Talk
- integrates withReact Native Enterprise Framework integrates with SwiftUI
“add a SwiftUI view”
YouTube Unverified1 source· Talk
- integrates withSwiftUI integrates with React Native
“our screen is visible”
YouTube Unverified1 source· Talk






