What stands in the way are Native iPhone apps are better. It also goes for android too. That's why PWAs fail. If they were successful Apple would find a way to monetise the hell out of them.
What stands in the way are Native iPhone apps are better. It also goes for android too. That's why PWAs fail. If they were successful Apple would find a way to monetise the hell out of them.
Native applications might offer marginal performance boost, but given how optimized modern web is and how powerful are devices that I use - that's not an argument to me unless I do something computing intensive.
I don't know how incredibly self-centered and obtuse you might be to think that your specific crud #383835 is not like all those other™ crud apps and absolutely requires a native application.
In a browser I can: * Freely select ANY text(unless for some reason some special snowflake website thinks that it needs to disable text selection) * Bookmark, add tags, sort, organize websites how I want * Sync all of my information and access it on all platforms, not platforms that vendor decided to lock me in * Add plugins that allow me to modify and work with content how I see fit * Prohibit JS, ads or any sorts of tracking
And probably at least another 10 things if I think longer than 2 minutes about it.
All of this is just from perspective of a user. If I were to write from perspective of a developer, that would take a whole blogpost to explain how native applications are relic of the past and should just roll over and die.
in the end, freedom of choice, diversity and innovation would make every service find its optimal incarnation (native or web)
in addition, web security is actually so robust via sandboxing that I feel more secure in a top browser on any web domains than downloading stuff from app stores
native apps have a built in "layer" of bot security, however... a website has to implement security itself because even a smart fridge can make GET requests :)
but I just play the devil's lawyer... I think 999 out of 1000 "standalone UX" better off delivered from the web
Why are we allowing this degradation of software? Each time I think about opening Spotify (Electron) on my desktop, I dread the loading time and the RAM it would use.
For very simple apps, frameworks like Tauri should do the job. But for complex applications, let's please not lose our benchmarking standards.
My app: https://www.get-plume.com/
cherry picking examples does not mean the web MUST be slow, maybe the web apps were programmed badly... I can write even worse native apps than these web apps and it will not prove anything
did you ever try compile c++ code to webassembly and check out the performance "degradation"?
it still can be true that for this special task, a native app is the better choice and people would buy it from the App Store even if 30% more expensive
I mean nobody will and wants to take away the choice of using native tech. The degradation is on sooo many levels is not a necessity or consequense.
Web apps are not replacements, they are a choice, an addition. I really do not understan these kinds of comments that frame web apps as a compulsory security nightmare or replacing superior native with inferior web...
Safari stays, native stays, you and every developer can choose.
It may move better developers towards the web stack but then faster and better web apps follow. They will make use of web capabilities and technologies (like better js, multi core, web assemly, optimizations etc).
Chill! No self respecting company will publish inferior web apps if native is so much better in their special use case!
Slack, Spotify, Teams, Notion...
Why do I need to buy the top of the line M3 MacBook Pro to run these apps with a sane performance? What tells you that these same bloated apps won't be even more bloated in the future? There's something fundamentally broken with web apps. It's no wonder the Zed team (that originally created Electron for Atom) has moved completely away from it to develop their own native GUI toolkit.
While the web stack may be somewhat slower in the extreme, I think the reason why big bloated apps like Teams are slow is not down to technology at all.
I think the causality works the other way around.
Big corporations with large teams that are systemically incapable of paying attention to detail (including performance) choose web technologies because web tech allows them to churn out features faster and gain access to a large pool of easily replaceable developers.
The only exception of late seems to be Notion Calendar (used to be Cron). It's an Electron app but runs pretty smoothly.
But I blame web "designers" not web tech because it has become so powerful on so many levels
my favourite examples are: - V8 performance (but gecko and webkit engineers are great too) - webassembly - modular modern js - offline websites with service worker caching (I mean I see practically 0 websites making use of it... you download an asset, you cache it, even offline available... how many news sites let you read offline?) - web crypto - 100s of others https://developer.chrome.com/docs/capabilities/fugu-showcase
VSCode, Figma, Discord, two can play this game.
> Why do I need to buy the top of the line M3 MacBook Pro to run these apps with a sane performance?
What kind of future super computer do I need to run NATIVE Xcode with sane performance? Why NATIVE email client drops frames on scrolling thousand long email list while I can scroll Amazon web page forever without perceived frame drops? Why opening NATIVE settings redesign on Mac OS stutters harder on my MBP 2018 than settings my shitty HTC from 2012? Why do I need to go through billions of steps to get OSS application working when it’s not notarized by fruity dictator?
EDIT: While VS Code is a fine app mostly. I can't really say it's performant at all when Sublime Text runs next to it.
Figma - never tried. Discord - only on web, and the same thing with VS Code.
Bad software performs badly.
spotify can choose its strategy, you can choose apple music native app (I guess there is something like this? I rarely listen to music but on youtube)
Idont know about teams but my partner has ipad and iphone and I hear often how teams and microsoft products behave bad on iHardware... it may have to do with the love these two big corps show towards each other :) maybe you have to buy a windows laptop for teams too, that is the walled garden philosophy you actually seem to protect :)
my partner now uses my laptop where I have a windows which I did not totally purged because I need this OS for testing :) hell there were chinese text the other day on the front page, you need to scan your finger twice (even if first was a success) sometimes, it cannot find the timezone from time to time :)
I am not linux fanboy, the first ubuntu I purged 20 years ago or so I tried, but in the last 5-10 years linux is just great and getting glimpses how windows works by free family IT care, pff... that is the world we live in :)
I added outlook as a web app for my partner and it has some apparent problems without testing it, but in the last 3 months I see it getting used and no problems I hear :)
I guess the web designers are not web app programmers and it takes time until a new breed of programmers takes over the web...
if I were spotify, I would keep the iOS app and you could choose 30% cheaper web or native... are they killing the native version?
and: maybe these companies are not self-respecting in the way I meant it :)
but every change is difficult... and again, it may turn out that the web just finds its use cases not totally taking over OR: Apple drops the fee to 3% and the change will not be so dramatic
check out this email :) https://twitter.com/OpenWebAdvocacy/status/17594904960226960... and this video: https://www.youtube.com/watch?v=X3NASGb5m8s
...which is not native to the platform, so you're in a way proving my point.
Unless I become professional writer, or develop an OCD about typing latency - standard browser and Electron apps (looking at you VSCode and Logseq) are good enough for my use cases.
And don't misunderstand me, there's absolutely a place for native applications - when performance matters. Millions of CRUDs on app store are not one them.
"The Qt Rendering Hardware Interface (RHI) translates 3D graphics call from Qt applications to the available graphics APIs on the target platform."[1]
Correct. That doesn’t make it a native application, still.
Your “suck” doesn’t mean anything to me. There are benefits and drawbacks to every approach. Benefits and potential of web applications and browser far outweigh current and future drawbacks for me.
The reason we allow these native bridges (Capacitor on Mobile, Electron on Desktop) is because they allow you to develop the same app once for all platforms. Without them you would need 3x the resources for each desktop app (Windows, Linux, Desktop) and 2x the resources for each mobile app (Android, iOS). Linux would be dead in the water without Electron. It's the reason we have Spotify, Slack, Discord, VS Code, etc. on Linux.
I think many mix bad websites with "PWA is a bad technology". All the cookie banners, ads and prompts to install the native app are the reason the experience is worse.
What could a native app for Wikipedia, Google or a basic news pages (without ads) do better? I use the Twitter PWA for years as it saves battery and offers the same experience. Maybe animations are not as smooth but most people won't even notice that. I also rather use YouTube in Firefox mobile so I can use uBlock even though the app offers more features and generally more ambition. For hardware heavy use cases native apps are obviously better.
Also when companies push people to install the native apps for quick access, push notifications and better data collection you can't take customer usage as a metric for people's taste.
Exactly. I put together a demo a few years ago that employed somewhat novel interaction design to showcase some machine learning tech. A number of people were gobsmacked by it and asked endless questions about what framework it was built with. I didn't use a framework. I dug into the deep recesses of CSS to make it do what I wanted. Really, you can accomplish almost anything with HTML/CSS/JS/SVG (though I'll admit it might be painful).
js web api-s have become so powerful (web animation instead of css)
of course you have to know what dom is (and there is cssom as well, modifiable via js)
but it took me some time to realize all you need is js (and understand what js-async really is)... actually I love the js async model for UI
the only problem is that js is a scripting language... some may use typescript for stronger types but what I would love to have and will never come since all web API is for js is a new language...
however, you can use webassembly for critical frontend tasks (like stockfish chess engine on lichess) or actually last time I checked V8 was so optimized that good js code was practically not inferior to webassebly or native...
it may be a current situation that some web apps seem inferior, but it is not a necessity
plenty of web developers cannot even use js as a programming language or companies do not heavily invest in web apps since 1. they already invested in a native app 2. apple crippled the web via webkit and now tries to flat out crash web capabilities on iPhones
I mean who will invest in a country with a dictator? Would you build something if the dictator can demolish it any time? Like Apple actually does this with businesses that had a web app strategy?
once companies see all platforms supporting web app technology, wait 5-10 years and then judge
if 90% of the best app programmers migrate to the web stack and flickering html-sites and css stylests are history, I would be surprised if anybody could say whether an app is native or not...
and again, you do not really see native AND web app from the same company on the same platform
but actually commanding pixels on a screen is just as possible with js as with other languages, in the end you instruct c++ or rust coded browsers with js to perform tasks and there is webassembly too
and of course, backend with supercomputers but actually it is possible from native too
Why would they be history? What's stopping these developers (or the developers not working on native apps) from creating non-flickering html-sites? Are you seriously suggesting that the only reason these sites flicker is because all capable people are creating native apps?
> but actually commanding pixels on a screen is just as possible with js as with other languages, in the end you instruct c++ or rust coded browsers with js to perform tasks and there is webassembly too
So where is this abundance of great beautiful amazing non-flickering web apps? What's stopping you from creating them now?
Apple should allow other browser engines, and these should be able to leverage the OS capabilities comparable OSes are giving to their browsers.
All the things that web apps objectively fail to do.
Funny how web apps invariably fail in that regard, too.
> Web apps are more functional than native apps by my metrics.
So far you haven't described any metrics
> because I use software to do things.
So do I. And web apps always get in the way of me doing things: they lag, they perform poorly, they break al platform conventions, they hog resources,they can barely display static information without breaking etc.
What would happen if Google added all the APIs to Chrome that are needed for every one of their iOS apps, and then offered them as "PWAs that work best with Google Chrome"? Google would not have to abide by App Store rules, nor the rules for app marketplaces, nor pay the Core Technology Fee of half a euro per install. Apple's entire approach of using their status as a popular phone manufacturer to control the software market would fall.
I don't know of a single person, ordinary person, who uses PWAs. A Cordova app is a better experience.
I'm really getting at how PWAs are basically something most people wouldn't use, not because they're missing APIs but because they're just a terrible experience and difficult to install and use.
If its Apple that is holding back PWAs so much, its not that they're any successful on Android either.
And then to extend the argument further, "App Clips" or "Instant Apps" aren't much success either from an adoption perspective, despite having full access to the APIs native apps have.
They never had full access to the APIs native apps have, what are you talking about? Last time I tried to develop instant app on Android (and that was like 4(?) years ago), it didn't have access to network interfaces or something like that. It was a great idea on paper, but terrible in execution.
there are plenty of web capabilities that have web standards, PWA is not even a thing officially... no such thing as PWA
actually, no such thing explicitly as web app, either... "installing" web apps is also non-existent officially, it is a very misleading buzzword
if you could call something web app it is a website that was switched to a "standalone UX" from a browser tab UX, according to this non-standard draft (!) https://www.w3.org/TR/appmanifest/
last time I checked, zero manifest members were mandatory... the ones you would use are "name" and "icon" which is how your homescreen button etc. would show up
nothing will be installed (but if we use this word, how on earth is "installation" difficult, you press a button and it is "installed": really fast I guess since nothing will be downloaded extra or installed... all that happens is you get some OS integratin in app discovery UI or a homescreen button or it actually depends on the OS and you can launch the website directly in standalone mode as an "app"... it is still browser run, browser sandboxed etc. just browser UI you have not
the real "progressivity" is entangled from standalone... the website may be a beast or a shitty scam site that just wanted homescreen presence and send you notifications (same with native, depends on developers not distribution platform used)
so objectively bullshit calling web apps in general terrible, difficult, something people would not use...
practically every website is a potential web app if they add a manifest file with 2 members and people use websites all the time...
the question is how good a website written, is it responsive, can it do offline etc... there are so many web capabilities now...
whether a website or a standalone website is good, easy, something people would use depends 100% on the quality... no website or web app is inherently something you described
You can't attack another user like that on this site, and we ban accounts that do, so please don't do it again.
If you'd please review https://news.ycombinator.com/newsguidelines.html and stick to the rules when posting here, we'd appreciate it.
of course it is also possible to just argue against somebody with less emotions and being more polite, without saying such things which I will 100% try in the future! my personal style is also harsh but I never intend to be offensive and surely have zero joy in attacking, insulting or making other people small
harsh honesty is difficult to separate from attacks so it is legit to ban this style altogether
I have a bunch of specialized calculators installed as PWAs - they work great for the purposes.
Similarly, there's no reason a conference should have a native app that will only pollute my system over time - PWAs are ideal for once-only events that aren't going to reuse the app for next edition.
Can you not install a native app one day, and uninstall it the next day? Or does it not count as "temporary"?
Or are PWAs uninstalling automatically somehow?
Of course a web app can be heavyweight or lightweight just as a native app. Still in a sense that smaller companies might publish smaller apps as web apps to have only one codebase justifies a web app niche for lightweight apps.
They have also way more permissions and ways to be exploited against you.
Additionally, it's the heavyweight process of installing but also distributing etc of native apps Vs PWAs
"Don't you guys have phones?"
> Or are PWAs uninstalling automatically somehow?
They don't weigh 100MBs. I feel extremely privileged to have access to super fast networks, but it doesn't mean that lazy developers get right to hog it all.
Are you implying that web developers are better than mobile developers? Because let me tell you that there are plenty of bad apps on both sides. It's not like PWAs are solving the problem that most software is extremely bad.
On the contrary, cross-platform frameworks often lower the bar.
One little advantage for web apps: the app (js code) can be downloaded just in time (not that 99,9999% ever make use of this).
If you have a game with 100 levels where a map of one level is 1mb, and 50% of visitors do not like your app and leave at the first level, they may have downloaded some fix code and 1mb, but 99mb stay on server...
Js has modules and dynamic imports for quite some time. Even app logic can be built with dynamic loading in mind.
Again, not that a news site like cnn will not make 300 request and 20mb download on first visit, showing one image and less than 1kb text :) Just checked.
A web app, in theory, is perfect for dynamically loading things but not inherently more lightweight. As always, it depends. On the task, on the programmer.
Steve Jobs died in 2011. None of the apis that make a PWA had been developed by then. How can you know what he preferred or hated?
So apple has killed both Flash and (useful) web standards and we are left with unnecessary, gate-keeping, expensive, price gauging App Stores. Hypocrisy at its finest. But at least it's got an Apple on it, so I guess it's fine
It used to be possible to "grow" stuff online. People made a living from developing Flash games (and websites). Aggregators competed and paid well for content. It's now all going to Apple's shareholders and Wall Street, and it's a complete waste of time to develop anything that needs publishing via the App Store. What a sad state of affairs
Whether Steve hated the App Store I do not know, but it was not in his original vision for the iPhone.
Or maybe they knew things like the ipaq had third-party software, and they didn't have time to add such capabilities in time for launch, so they only encouraged PWAs as an interim measure.
At least half of those things are "not on any standards track" and are Chrome-only non-standards.
(But sure let's hear the wail that Safari is the new IE or something)
Also, most companies have native apps already... Web apps are the future competitor, not present.
Do you remember when they completely removed 32 bit app support from iOS.
People on HN want to make every excuse in the world for why PWAs on Android aren’t more popular and how it’s Apple’s fault.
like there is a competition... few companies have great websites/web apps and if a native app worked, people will not abandon it for a web version of course... the competition you claim web apps lost (even on android) has not yet even started :)
in a very huge article-like top level comment I wrote about how this "install" web apps is misleading and comparing native apps directly to web technology
web technology is not all about apps... I just checked one good example: hover.com has no native app, never had... they made the website work on all screen sizes.
actually I never cared if they have web manifest implemented so that I can switch them to standalone (web app, vow)... now I see I could do this but I will not because this particular domain I choose to use NOT standalone (not as an app) but from the browser... it is a well written website that could be used standalone but since I rarely use it and from linux desktop, I do not care
actually, web manifest is a draft not a web standard yet: https://www.w3.org/TR/appmanifest/
all it does (what some people love to call "install") is initiating standalone usage and you can get a home screen button
each and every web capability practically has its own standard... caching and offline websites are possible via service workers, orthogonal to standalone and "web app"
what I want to say it is not that simple that web app vs. native... hover does not pay Apple or Google because they were capable of responsive design... if you use a service like it every day or standalone is crucial or your choice of using it, use it that way, it is still run in your chosen browser sandbox whether you hide browser UI or not
it is about choice and it is about the future... what I can tell you knowing web capabilities well, 99% of the time it is possible to deliver the same experiences with a browser as native apps deliver
the web is an alternative, even for standalone experiences (apps)... it may be like linux and stay niche or become like chromium
time will tell
Also, most companies have native apps already so no need to reproduce them.
Web apps are a future competitor, not a present one. They are really suited for smaller cross platform projects but if you follow how the web evolves, nowadays they are just a serious thing to consider for any kinds of software projects.
On Android you can go to a mobile webpage and see a fairly unintrusive, one-time banner which will let you install it to the homescreen. Sure it's only two taps on iOS (Share -> Add to homescreen), but for a start your users need to know that functionality even exists, which alone is a massive roadblock to adoption.
As a user, if I want to get notifications and an "app-ish" experience, and the developer is unable or unwilling to create decent platform-specific apps, I would happily take a PWA over a "native" app that is actually just an embedded web view or something trying to recreate the world like Flutter. If I'm not gonna get the benefits of my chosen platform, I'd at least like to not also have to deal with the downsides of App Store apps, like large install sizes and stuff getting held up or nerfed by app review.
I recognise that giving PWAs unimpeded access to the core capabilities that native apps have might result in a worse offering of native apps—as more developers choose to just not bother—but then I'd say it's on Apple (and Google!) to step up and make native a more compelling option. Any veteran iOS developer will agree there's an enormous list of stuff dying for improvement in the development and submission process.