Shoutout for Framework7. I built a test app in both Ionic and Framework7 and vastly enjoyed the experience of F7 over Ionic.
For Ionic Vue is still in beta, poorly documented and had some vague errors with obtuse solutions. It didn't have all the components you might want in an app either, so less boiler plate.
Framework7 has full Vue documentation, and the handful of components that aren't Vueified (Calendar, Toasts) are easily integrated using native JS and the this.$f7 helper.
Their creator is highly active and responds to almost all (non-idiot) questions on their forum.
Downsides of F7: no SCSS but CSS variables which clutters the inspector, a lot. You can always overwrite these with a scss file but the variables are always there.
Quasar and Ionic aren’t native though. They give you the JS app in a browser packaged into an app. React/Vue native give you a real native byte code app.
Ionic capacitor seamlessly integrate with native plugins and you can write your own.
Btw the react native js engine is much slower than the one on Ionic, at least on IOS.
Ionic screwed me like a deck screw with their update path being more of a secret way into Mordor. Perfectly good app that can’t be compiled anymore without a full rewrite in what is effectively a completely different framework.
I initially used it with version 1/Angular 1.x. Then when Angular 2 was basically a complete rewrite from scratch Ionic did the same. For a little bit I was still able to compile the code but quickly their tools became unavailable and unusable.
It's true. But also I consider Angular 2+ to be inferior to other similar frameworks. It was overengineered to no end had as much to do with Angular 1.x as a space shuttle has to do with a horse buggy. I remember looking at how they proposed to specify templates via `` template strings as part of the JS code, making their template language completely unreadable and thinking how that's such a step back in usability compared to how Angular 1.x did it, which was basically what Vue.js does.
And I do still have some scars that haven't fully healed from that transition. Look at Vue's evolution from 1.x to 2.x to 3.x. The new way to create components in Vue 3 is what Douglas Crockford proposed way back in like 2008. Except it's reasonably worse for code readability compared to Vue 2.x because it is completely unstructured. And at one point the Vue team was talking about taking out half the features that I routinely use in Vue 2.x such as $emit()/$on(), watchers, etc.
I don't have as much experience with React, but from what I understand they break compatibility much more frequently than Vue does. Plus, JSX is a very polarizing tech and I am firmly on the side that dislikes it.
Compare all of the above with a project like Django where backwards compatibility is maintained for years and developers consider it a big cost to break features. It's a much more carefully developed project and it makes running the code much easier. The template syntax has not changed in what, 10 years at least? In the meantime how many JS frameworks have we seen rise and fall? As far as I am concerned, every time a framework or library update breaks my application, the framework is imposing a cost on me. Adding new features and refining existing features? Fine. Breaking the world because someone didn't like how $emit()/$on() worked? That's like if the Linux kernel decided tomorrow to switch to using Windows syscalls because they got a Windows developer on the team.