Why haven’t PWAs killed native apps yet?
kevinbasset.medium.com
kevinbasset.medium.com
I can always tell when an app I am using is just a web app bundled for iOS or Android. They never feel as polished or tightly integrated with the host OS; buttons don't look the same, UI paradigms are genericized, platform-specific features (RIP 3D-Touch) are flat out ignored.
I say this as someone who develops web apps for a living: native apps are almost always more fun to use.
I mean, come on. Making me go to an app store and installing an app to do a simple business transaction is not a good user experience.
Are we just done with the whole web site thing already? Because I kind of liked that bit where I just typed in an address and clicked a few buttons. Worked great, from what I recall.
Let’s not make everything an app of any sort, maybe.
The OPs point is we're now blinded to all these website popups asking for permission, that the web app potential can't truly breakthrough.
Even though I hate it, can see why those "simple" apps exists: the Web still feels somewhat hostile to phones. Unless we create an alternative for the scrolling-page-point-and-click DOM[1], mobile will continue to be a second-class citizen in the Web.
[1] There's WASM, but I'm not sure if the performance will ever match native UI rendering implementations. Or Google would had implemented Flutter in WASM from day one.
GMail is bloody awful. I can hardly stand using it. Been using Thunderbird for a while now and have not many complaints.
The whole "IMAP" purist thing is unnecessary; there are plenty who prefer not using the GMail interface and have no idea what IMAP is.
Telemetry, activity tracking, etc.
NeoMutt doesn't send everything I do to a persistent log accessible to data broker parasites and NSA functionaries.
Not being turned into cattle watched over by an enormous Panopticon is a pretty major Killer App feature.
I like that it has critical features like a sane approach to contact lists and “sweep”. I also like that I can send a message with priority - a feature mysteriously still missing from gmail.
https://blog.pwabuilder.com/posts/publish-your-pwa-to-the-io...
It is Apple that has had issues with PWA support.
> While WebKit is making progress on PWA support, at the time of this writing, PWAs remain a second-class citizen on iOS. The iOS App Store’s support for PWAs is non-existent, requiring a web view-based solution like PWABuilder’s.
> Additionally, because iOS doesn’t allow 3rd party browser engines, your PWA is limited to WebKit’s PWA capabilities, which are currently lagging behind other browser engines.
Those apps are so much smoother to use than mobile webpages, even if the pages are AJAX. (And I say that as a web dev.) PWAs suck, they optimize for dev experience (same codebase) over user experience.
For stuff like buying plane tickets or booking hotels, I much prefer to just use the website itself. I see no benefit to these things being made into PWAs or occupying any kind of permanent space on my device.
For instant-apps you invest all the effort but they don't remain on the device (and are limited in size to begin with)
Also - it doesn't take long to download apps today (games - now that's a different thing)
That's just app hoarding.
They will still need to know if their gate has changed or whether their flight is delayed.
There have been numerous accounts where someone couldn’t use a credit card overseas because their bank tried to send them an SMS that they were suppose to reply to to verify a transaction.
Also, SMS cost a lot more at scale for the sender than mobile notifications.
But even then, you first need to know whether your bag is at Terminal South or Terminal North first.
Is it really easier to dig through your email than just click on the app and your boarding pass show up? And since it knows that you’re going to probably scan it, the screen automatically lights up
Delta will also notify travelers via SMS, Email... it's not app-only.
It’s a much better experience just to look at my boarding ticket in my Apple Wallet that is updated.
When I’m ordering food on Uber Eats, I can see where the driver is in real time.
Another feature of the Uber Eats app is chat and automatic translation. When I was in Florida, I discovered how many people who work for Uber don’t speak a word of English.
United is a phisher’s dream target. No MFA possible, and they spam their customers with zillions of login links on dozens of different domains. I’ll bet you can register unitedcardawards.com and get thousands of credentials without even sending out phishing messages!
For example, many predict PWA development will be cheaper for them in the short-term. They are first optimizing product development for short-term cost. That focus impacts the released product more than PWA’s strengths and weaknesses. Others choose PWA hoping for a way to rapidly release and iterate MVPs of experimental business ideas. Again, the rationale has a greater impact on the user experience than the tech. Some expect native stacks will let them more deeply tune and polish the user experience than PWA. Or access richer or more performant device capabilities that PWAs cannot. And, this focus on experience over cost impacts the users’ experiences more than the capabilities of native.
In short, many PWAs feel poorer because of product development goals and constraints that precede PWA. These products were always going to give a poorer experience, regardless of the choice of PWA or native.
It's objectively true if your requirements include multi platform support (particularly web) and don't have hard native requirements (such as device Bluetooth access).
> Others choose PWA hoping for a way to rapidly release and iterate MVPs of experimental business ideas. Again, the rationale has a greater impact on the user experience than the tech.
This isn't always true.
Expedience, familiarity, or new and shiny are very strong gravity sources in making a decision.
The design skill of the team and org will have a bigger impact on the final product than the decision. Crappy native apps are as bad as crappy web apps. And there are tons of crappy native apps. Exceptional software is a relatively rare breed of software.
That said, I will grant that some organizations will have a rushing about management style that can pretty much only build short sighted crap and if given the choice they would probably opt for a PWA. Even as I repeat this logical seeming rational I have worked at such places and they haven't built PWAs, so it's not some universal. They still fell into one of the above gravity sources.
I find myself deleting wrapped PWAs. If I need to use the service and am paying, I’ll ping their customer support email. If I’m not, do I really need it? Life is too slow for stodgy apps and hamburger menus on iOS.
You've nailed it. Not just fun to use: Users prefer native apps because mostly they are a much better user experience.
However, I don't think it's because web apps are incapable of being good. Apple has kneecapped the functionality of their browser and locked users into it as the only option; it's obvious willful negligence to convince developers to write more native apps. Native apps that Apple has the exclusive right to profit from.
So, why haven't PWAs killed native apps yet? Because Apple understands user experience, and they'll never add PWAs to the little blue App Store unless the US government holds Tim Cook at gunpoint. It's a senseless business decision to them, PWAs haven't succeeded simply because the dominant platform (Apple) decided they shouldn't.
A next-generation software delivery system is being held back because one (1) company profits from the status quo's exclusive distribution rights. I hope the SEC is taking notes!
How many startups and small-to-midsize companies are going to invest as much as MS has into VS Code? Probably not many. Even an investment half or third as large would be unusual.
The point is that building an Electron app of the same caliber as VS Code is a very expensive endeavor and likely not within reach of the vast majority of projects using Electron. That will continue to be true so long as using Electron is seen as a way to cut development costs to a minimum rather than as a way to develop a high quality cross platform app at a cost that’s higher than that of a single native app, but cheaper than multiple native apps. A philosophy shift is required for Electron to shine.
https://cppcon.digital-medium.co.uk/session/2022/how-microso...
Why wonder how we managed to create applications across 8 and 16 bit platforms with their dedicated hardware and zero help from Web technologies....
You should try doing some frontend with the modern DOM (not the frameworks), it's very flexible. It also performs quite well.
Electron has a lot of other problems, that become worse on mobile. But UX restrictions is not one of them.
Could. Teams tries to be smarter and paints the window with 1px margin which makes resizing impossible.
If web developers really want to improve usability: You have an app with 1 text field ? Make this field accept keyboard focus by default. Why do i always have to click in a text input field before i type ( yes Teams also does this)
I am not aware of any one one that is great (I blame it on the environment's culture and the frameworks). But if the Teams team insists on doing stupid things, it's not Electron's fault.
If only they were cross platform.
Electron is eating your phone storage, and subverting its security. But not the battery.
But then do user care for apps they don't enjoy to use on a fundamental level ?
My local garbage collection company has an app, and I only need it show me what garbage will be collected today and this week. I use it almost everyday, but couldn't care less if the buttons feel native, or if the UI paradigm is generic.
Having all the resources downloaded on the phone still makes the app faster to open than the web site, and I'd have been 100% happy with a PWA.
If we look at phones as tools, there are hundreds of tasks for which "there's an app for that" but an app built specifically for every platform is just overkill and a waste of resource.
Can someone tell me what PWA even is from user perspective? I think most users just see web and web apps that they can use through their browser and then there is the app store and its native apps. Most people have no idea what the hell is a PWA. Even I don't fully know what it is because I don't really care.
To me there is the web with collapsing non-optimized layouts, annoying forms, "Please login"/"Enter your billing address and credit card information" popups and then there is the perfectly crafted mobile UX with Face ID, Apple Pay etc. that just has all my data and just works.
You are absolutely correct that most users prefer native apps but I have no actual data on why.
good: https://cancel.fm/ripcord/static/ripcord_screenshot_win_6.pn... (densely packed information, respects the fonts of my OS, menus with dialogs, opens in 0.01 second, etc.
bad: slack/discord. they make me want to stop using computers altogether whenever I have to interact through one of those
as a developer, for now my experiments porting code requiring full-throttle maximal performance from the user's hardware in https://ossia.io to wasm for https://ossia.io/score-web really still puts wasm in the "toy" section, it's like going back to 15 years old hardware. Sure, there's likely wasm-specific optimizations that would help, but i don't need to do any of those for maintaining mac / win / linux versions so this is a bit frustrating. Also wasm is not likely to be able to load the tens of thousands of native VST, etc... native-code-based plug-ins developed over the last decades.
The feel good answers by devs about native experience or OS integration don't have any real data backing them that I can find.
good riddance.
as someone who uses various operating systems on a regular basis, niche "features" like 3D-touch are an annoyance and force adjustments and break muscle memory every time I switch between systems and UIs, which I do many times every day.
apple's insistence on being special and not using basic keyboard and touch conventions like the other systems do is painful.
Either give me a native app, or a pure URL for the system browser.
From other comments on Hacker News, I don't think I'm alone? I don't know how many die-hards there are, though.
I'm with you preferring the web sites, I think big tech is generally into the better data harvesting potential of native. So you have companies that push their native apps hard when a PWA would be fine.
There is truth to the ability of native to provide a better interface. I've built PWAs and cordova and now capacitor apps and I've experienced those limits. But the reality is, >95% of the time it just doesn't matter.
I think this is one of those cases where HN is going to just be an echo chamber audience. We're all power users, the majority of whom demand native apps. But we're not typical.
The jury decided, went home and had grandchildren. If anything, power user tools are in web apps. (They benefit from the cloud backend.)
It’s Shazam and Uber and your local paper’s goinga-on-about-town sections that have apps. Because they get dramatically more engagement there than on a web app.
But that's mobile. Look at Slack's desktop app. It's an Electron web app and every time it's mentioned on HN everyone agrees it's an awful resource hog and they should make a native version. The vast majority of people using Slack don't care, though.
The vast majority of people using Slack aren’t the decision makers if they use Slack or not. How often do employees complain about the tools they are forced to use, yet their employers keep paying for them for <insert one of several> reasons?
If your reason for spending huge sums of money on (usually two) native apps is because you think at some point in the future you might maybe need to extend beyond what the web can offer then you're making a bad business decision.
- people are used to getting apps from the App/Play Store. It's a very well understood dynamic. Installing from a web page is strange.
- Apple have helped make the above an even bigger problem that it needs to be by making their 'add to Home Screen' option two menus deep with no way to trigger it as a result of user action.
That's about it, really. I know people are coming to this thread to say PWAs fail because the UI is bad or because they're slow or this or that... I don't buy that argument simply because I know of a ton of slow native apps that have poor UI that are successful. Non-power users don't really care all that much if you're offering functionality they want to use (within reason, of course). I would still love to see a web API for something equivalent to UITableView, though.
If browsers started shipping support for typical UI widgets like that, I would become much more interested in the web as a platform. Bring Your Own Everything is fine for traditional websites but I strongly dislike it for building something complex enough to be considered an "app".
I don’t think I’ve ever seen installing a PWA as an option. I’ve never been prompted (though I suppose some of those “use our app!” pop ups could be trying to install a pwa, but I think they always take me to the App Store).
As the article mentions (on iOS) the install mechanism is to open the share menu and select “Add to home”.
I don’t open the share menu on random web apps to see if I can install them. The option may as well not exist. I also highly doubt any regular user is aware of the term “PWA”. Why haven’t PWAs killed native apps? No one knows they exist.
As a dev:
The one time I wanted to make a PWA the use case relied on being able to send notifications. The user was on iOS, safari didn’t support it. Dead in the water.
Maybe I’ll revisit it again now that support is finally here.
It feels like what QR codes were like 10 years ago
I hadn't heard, thanks!
https://www.apple.com/ios/ios-16/features/
"Web push notifications Coming in 2023."
PWA just aren't as satisfying to use as Web Apps; it doesn't have anything to do with relatively esoteric APIs. Just look at Twitter iOS and Twitter Web. Just moving within the app is clunky, try clicking a tweet; while the native app is full of fast animations the web app is full of empty loading screens. On native videos play quickly and fluently while html5 video can't offer the same seamlessness.
Is there a PWA out there that meets the level of polish of something basic like Twitter native app? If not, users will continue to prefer native apps; especially on mobile. PWAs will only win if they manage to make development so cheap that they kill any incentive to build natively. This is what happened on desktop
Once the filesystem storage apis get worked out, it should be much easier to have persistent sql.js, etc. without having to load the whole thing into memory and save it again constantly and without having to resort to complicated stuff like absurdsql.
I think that finally being able to easily have sqlite in pwas will make it a lot easy to maintain local state and sync it without having to have a maintain a completely separate way of handling data for offline use, ideally without having to rearchitect the whole app as "offline first" but instead just optionally allowing offline use when it's installed as a PWA.
This is assuming you want to enable offline use, but for me that's a major thing that justifies making a page into a PWA (otherwise why not just go to the site?).
There's your answer!
> A PWA can’t read your phone’s contacts, send SMS on your behalf, or access any of your phone’s features that could expose your private information.
Seems almost like a win, right?
But repeat just this part in isolation:
> or access any of your phone’s features
You’re phone has a lot of features that are either unavailable or clunky to use from web tech, that aren’t privacy related per se. I do BLE apps. I do apps that operate equipment when there’s no connectivity or internet around. Or that need tuned performance. Haptic feedback. Custom hare sheets. So on and so forth. I would love to not have to code the same thing m not Kotlin and Swift. We’ve tried. It just fails to execute well in the end.
you cannot adblock in native apps like you can in web apps. and web apps can never be as invasive.
no matter how good PWAs will be for the consumers, they lack all the user-hostile things producers expect to be able to do. this is why it will never happen, sadly.
It came out in the Epic trial that 80% of App Store revenue comes from games and in app purchases.
This only holds true if one directly navigates to the website in question, which I would argue is unusual at best. The next closest thing to searching the App Store/Play Store is searching for the app with Google, where one will be met with pages of results that are likely not helpful, particularly for the type of highly general queries that tend to be used when shopping around for an app (e.g. "recipe app").
Additionally, the App Store and Play Store provide some signal of app quality by way of reviews and ratings, which helps skip over the more obvious clunkers and lemons and filter out the options that don't have the features required. You don't get that with PWAs, making for more time wasted evaluating each PWA in the category.
————
On the question posed by the title, from the developer side of things a factor I don't see discussed as much is that for various reasons, a lot of devs don't want to write for the web ecosystem due to the tech stack involved. If it were easier to opt out of JavaScript and its associated ecosystem in favor of whatever devs prefer instead, takeup of PWAs would be more enthusiastic. WASM is promising for accomplishing this but doesn't seem to be where it needs to be quite yet.
At best, they’ll name websites they visit. Not PWAs.
I’m a dev. I’m not sure I can name one. After 10m of thinking… is Wordle setup as a PWA? I know I’d much prefer a native app to what they have now.
PWAs seem like many other things I’ve seen over the years. The people making something want it. They tell you you want it. But… I don’t.
I’ve never heard an argument that makes me want it. If normal people wanted it at all it would be more popular. Yes you couldn’t have notifications or access Bluetooth/etc. but I use plenty of native apps that don’t do those things. So why hasn’t anything made noticeable inroads?
If Android is 80% of phones worldwide why is it always Apple holding PWAs back?
* You WANT to rent DIVX DVDs! You buy it and then throw it away. You don’t have to rerun it!
* Windows is better with everything designed around touch. You’ll love Windows 8!
* Why have to choose heated seats when you buy your car? You can rent them when you need them!
PWAs haven’t caught on at all. And it’s always someone else’s fault. At this point I’m just flat out skeptical of “demand” that advocates say is out there.
I’m not saying they are never useful or don’t have a place. But I don’t see them ever displacing native apps no matter what changes.
…hello every site trying to upsell you to their BS PWA. I expect someone to have the bright idea of refusing to serve you what you’re there for until you do.
I really can't tell if this is /s or not. It seems to me it happens already. Reddit is a prime offender. Discord. Slack. My bank (at least they have some plausible use for some of my personal info). Maybe it's their app not their PWA, I don't know and don't care. Still mostly BS.
> I expect someone to have the bright idea of refusing to serve you what you’re there for until you do.
Again, this is /s right? It's real.
Going Native App this early would cost too much to develop and maintain, and because our platform is for publishing, sharing, and discussing web2 and web3 content, our app would require using a webview to render user uploaded html.
Thus might as well use a browser.
Myspace was just a webapp. Facebook started off as a webapp. Reddit is a webapp. I don't like installing extra apps unless necessary.
Bloatware is annoying to my target user -- Early adopters and innovators.
Thus PWA is the choice for this platform. It guarantees universal accessibility which is really important to our core values of inclusion and universal design.
It's easier to make a webapp that uses the ecosystems' accessibility tools for deaf, blind, and impaired users.
with things like webgl, we can even do lightweight gpu calculations and 3d presentations on a phone browser.
a native app is only necessary for apps that use native functions.
furthermore, until we move past jwt auth for api based apps and backends, platforms will still get hacked.
https://www.cnbc.com/2018/07/10/facebook-apple-app-store-mos...
Its noticeably more janky, the browser crashes now and then, and the animations aren't as smooth or simply don't exist, also things take longer time to load for some reason.
I think it depends on how the website is designed, but it might also be a general experience of PWAs.
Tech details: Brave browser, Android 12, Pixel 4XL with CalyxOS.
Ask users, and they’ll never volunteer any of those things as something they’re looking for in an app. They might assent when you explain that commissions mean higher prices, or that updates can help security, and neglect to mention the associated tradeoffs.
But they’ll never just go and name those things themselves.
If you want PWA’s to kill native apps, maybe start by looking at what inspires users to want them (or not), instead of what inspires publishers to want them.
To my understanding, installation is precisely the thing that distinguishes PWA’s from traditional web content.
Being in the Share menu, I'd only see "Add to home" while already in the process of sending to someone else, so I wouldn't have time to check what this is (as it would distract from my goal), and I'd have forgotten the option exists by the time my task (sharing the site) is complete.
In the real world, where companies get really mad if they can't literally spy on every action you take, PWAs need a lot of extra permissions lest everyone be victims of fuckery. Every feature that would give PWAs parity with native apps will be routinely abused even by otherwise above board vendors.
I'm only concerned with one user so I've been able to circumvent those issues by just running code on the underlying *nix subsystem on my phone and talking to the UI over websockets. For certain usecases WebBluetooth is actually enough to control a peripheral and you don't even need a rooted phone, just any android w/ chrome.
A lot of the reasoning behind why phones are so locked down feels like safety theater, there may be good security reasons, but there are also DEFINITELY good business reasons.
It's frustrating, if Android was actually an open platform (at least in the Windows sense LOL) I could do this shit without resorting to weird root-cloaking fuckery that gets broken every update.
Not even from the user
You're just seeing the authors' favorite tools. Lots of developers don't like web stack.
Most 'challengers' to any dominant methodology need 10x type benefits - at least for specific community, segment or use case. So the two immediate questions:
1. how can PWAs provide some segment of end users with 10x type benefits?
2. how can PWAs provide some segment of developers with 10x type benefits?
If a user could "save" a webpage to an app icon on their desktop, and get badges for new messages, then that could herald in a new wave.
And seriously. I think there is money to be made form offering your website users privacy from tracking and analytics. Websites potentially have an upper hand there. (of course that's entirely debatable, but just my educated hunch)
This makes me think the article is parody. Apple will never call PWAs "apps". Apps come from the App Store, silly. The question isn't when will Apple provide parity with native apps, but why they support PWAs at all.
I don't see why they shouldn't if I explicitly want to give them permission.
for webapps to succeed they need ux that fits their platform: a browser.
the best thing about webapps is they seamlessly move between devices. all you need is a browser and your password.
Imo part of the issue is the half-heartness. There's been endless shitty medium-level platform shit shows. File System API utterly failed to be reasonably performant cause it tried to coddle & protect webdevs from platform concerns & was utterly incapable of being reasonably useful at all for real work (gross violation of Low Level Extensibility Manifesto, demonstration of egotistical we-are-the-spec-authors-we-know-better shit-show-ism). So we have File System Access api which is trucking along but only has like a third of the use-cases implemented (origin private only, no actual useful filesystem interaction). And it's still a total shitshow cowtowing to emscripten as if it's literally the only stakeholder & the rest of the web can get bent.
The people with a actual good ideas to make shit better are far far far away from the web itself. WASI is a great example, refusing & ignoring literally every single thing that has happened ever anywhere across the entire web to concot new capability-based POSIX like interfaces that make absolutely zero use of anything we've done so far. The high drama AssemblyScript author blew up over this[1], and they are high drama, but they're definitely right. The people who actually wamt to shoot for real targets, to improve the system, have no willingness or interest in doing it at all within the framework, using anything at all that exists so far, and have created their own parallel universe with absolutely no connection & no hope of being usable in the browser (but being rapidly accepted on the server under the lying pretense that this may become "web" tech, in spite kf wasi ignoring all webspecs & having zero presence in webspec world).
We need to go further. We need to improve more willingly. We need to see & attune to what progress is fake & not convergent (wasi). Progress has been huge. Vast. The haters and the deniers are obviously wrong & not worth regarding, full of petty small zeal that begrudes the gains happening elsewhere. PWAs are winning. The platform is radically improving in so many ways. But understanding where our capabilities are immature & need improvement, being able to make big significant changes possible, responding & acknowledging difficulties faster; the community has limited limited resources, and as a non-centrally controlled universe of technologies, where naysayer opinions can hold huge sway; it blocks the good. Making good & progress possible is essential. Finding ways to open up what we are trying & exploring is essential, is what has always made the web so great. More! More more more!!