In a recent project, I've been using Capacitor V3 (beta), here are some thoughts.
My experience with V3 beta:
I have recently written an Android + Web (iOS was already done native) app that is centred around audio playback, both online & offline.
I was unable to find any existing plugin that actually worked or had any developer support. So finally I bit the bullet and just wrote my own plugin that uses native code for Android and an open source audio library for the web.
Splitting the functionality out was easy and well documented in the Capacitor docs.
Capacitor vs Cordova
Having built the plugin, I can definitely say that it's miles better than Cordova. If something doesn't exist in the wild / it does, but doesn't work well enough, just write it yourself. However there are lots of gaps still and the plugins available do not match the breadth of those available for Cordova. Luckily you can (at a stretch) include Cordova plugins in a Capacitor project, but they don't always work, which is a pain.
The biggest upside
I don't feel stuck if I need to do something native, I can write it, searching the web for Java snippets and just put together exactly what I need.
The biggest downsides to Capacitor are:
- The badly maintained documentation
- Rough edges in core plugins that should just work out the box - e.g. SplashScreen, Local Notifications (see my other post for details!)
- Poor response from some of the core team (apart from a select few) on the forum/github discussions.
- Sometimes the docs say something should be referenced a particular way, but it's just completely wrong, leaving you having to guess/hunt your way around the issue.
As with anything, there are acceptable workarounds if you're willing to invest some thought into each problem that may occur. StackOverflow, the Ionic Forum and using your own brain are all your friends.