In this lesson, you will learn how to determine the right moment to transition from the simplified Expo Managed workflow to the more granular Bare workflow.
The Managed Workflow: Your "Safe Harbor"
Most React Native projects start in the Managed workflow. Here, Expo abstracts away the underlying Android and iOS project folders. You don't interact with android/ or ios/ directories directly; instead, Expo handles the native build process, library linking, and over-the-air updates for you. This allows you to focus purely on your JavaScript/TypeScript code.
The Bare Workflow: Taking Control
The Bare workflow means you "eject" or initialize a project where you have full access to the android/ and ios/ source code. You are responsible for managing your own native dependencies, configuring Gradle or CocoaPods manually, and handling native build updates.
When to Exit the Managed Workflow
Since you have already learned about complex topics like Bridging C++ Libraries and Native Plugin System Architecture, you might feel tempted to move to Bare, but complexity is a cost, not a reward. You should only consider exiting the Managed workflow if:
- Custom Native Code Requirements: You need to integrate a third-party native SDK that does not have an existing Expo Config Plugin and requires significant manual modifications to
AppDelegate.mmorMainActivity.java. - Advanced Architectural Overhauls: You need to customize the internal build pipeline, such as injecting specific C++ build flags or modifying the low-level TurboModule registration process in a way that standard plugins cannot reach.
- Deep Native Debugging: You need to step through native code in Xcode or Android Studio to troubleshoot issues arising from the bridge or memory management that cannot be solved by standard logging.
If you find yourself spending more time fighting with build configurations than building your actual product features, it is a sign that your requirements have outgrown the automated abstraction layer. If you can achieve your goal using Config Plugins, stay in the Managed workflow—it keeps your upgrade path to the latest React Native Release Train much smoother.
Key Takeaway: Only transition to the Bare workflow when your project requires custom native modifications that cannot be resolved through Expo Config Plugins or standard native modules.