React native is an excellent framework to develop cross-platform mobile applications using JavaScript and XML. While creating react native applications developers usually come across this confusion to choose expo managed workflow or bare react native project.
Here in this guide, I’ll explain to you the basic difference between a managed workflow and bare workflow. Expo is a hybrid mobile application development toolkit built around react-native to fast the development workflow.
Expo helps a developer to reduce the complexities of developing a mobile application by providing services like building, debugging and deploying in an easier approach.
Expo managed workflow
Typically when creating an application with expo you have two options to get started. Managed workflow and bare workflow. Managed workflow helps a developer to deal with only basic react native setup as expo take care of everything else. When choosing a managed workflow expo uses the default expo-cli to build and run the application across platforms. So as It says you don’t need Android studio or XCode to develop mobile applications.
Pros:
- Easier and faster development.
- Not interacting with the native codes.
- Expo takes care of building and debugging of the application.
- Developers can use expo’s native API’s like Push notifications, Over the air updates etc.
Cons:
- Don’t have direct control over native codes.
- Sometimes expo fails to build signed APK and IPA files using expo-cli.
- NPM module compatibility issues. As in expo, you won’t be able to understand properly where the app fails.
So these are the common issues a developer face when creating apps with managed workflow. So In most of the cases, developers needed to switch into the bare workflow to debug the application and make sure android and iOS codes are generated properly.
Expo bare workflow
As per the documentation describes Expo provides bare workflow method to develop react native applications. Unlike managed workflow here you’ll have entire control over the application and complexity comes with it. And you can use make use of all of the expo’s native API with bare workflow. And you can always eject from managed workflow to bare workflow using the command expo eject.
Pros:
- Complete control over the application.
- Uses native react-native workflow.
- Debugging and deploying will be faster than the expo managed workflow.
Cons:
- Developers should be able to deal with every aspect of the application.
- Integrating native codebases is not that easy.
Which one to choose?
You may find it very easy to get started with expo managed workflow. But in most of the time, you’ll be required to switch into react native bare workflow to make use of some native codebases. In this case, my personal opinion is to get started with react native bare workflow. Because a bare workflow will teach you the underlying technologies react native uses to develop hybrid applications.
And building a release APK or IPA file in expo managed workflow is quite a time-consuming task. You may need to use Android Studio or XCode in a bare workflow, But you’ll be building it much faster than managed workflow once you understand the basic concepts.
Update: I personally chose expo bare workflow to start my react-native projects. The reason for that is the gesture handler package pre-configuration and most importantly the build APK size.
Good work ..keep it up
Thanks
Pingback: Learn how to draw a JQuery datatable with JS sourced data - CodeHacks