Should I use Expo bare workflow from beginning or eject later ?

I am working on an app in which later on I will need to integrate Bluetooth into my Expo app.
Since a lot of my app’s other functionality will require Expo SDK modules.
Since I would eventually need to eject later on anyways, I want to know which is a better solution of the two for a faster development experience :

  1. Create an Expo bare workflow from the beginning itself so that there is no need to detach later on.
    Since all managed workflows SDK are supported in bare workflow too, there should not be a problem from the SDK point.

  2. Create an Expo-managed workflow from the beginning. Code all the remaining business logic and when it is time to code the Bluetooth logic, eject to bare workflow and start working there.

They are working on the ability to add native code to Expo managed apps. The plan is for it to be ready some time this year.

I would start with the managed workflow. If EAS Build supports building with Bluetotth support by the time you need it, you can stick with the managed workflow. If it’s not ready by the time you need it, eject.

You should be able to revert to the managed workflow later too, but I don’t see any benefit in starting with the bare workflow from the beginning if you can just eject when you need to.

https://blog.expo.io/expo-managed-workflow-in-2021-d1c9b68aa10

https://blog.expo.io/eas-build-april-preview-update-ebd7dff9dd25

2 Likes