-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
Imo React Native is still the best cross platform solution atm.
Flutter might be a good option, but personally I don't think it's there (yet), and I have my reservations about a few fundamental choices.
I'm not super familiar with Ionic, but afaik it's more of the Hybrid approach, web on native. It serves its use cases, but comes with its own set of challenges. It might be an option for you.
One option you didn't mention is Xamarin. I'm not familiar with it, but if .net is your jam it might be an option.
I would go with React Native. It uses native widgets, is reasonably fast (fast enough for most apps), it's flexible, and very productive.
You might even be able to use ClojureScript, a quick google search suggests it has been done before, for example see https://cljsrn.org/. I have used ReScript before with React Native, it complicates some things, but worked surprisingly well. That's one of the advantages of React Native being JS, you can still use the compile-to languages.
React Native isn't very complex imo, especially not for a simple app. If you use something like Expo it's really easy to get going and very quickly build apps.
Updating packages can sometimes be a challenge, but even that has gotten a lot better, and this is not exclusive to RN.
React Native also has a very good web story, so you could serve all platforms. See https://necolas.github.io/react-native-web/ it's used by some massive companies and platforms.
Thanks for the answer.
Yes, React Native works well with Clojurescript. https://github.com/flexsurfer/rn-shadow-steroid offers seamless development environment. However, there I'm more concerned about React Native Web, which somehow feels heavy compared to pure web approach.
You are right, Ionic is a hybrid approach, but it feels at home both as web and mobile. It has also nice Clojurescript story https://marko.euptera.com/posts/ionic-clojure-todo-example.h...
I'm still not sure which I will choose. For my application, I don't need much of the native functionality, at least not in the first phase. Webview wrapped in an application will do. The only thing I require from mobile feature is to be in the app store.