7 ms·
I think PWA and "packaged" versions in app stores are absolutely the right route for a significant majority of apps. Obviously anything "game like", apps that n
by samwillis 4y ago
I think PWA and "packaged" versions in app stores are absolutely the right route for a significant majority of apps. Obviously anything "game like", apps that needs extensive native features or is incredibly performance critical would be better as a native app. However so many apps are just a version of the web experience anyway, whether it's a content consumption app, something like an online sore, or a business/enterprise data app.
The old thoughts about the performance of PWAs and apps built with PhoneGap/Cordova are complexity superseded now. The performance of webkit/blink on mobile devices is so impressive a well made app will be indistinguishable from a native mobile app.
If you are looking at packaging a PWA for app stores take a look at PWABuilder (https://www.pwabuilder.com https://www.pwabuilder.com) and Capacitor (https://capacitorjs.com https://capacitorjs.com). I particularly like Capacitor as it is so extendable, you can easily have extra functionality using native features for your packaged app. Combine Capacitor with NativeScript (https://capacitor.nativescript.org/introduction.html https://capacitor.nativescript.org/introduction.html) and you have one codebase in one language (JS or TypeScript) that covers all your font end, on all platforms, including all native apis.
Packaging a PWA for app stores is also the best way to make them discoverable right now - he majority of users will default to looking there.
On top of that, with WASM you can increasingly use things such as SQLite (https://sql.js.org/ https://sql.js.org/) as you local datastore for PWAs and then, with Capacitor, use native SQLite for the packaged version, unifying your entire front end.
- ravenstine 4y agoThe problem with PWAs is they will never gain parity with the functionality of native development, even with WASM. Unless something changes both with mobile operating systems and their respective app stores, PWAs are a failure. I do agree, however, that PWAs have adequate performance. Even back 9 years ago, performance on mobile could be acceptable, but you just couldn't overload the frontend with countless UI modules.
- __ryan__ 4y agoThe problem with PWAs is they will never gain parity with the functionality of native development. Never? Why not?
- Karunamon 4y agoBecause the only two platforms that matter have multiple incentives to keep it that way, and little, if any incentive to make them more useful. Even if we lived in a world where new features didn't have to be continually gimped and restricted in the name of tracking prevention and general security, there will never be any significant motion on PWAs so long as the Apple/Google duopoly exists.
- pjmlp 4y agoExcept Google's is one of the main PWA backers, https://web.dev/ https://web.dev/ belongs to Google. Here, how to officialy create packages for the Android app store, https://developer.chrome.com/docs/android/trusted-web-activity/ https://developer.chrome.com/docs/android/trusted-web-activi...
- BiteCode_dev 4y agoBecause you require deep integration with the OS for some tasks, and the browsers will always lag behind that. How do you create a menu to select a wifi network from a PWA right now? Or a new driver for you graphic card? Or an equivalent to LittleSnitch? You can't. The only way it would be possible would be that browser, os vendors and standard commitees manage to formalize an API for every single OS behavior accross all major platforms, and do so every time something new appear on them. This would require a level of resources and cooperation that simply doesn't exist. We already have a hard time cooperating of thing that accessing BT and USB which have been there forever.
- pjmlp 4y ago> How do you create a menu to select a wifi network from a PWA right now? Or a new driver for you graphic card? Or an equivalent to LittleSnitch? You also cannot do those examples on native apps, they are usually only allowed by the OS itself. Anything CRUD related can be easily done on modern browsers, games are one of the few exceptions as WebGL/WebGPU will never be a match to what Metal/DX12/Vulkan are capable of. Still, plenty of fun can be had with Playstation 3 like graphics.
- k__ 4y agoThat might be true, but as long as your specific app doesn't need the missing features, you're probably better off with a PWA. Not having to meddle with and pay 30% to app stores alone is a huge win.
- ravenstine 4y agoThat is until your app suddenly needs to do something not allowed for PWAs. > Not having to meddle with and pay 30% to app stores alone is a huge win. Why would Apple or The Google do that? There's nothing stopping them from charging developers for listing their PWAs on the stores. The only reason I can think of is if they think PWAs are sufficiently nerfed such that they don't need to do code review, which further backs up my original point.
- k__ 4y ago"That is until your app suddenly needs to do something not allowed for PWAs." If that's the case, put it into Cordova or something. Just lazily pay the price when you actually getting something for it.
- paxys 4y ago> The problem with PWAs is they will never gain parity with the functionality of native development, even with WASM. They will have as much parity as the platform manufacturer wants them to. If more people and developers adopt PWA then Apple/Google really have no option but to loosen their control over their ecosystems. Maybe then we'll finally have a third competitor in the race.
- depressedpanda 4y agoI'm no fan of Google, but let's be honest here, they are hardly the ones holding PWAs back.
- paxys 4y agoWell they still don't allow PWAs in the Play Store without bundling them as full apps and going through the regular publishing/update/approval process, which kinda defeats the point.
- depressedpanda 4y agoSeems kinda fire and forget to me: https://news.ycombinator.com/item?id=32679340 https://news.ycombinator.com/item?id=32679340
- ravenstine 4y agoWhich is weird as hell because treating PWAs as apps (from a mobile UI perspective) could be built in to the OS itself. Maybe there's some reason The Google won't do this, but OSes already treats the web as a real thing (integrated web views and such), so PWAs would seem like a next step to that.
- randfur 4y agoIt is built into Android. Go to twitter.com, log in and then accept the install prompt that appears. It integrates seamlessly with link sharing OS UI and jump lists.
- 4y ago
- Aulig 4y agoI agree with you, however keep in mind that the app stores have rules against just shipping a webview. Disclosure: I founded https://webtoapp.design https://webtoapp.design where I create apps based on websites, which is how I know the following. If you have a well performing website that feels like an app (e.g. by being a SPA), you can get accepted with an app consisting of just a webview. If you have a regular website on the other hand, there's a high chance you'll get rejected by Apple (Google has the rule too but basically never rejects webview apps). You can get around this by replacing some parts of your website with native components (e.g. app bar instead of website header, native drawer menu) which will make your app feel more like an app, so it's no longer in violation to the guidelines. That's basically what I'm doing for my customers with great success (never failed to publish an app because of this rule). Of course keep all the other App Store guidelines in mind, such as whether you need to use in app purchases, provide a login with apple, etc.
- modeless 4y agoGoogle doesn't have a rule against publishing PWAs in the Play Store. In fact, they encourage it and made specific APIs and tools for it. https://developers.google.com/codelabs/pwa-in-play https://developers.google.com/codelabs/pwa-in-play I published mine years ago and it's awesome because I never have to touch it. I don't go through app review, I just update my site whenever and however I want, and my store listing just stays there. https://play.google.com/store/apps/details?id=com.darpinian.james.seeasatellitetonight https://play.google.com/store/apps/details?id=com.darpinian.... I also published on the Windows store, which works similarly, but nobody uses it.
- depressedpanda 4y agoCool. I went to https://james.darpinian.com/satellites/ https://james.darpinian.com/satellites/ which I found by visiting the link provided in the Play Store page and installed it as a true PWA. I got no prompt that it was available as a PWA though, I had to open Chrome's menu and tap "Install app" manually.
- 4y ago
- Octoth0rpe 4y agoI agree with you, but it's interesting to me to observe that you haven't been downvoted into oblivion, which I think _would've_ happened if we were speaking of packaged PWAs in the form of Electron/desktop apps. Do you think the same arguments apply in that arena as well?
- modeless 4y agoElectron apps are not PWAs. The difference is that PWAs share the browser engine with the user's default browser, saving memory and disk space and dramatically improving security vs. Electron. On mobile, "packaged" PWAs are usually still using the user's default browser engine.
- Octoth0rpe 4y ago> disk space Undoubtably > saving memory Less certain > dramatically improving security How so? That seems pretty dubious to me.
- modeless 4y agoI am not sure why you would doubt that running two or more instances of Chromium uses significantly more memory than one, all else being equal (i.e. the same set of loaded sites). As for security, as a user you can be sure that a PWA is bound by the browser's security policies which are in general quite restrictive even for installed apps. An Electron app is not bound by any browser security policy and can do literally anything that a native app can do. And if the app has any kind of JavaScript injection vulnerability then those capabilities are exposed to malicious code. There's a history of Electron apps having vulnerabilities like this. Furthermore, browsers are frequently updated to address security issues in the browser engine, while Electron apps almost always receive the same updates much less promptly. So if the Electron app ever renders HTML or JS that comes from the network (which most of them do in one way or another), you are vulnerable to those issues too.
- mikewhy 4y ago> > dramatically improving security > How so? That seems pretty dubious to me With an electron app, I have access to your file system and can start deleting things. Yes, some operating systems might gate access but it's not standard or granular enough. While the file system api in browsers requires your approval.