What are the differences between the "bare" workflow and the "custom managed" workflow?

Hi all! First time poster here, so please be gentle :stuck_out_tongue:

First off, let me just say that I’m not really sure whether this question belongs in this category or not, since it relates to both the bare and managed workflows. Having said that, please feel free to move it if you’re a mod and feel so inclined :wink:

Anyway, back to the question. My current understanding of the differences between these two workflows is:

  • One is entered into from a managed project by running expo eject.
  • The other is entered into by running expo prebuild.

But the end result looks exactly the same to me; i.e. with either workflow you end up with:

  • Project folders and standalone apps for both Android and IOS.
  • The ability to modify the Java/Swift code and other settings-related files in those folders.
  • The ability to still write React Native code and use Expo libraries.

So what the heck am I missing, and why would I choose one workflow over another when creating a new app? MTIA :slight_smile:

Hi @coopmeisterfresh. Welcome, and thank you for asking a great question!

You are correct that the two workflows should have exactly the same result. To the extent there is a difference, it is about how you reach that point rather than any constraint on the native of your project.

In the bare workflow, you make changes to the projects in your ios/ and android/ directories by editing them directly. When customizing a managed workflow project, the projects in those directories are defined by the plugins included either directly or by the modules you import into your project. So in a bare workflow project you should commit any changes you make to your platform directory, whereas in a managed project these directories should be ignored.

Which workflow you choose is a matter of personal preference for the people working on the project.

Hi @thetc :wave:, thank you for the warm welcome and the comprehensive answer! Hope to see you around :smiley: