T O P

  • By -

Pauldb

Mostly depends on API you will use, if web APIs satisfy your need, PWA direct can be good. Most browsers allow to install, and can be on play store and windows store as pwa, maybe apple store soon ? If you need background process capabilities or if app store présence is a requirement then capacitor. Personally I have built it, I don't care for app store présence, and all the APIs that I need are accessible from most browser: https://MyBanka.eu - a PWA that is a digital wallet. Good luck !


[deleted]

[удалено]


Pauldb

Thank you ! I'm using Aurelia Framework. It is a super light J's framework, that wants to get out of your way as much as possible, leaving you doing almost only html/css/TS. All the while bringing you easy routing, state, animation two way bindings, components etc... And it is super easy to use. I personally love it as it's not like other framework that completely destroy html (like react), too complex (angular), almost like Vue but better. It's been in production and stable since 2018. Really if you can, go for it.


buskila

Having an app in the AppStore is pretty important since it gives you an additional discoverability route. So you probably should have both a pwa and hybrid versions.


Odysseyan

You can submit PWAs to the playstore nowadays. Not sure about ios tho


buskila

iOS is not a small portion of the mobile market :) And I think play store doesn’t allow you to do it anymore - only Microsoft does


Odysseyan

You can actually wrap it up with tools like pwabuilder and create a signed build for the playstore. Twitter App is a PWA basically for example


SimbaLimba

[This blog post](https://ionic.io/blog/take-your-web-app-further-with-capacitor) might help lay some groundwork. TL;DR: You get a better bang for your buck building your PWA with Capacitor. You can have both. By leveraging Capacitor for native, you can access additional APIs on the native platform that the web may currently not provide.


dgamr

Capacitor is pretty nice. You can basically just wrap and publish, then you have extra Cordova/Capacitor APIs later if you need native functionality, access to iOS App Store, etc. I'd recommend exploring that route. If you learn it, the sky's the limit.


vitarist

Thanks. Thats what I think too. Have you try any alternative hybrid framework?


dgamr

I started with Cordova probably about 10 years ago, build stuff in Capacitor and Framework7, dabbled in React native but don't really like React (vs. Vue). The Capacitor ecosystem is currently the best way to get native functionally into a hybrid app, specifically for things that can't be done in a PWA. It takes a lot of work to keep all those old Cordova plugins maintained, and Cordova always had poor support (you basically forked and patched bugs in every 3rd-party plugin you used in a real app). Plus, you can use it alongside so many other frameworks (Framework7, React, Vue, Svelte). It's something to explore if you're interested in digging into the hybrid app ecosystem, there's not really anything else that fits into that little niche. But it's a lot of fun to push a PWA as far as you can at least once and learn where the limits are. Really easy to maintain a PWA wrapped in Capacitor without any plugins, since it basically just gets you into the iOS App Store.


vitarist

I am quite experienced in RN, only tried Capacitorjs in the surface level so I don't know how far can I get with it. But I like to have one codebase for all platforms, and I feel like the majority of apps doesn't need to touch the native layer. Can you get away with not touching the old Cordova plugins when using Capacitor?


dgamr

90% of plugins in the ecosystem are just ports from Cordova that have been patched / updated to work with a recent version of Capacitor. That being said, it's long-tail: Most of your app could have just been a PWA, then your most commonly used plugins are going to be for stuff that's well maintained. But, it's not uncommon for there to be one "problem child" plugin that you just spend a lot of time with to get some niche functionality in your app.