I have an option to finally update an old project, that is created using RN CLI, still uses RN 0.71 and has an old/unclean code base overall. The problem is that it uses two libraries that need access to the native code. One is Scandit, which I believe is quite flexible with its integration. Another one, however is NeptuneLiteApi, which is used for printing, specifically for Android. Even currently we have some custom Java code for it.
The question is, considering these modules, is it worth going the Expo way? Am I not losing most of the Expo benefits anyways? Would a RN Boilerplate like Ignite work better here? Any other options?
I've rebuilt a React Native app using Expo, and from that experience, I would highly recommend using Expo. Even the official React Native documentation recommends it.
Regarding the concern about libraries that require native code (like Scandit or NeptuneLiteApi), you can still access native capabilities in Expo by using a development build instead of the default Expo Go app. see here for more information about development build
With a development build, you can write and include custom native code in the android/ and ios/ directories—just like in a regular React Native project.
If there's no ready-made Expo package for NeptuneLiteApi, you can: