I didn't really like react native. Building my UI entirely with components written by someone else, not easily modified. Having to conform to how the apps get exported, yet still having to manually configure lots of things. When deploying apps there was a bit of an insistence to host your JS bundle on a server instead of distributing it with your app. In the case of expo - Expo wanted to host the JS bundle on their own server. It was strangely strict and and rigid. It was difficult to use native libraries sometimes since they were all community-made.
I ended up using Ionic's Capacitor. I could build a web app, with native libraries and optional UI components, and compile it to all sorts of platforms.
Sorry you've had trouble with React Native in the past. The main benefit to using React Native over Ionic is that there is no Cordova anywhere in your project, everything is native.
Also ICYMI Expo added support for self-hosting your app over a year ago now. There is also a bare-workflow for Expo which enables you to easily add any native code to your app (released ~10 months ago). And as of recently you can add native packages very easily to any React Native project with the auto-linking feature created by Expo. It's a part of the react native community CLI and the Expo CLI so it's very accessible.
My main focus is JavaScript specialising in frontend UI with React. I like to explore different frameworks and technologies in my spare time. Learning languages (programming and real life) is a blast.
Location
London
Education
Bachelor of Design Innovation in Media Design, Victoria University of Wellington
I didn't really like react native. Building my UI entirely with components written by someone else, not easily modified. Having to conform to how the apps get exported, yet still having to manually configure lots of things. When deploying apps there was a bit of an insistence to host your JS bundle on a server instead of distributing it with your app. In the case of expo - Expo wanted to host the JS bundle on their own server. It was strangely strict and and rigid. It was difficult to use native libraries sometimes since they were all community-made.
I ended up using Ionic's Capacitor. I could build a web app, with native libraries and optional UI components, and compile it to all sorts of platforms.
Sorry you've had trouble with React Native in the past. The main benefit to using React Native over Ionic is that there is no Cordova anywhere in your project, everything is native.
Also ICYMI Expo added support for self-hosting your app over a year ago now. There is also a bare-workflow for Expo which enables you to easily add any native code to your app (released ~10 months ago). And as of recently you can add native packages very easily to any React Native project with the auto-linking feature created by Expo. It's a part of the react native community CLI and the Expo CLI so it's very accessible.
That's an interesting angle. There definitely seems to be an ideal path and if you want to venture off that path, it's challenging.
I'm glad you found a solution that worked for you, I've had a brief look at Capacitor.
Did the project you create, use many native APIs - how did you find that integration with the native platform?