Really? They’re adding new libraries every month. And most of the libraries are just ports of the most popular ones for the given functionality. For instance, their maps module is just airbnb’s maps. If you had to exit expo for some reason, you literally wouldn’t have to touch your map code.
And the only libraries you can’t use are ones the require react-native link… and again that’s only if expos SDK doesn’t already have it. Plus they’re making your expo app virtually identical to create-react-native-app, which is the defacto direction things are going. if you exit, you’re basically ending up with a CRNA.
This is one of the big issues with the programming community. They’d rather spend a month re-inventing the wheel because (1) “it would be good to know” or (2) you may hypothetically one day have to spend a couple weeks to change some underlying technology. Is anyone regretting not knowing how to run their own server system in their basement now that we have the cloud? Are people who never actually needed the fine grained control they planned for really glad they wasted their time “decoupling” to use 14 separate libraries? Is anyone who struggled through react-native 0.0.1 feeling like that time gave them a big ROI now?
Yes, maybe you don’t want to use expo. But first you should be quadruple checking that what your app needs are not do-able with expo. I honestly can’t think of many use cases where you need something outside of expo. From what I can see, the only very common thing missing at this point is a payment module which (1) you can get by with http instead of native and (2) is going to be included in the next release anyway. You can use any router you want. You have what you need for finger print scanning, barcode scanning, maps, file system, contacts system— and it’s all cross-platform out of the box. Maybe if somebody else is footing the bill, and they could care less about the cost, then yeah you can spend time cobbling all of these together and re-inventing the wheel, but I’m not sure how that’s a good business decision or a pleasurable developer experience.
For me, I’m not that interested in learning a bunch of stuff that is going to be abstracted in a month by things like create-react-native-app, expo, or some expo competitor. You have to pick and choose your “learning battles”. And ask yourself… in two months is this going to be abstracted away from what I need to be concerned about? Often the answer is yes. And I’m just not worried that the guys at Expo, who would run circles around your average react-native developer, are really that concerned about stealing the source code for you CRUD app.
Tbh, I feel like your post is the programming equivalent of fake news.