I saw that the question was from 14 days ago but maybe it helps:
TL;DR:
- Ask yourself if you aren’t better off rewriting it
- Compare Runtime to Runtime before Framework to Runtime (sounds like you have a complete vue app already - maybe no need for Ionic and Capacitor is enough?)
- How about Tauri Alpha (The new oxidized kid on the block)?
- Would not use Cordova again if not forced to
I’ve used PhoneGap a very long time ago, which, after the move to the Apache Foundation, became “Cordova”.
It was not a great experience. But is also a loooong time ago and absolutely incomparable with todays toolchains. I’m not sure why you would want to use Cordova straight out of the box tho. Cordova and Ionic are also different things. Cordova is more of a runtime. I think the equivalent would be capacitor. Which is by default the runtime of the Ionic framework.
Fast forward 10 years and I’ve had to make the decision, for a large team and large project, of whether we go native, or build the mobile app using cordova or ionics capacitor. It’s worth mentioning that we had parts of the apps already in a vuejs SPA. The toolchains are (nowadays lol) quite solid for both and are rather easy to use. The ionic framework comes with more bells and whistles. I’ve built POCs using both to get a better feeling - disclaimer: this is around two to three years ago.
It also heavily depends on which APIs you need access to, it’s been three years since then, and I recon it’s better now. But there were quite some differences in what one was able to do on iOS between the runtimes. Android was rather fine tho.
We ended up building everything in Kotlin, because the need for cross platform was gone due to business decisions. And if you don’t need to target two platforms, I’d do it again.
But I’ve also built two big production applications in Flutter and the experience was pretty nice.
I dabbled with Nativescript vue for a pet project, the DX was rather meh.
Recently I’ve started deploying a windows, mac, and linux build of my companies SPA through tauri, they also have mobile which we are stoked to get started with in the nearby future.
Chiming in here as well, I’m running tauri in production for a “desktop” version of our vuejs spa at a startup. The spa is rather complex business/logistics software. But in the end it hardly makes a difference what your spa does. The big pro is that you can write very system level code in rust that you can invoke from your js app. That’s pretty neat if you do want to do stuff with native apis. Another massive reason for us to switch was the bundle size and memory imprint, it’s a game changer for B2B customers with often lower spec hardware.
And the cherry on top is the potential mobile targets that are now in alpha…