Chrome, for all of Google's sins, is a modern miracle of software engineering. Safari is nothing like as far off as people make out either.
Chrome, for all of Google's sins, is a modern miracle of software engineering. Safari is nothing like as far off as people make out either.
I would hesitate to conflate PWA adoption with JS framework popularity olympics. On a purely technical level, the only thing stopping you from using a PWA is you.
Perhaps you should reconsider your product and business model if it doesn't work without App Store presence. The App Store cannot sell your product for you. At some point you will need to interact with your actual customers if you want to succeed.
Having an app "in the store" does not equate to trust for me.
It's not about you, but the users. iOS users do trust Apple as a proxy in the App Store and consequently spend much more there than even Android users do in the Play Store (on a per user basis).
The great anomaly to this used to be Amazon where Kindle Fire users used to have even higher ARPUs than iOS, but I've been out of the loop too long to know if this is still the case.
Not too long ago I decided to push the limits to see what web apps can do now and did https://luduxia.com/reversi/ - there are no UI libs here, the whole thing bundles in under a second with esbuild, and it runs perfectly on iOS Safari.
I rather think, the main thing stopping PWA are that browsers still can not decide how to treat them. In some ways you can just do anything unrestricted and in other areas your PWA gets treated and limited like a random untrusted website, with no way to get needed rights. At least that was my experience last time I messed with it.
It is of course a problem to do it right, as prompts for confirmation just gets clicked away, but there should be a way to get real user consent for a proper app, that people trust.
But Apple for example wants to keep their app store under their control, so they surely won't provide an easy way to bypass the normal app store by giving developers a way to ship full apps just through the browser.
That’s it. It’s not complicated or restricted in any way.
Adding bookmarks, finding on the page, printing, triggering extension actions/scripts… it’s a junk drawer.
It’s not hard to explain to users at least. It certainly could’ve been much worse. Not high praise but it is what it is.
It’s an intentional choice by Apple that’s hostile to users but very aligned with their strategy to lock users into their own proprietary platform as much as possible.
For the record they are the back, forward, share, history/bookmarks, and tabs buttons.
As I explained in another reply, I don’t think Apple is being malicious here. I think they just shove everything that’s not a very common use in there.
As opposed to an obvious button that says click me to install/download. (The usual Get it on the Appstore buttons), or Smart Banners[1]. The banner/button makes it crystal clear that I can click it to install the app. (Yes, you are correct you may need additional clicks to actually install, but by that time, you are in a familiar workflow).
1. https://developer.apple.com/documentation/webkit/promoting_a...
Most users don't know about it, and need a how-to guide - similar to what the posted link does.
I think browsers can be a good platform but for that to happen they need to be a bit more batteries-included, with built in APIs for UI and other essentials that rival those of desktop platforms so crazy frameworks are rendered unnecessary.
For example, browsers don’t furnish a tableview/datagrid or even a basic single column recycler view, meaning one has to find a third party library to do those things that’s still maintained, fits into your stack, and has holes in functionality that are tolerable for the use case in question, or if none meet those criteria write it themselves. The result is a million reimplementations of the same thing nearly all of which have major shortcomings (some of which are present only because they aren’t implemented as a native browser control).
I totally get that styling is a pivotal part of web apps but I think that can be maintained without requiring devs to build castles from grains of sand instead of giving them more appropriate building materials to use.
<table> and <ol>? Or am I missing something?
The point of recycling views is as row UI elements scroll off the top they are reused for those appearing at the bottom (or vice versa) which reduces system resources for these things a lot. This way the data table can contain 20 million rows but if the user can only see 100 the UI only pays the cost for 100.
This is standard practice in native app dev and I think is a good example for the case they are making. I would argue such a thing would be needed in the hypothetical NeXT type API of course.
This sort of view has been table stakes for desktop UI frameworks for decades and is a common need.