Yea, felt the same but haven't used react native for years either. Some concrete examples:
- Generally a poorer developer experience (bugs, bad documentation).
- Couldn't use some popular/common react native packages. It needed to be compatible with Expo, and there was an expo specific version to use the camera for example. These would have different (and more) bugs. Trying to use any unsupported packages meant ejecting, a hell that might be similar to ejecting from create react app or using craco, perhaps.
- Wasn't really adding much apart from being "all-in-one", but unfortunately each piece was sub par to the original react native.
- Unfortunately the react native docs were defaulting to suggest using Expo. They still do that now: https://reactnative.dev/docs/environment-setup. And yet developers often eject from Expo, so you'd rewrite the scaffolding of your app without expo instead of ejecting. IMHO that's quite sad to see the React Native docs still suggests Expo.
Side note: I've been using Flutter for a few years now, much better developer experience. Doesn't have code push yet, but https://shorebird.dev/ is working on it. (I am not affiliated with them).
Last time I worked with Expo, the main historical reason for ejecting (custom native modules) was all but eliminated by the config plugin system. We actually ejected at one point, but rolled back that change once we realise the plugin system could do everything we needed.
- Generally a poorer developer experience (bugs, bad documentation).
- Couldn't use some popular/common react native packages. It needed to be compatible with Expo, and there was an expo specific version to use the camera for example. These would have different (and more) bugs. Trying to use any unsupported packages meant ejecting, a hell that might be similar to ejecting from create react app or using craco, perhaps.
- Wasn't really adding much apart from being "all-in-one", but unfortunately each piece was sub par to the original react native.
- Unfortunately the react native docs were defaulting to suggest using Expo. They still do that now: https://reactnative.dev/docs/environment-setup. And yet developers often eject from Expo, so you'd rewrite the scaffolding of your app without expo instead of ejecting. IMHO that's quite sad to see the React Native docs still suggests Expo.
Side note: I've been using Flutter for a few years now, much better developer experience. Doesn't have code push yet, but https://shorebird.dev/ is working on it. (I am not affiliated with them).