No, it’s no different to any of the other modules with native code that Expo includes (unless I’m missing something). I mean, in some cases they might have made some modifications to the code to make it work better in the Expo client, I suppose, but for something like
rn-fetch-blob I don’t think that would be necessary.
If you’re not using Expo you need to install it (possibly using
react-native link depending on your version of React Native). But the Expo team has done this already, so everybody using the Managed Workflow can just use
react-native-screens or other things that depend on it (e.g. React Navigation). But if for some reason you didn’t need
react-native-screens you’re still stuck with it taking up space in your app.
i.e. as far as I understand it, native code in a React Native app is basically either linked in or not. If it’s linked in you can use it. If it’s not, you can’t. I don’t think there’s anything like a module you can dynamically link in (like a plugin or KEXT or Linux kernel module etc.) after the native code is already compiled, which I think would be required for what you’re thinking of.
The Expo team is working to allow customising builds of standalone apps which would, I think, make it much easier to add things in without everybody paying the price.
They’re also working to make it much less painful to eject.
I don’t know when the above will be ready, but things should be closer when SDK 37 is released (planned for 31 March AFAIK.)