I understand Drive working better as a native app; it needs to be able to provide a virtual filesystem to the OS and do background syncing and such. But why Uber? Uber has (or maybe had) a mobile site that works fine for requesting rides and basically everything the app can do. I don't see what value Uber being a native app adds for the user. The same goes for most mobile games; they tend to have simple graphics that the browser is perfectly capable of rendering with great performance, and they tend to reinvent all common UI components so losing access to native system buttons and such wouldn't make a difference. PWAs should also provide plenty of storage for local save files and other game data. The exception of course being games that really push the system to its limits. I don't expect, say, Death Stranding or the RE4 remake to work well without direct access to native graphics acceleration, and they're too large to load as a single webpage. I will reiterate though that this is not the case for most mobile apps, even extremely profitable F2P ones that would benefit greatly from an extra 30% revenue. Why then do they not target the web? My gut feel is that it's because mobile users are trained to look in the app store for apps and games, not the web, while desktop users expect apps to be available in the browser with the exception of some professional tools and high-end games. That is to say, it's largely a cultural problem. Of course, Apple's lackluster support or PWAs doesn't help.
I used it for years, but it didn't seem to work right on a new phone, with some UI elements not visible or off-screen, so I went back to the app.
Curiously I just realized it's the same view I get from the app on my phone a lot of the time due to some kind of error when loading the normal app view.
It's funny because the very first thing that Steve Jobs pushed when the first iPhone came out was PWA's, essentially, and not an App Store, which didn't exist yet... and the same API's are still available in Webkit I believe
That's a circular dependency though. You want that stuff because you want to use Drive with native apps and not web apps. But Drive is a first class backend (actually even more featureful, frankly) to web apps too. Basically the native Drive client is for native/legacy interop, not a barrier to a PWA future.
Holding the web back is entirely intentional and makes strategic sense from Apple's point of view. They're well aware that a majority of apps would work perfectly fine as web apps -- but that also removes Apple from the equation. Only allowing Safari on iOS and intentionally gimping it solves the problem.
I mean, I can't even blame them. Can't lose out on that sweet 30% cut, y'know?
I'm only disappointed that legislation took this long to catch up to their shenanigans, and only in the EU.
They don't care about the web and what is good for end users i.e. more APIs = less privacy.
They simply want to build apps without Apple's fee and controls.
I care deeply about privacy. That means I trust the browser sandbox a lot more than native apps. There's obviously a reason sites like Twitter and Reddit try to force their native apps on you as soon as you visit their web page on a phone -- it'll allow them to spy more on you.
You shouldn't.
The most privacy invading behaviour by far is the cross-site tracking that happens on the web. Where large data companies as well as Facebook/Google are building behavioural profiles with thousands of features and data is being packaged and sold to entities you have no knowledge of.
And all of which is being facilitated by browser fingerprinting courtesy of Google recklessly adopting APIs with little care about privacy.
A native app won't prevent Google or Facebook (or Apple) from tracking you. In my experience, native apps typically always require login, and then fingerprinting is unnecessary.
Avoiding their services, and using an open source and privacy respecting browser with uBlock Origin installed will protect you however.
The latter can be done on all OSes I've used -- except iOS.
I don’t agree with it at all to be perfectly clear. I’m only postulating that realistically the only way Apple takes PWAs to first class status is if they get a cut. Its rather unfortunate
I'm not so sure they will, now that the cat is (finally!) out of the bag.
However, if the EU is silent because it considers Apple's reaction acceptable, the new laws are meaningless, unnecessary, a total waste of time, and an embarrassment to the EU.
So my hope is that they realize this and the silence is due to the EU preparing to put Apple in its place.
F2P mobile games need to be able to send you notification spam, because they're based around habituation and addiction. You couldn't do that in MobileSafari until very recently[0].
[0] Supposedly. I pinned Google Fi to my homescreen on my iPad, it asked for notification permissions, I see a notification count badge on it's app icon, but it still doesn't actually notify me when I get a text message or call.
You do not want to load big chunk of JS because it was never cached, or as Uber used to do, download all the possible new promos every time you opened the app...
You want to squeeze through the minimal data you need to arrange your core business function.
All it takes is for network connectivity to be a little bit spotty (admittedly, Uber made it work a little bit better these days).
In the past, I've been more than once frustrated to rage from the fact that Uber couldn't just grab my A-GPS position, ping for address and send a short packet to order a car, but it had to download potentially megabytes of promo html before it let me actually do anything useful.
Avoiding it with PWA is afaik even harder (currently looking exactly into making PWA because I don't want to deal with iOS).
Some of these (increased caching and remote notifications) you can get on iOS if you install a web app as a Home Screen icon, but as just a website Uber might not get their minimum bar of functionality for widespread use. So far, I haven't seen any large companies have installed web apps as their go-to-market strategy.
Most of that frustration comes down to tooling and more specifically TypeScript. I'm not sure how to succinctly express my pain here but I have found generally that I wrestle with the type system in TypeScript far more than native offerings.
> I just wish Web wasn't such a frustrating development experience
It's got to be better than building to target two totally different platforms (and even more once you factor in tablets, Windows desktop/Linux/macOS) and then jumping through hoops to get your app packaged, reviewed, and updated consistently onto the target devices. > Most of that frustration comes down to tooling and more specifically TypeScript
I think that a lot of folks get frustrated with TS because they are coming at it from the wrong perspective. Instead of thinking about it like a static type system, think about it like "JavaScript with shape definitions". Give this a shot:https://chrlschn.dev/blog/2023/09/typescript-is-not-a-progra...
And if you want to have a lowest common denominator user experience that's fine but you shouldn't expect users to reward you for it. That's why successful apps tailor the experience for each platform.
Web apps and PWA's built with HTML and JavaScript are likely to work as-is for a decade or more given we are likely to see minimal incompatibilities with existing HTML, JavaScript, and CSS in that time and likely to see more net new capabilities.
> if you want to have a lowest common denominator user experience...
One is a native app with a budget in the millions built by dozens of engineers. One is a web app built by...me:https://youtube.com/shorts/bxs9ZpIJ6RM
Not sure that there's that much sacrifice when it comes to modern web apps.
Years ago I tried to up my game and learn to use grunt and babble and other build tools. However, I found the process extremely complex, only to end up with finicky systems that made me even more stressful, not less.
I decided to ditch all that PoS and do things the easy (and logical) way. Never looked back.
I have to say, having recently gone back to doing some web dev work (doing some dashboards with lots of D3 visualisations), I was pleasantly surprised to see how better things have gotten. working with CSS is better (with stuff like grid, flex, nested selectors), and JS is also much much better (import maps, fetch API).
I'd say for developing cross-platform apps it's a pretty good deal.
Most dynamically typed languages are adding type systems right now, and they all face the choice between rewriting/wrapping the whole ecosystem or build a very complex and ultimately unergonomic type system.
Now we can hope that those building blocks improve over time, but the current situation is so much better than it could have been.
I guess I can make myself more clear - the good thing about CSS is not the way it does layouts, but that it can do layouts on almost any device.
You can come up with a better system that runs on your own machine (1 unit of effort), but then you have to convince everyone and their dog to adopt your new standard (1 billion units of effort).
It really is amazing.
> Now we can hope that those building blocks improve over time, but the current situation is so much better than it could have been.
I think the web is under-appreciated in part because most people have never used internet connected GUI computers without it, but it's important to remember that there's no a priori reason for why the web had to exist.
In an alternate timeline we could be living in a world where all interactive software has to be reviewed by a gatekeeper. I wasted an inordinate amount of time playing with this a few days ago: https://news.ycombinator.com/item?id=39205020 and I remember thinking, it's pretty cool that you don't need anyone's approval to release something like this, nor do you need to pay excessive fees to distribute it, nor does it take any meaningful time to download/install, and yet it works on all my devices, and it's relatively secure.
This. Apple's Safari (on iOS and macOS) is the Microsoft IE of 2020s. It's unbelievably behind the more sophisticated browsers (Firefox, Chrome) and yet, Apple couldn't care less.
As for why Safari isn't the new IE, I recommend Breaking the Web Forward https://www.quirksmode.org/blog/archives/2021/08/breaking_th...
It is effectively Google's favored platform. They effectively get to be the gatekeepers for what standards become accepted. They control the most widely used engine, and fund the only opposition so they have an incentive to avoid going against them. Just look at how everyone dropped the ball in the recent JPEG-XL vs WebP news.
I think that despite that, they did a decently good job. A few years ago, I created a voice-only social app: people can easily record and send voice memos.
I built it using fairly new tech at the time: the web audio api and native web components. (I refuse to touch react-style frameworks with a 20-foot pole.) It was 99% compatible with all major web browsers from the get-go, even with its fairly advanced "tech."
The only thing that wasn't cross-platform was the audio files themselves. I had to make a deep-dive into the world of encodings and codecs so that I can offer users audio files in the formats that work on their machines.
Obviously, there are areas where cross-platform-ity (??) is abysmal, but things will probably continue to evolve for the best ― hopefully.
And yes, PWAs with their offline capabilities are just awesome!
...but when I see how petulantly defiant Apple's responses to other regulations which threaten their lock-in strategies have been, I'm not optimistic.
Apple on the other hand is only incentivized to funnel everyone through their App Store, and for some ridiculous reason, app developers use this to justify going all in on native apps, which I think is what this article is addressing.
Yes because for example I'm sticking to K9 mail 5.6 because of the UI change in the next versions. I picked K9 exactly because of the original UI so I'm not using the new one, which is like every other mail client. I saved the APK and I'm installing on any device of mine, also when my fingers slip on the update button. Uninstall and install 5.6 from the file manager.
And no, because if the company behind the app wants to force people to upgrade they'll make the backend incompatible with the old app. Also no, because I don't think that many normal people invest time not upgrading an app because of the UI.
On my desktop there might be a few apps that don't need to upgrade but on my phone, 90% of all apps are tied to a service. Uber/Lift, bank apps, apartment apps, hotel apps, bike rental apps, social media apps, dating apps, streaming music apps, video apps, etc.
And it's so minor compared to what Google does it's ridiculous to even compare the two.
How often will the hot new app from some SV startup launch for iOS first with no Android app? Resource strapped companies that have to prioritize one platform will tend to pick iOS and that hurts Android (but is obviously good for Apple)
Honestly first-class web mobile installs without hoops and scare walls would be the thing to strive for.
But even then…
> same functionality
> Honestly first-class web mobile installs without hoops and scare walls would be the thing to strive for.
Coming to a future near you: npm install rm_minus_rf_slash
What's the old quote?
"""
Tech Enthusiasts: Everything in my house is wired to the Internet of Things! I control it all from my smartphone! My smart-house is bluetooth enabled and I can give it voice commands via alexa! I love the future!
Programmers / Engineers: The most recent piece of technology I own is a printer from 2004 and I keep a loaded gun ready to shoot it if it makes a strange noise.
"""
Except all the banks and railways require me to have a smartphone these days whether I want it or not.
I think a more pertinent problem is that most devs don't want to distribute their apps as PWAs because Apple deletes saved data at unpredictable intervals and PWAs can't push engagement notifications as effectively as native apps.
When I switched from the Uber PWA to their native app I suddenly started getting bombarded with ads from them in my notifications.
Native web downloads of apps are impossible on iPhone/iOS. You have to go through the app store.
Native downloads of apks are possible on Android, but not until you navigate to the hidden settings and enable them. And even then, Google scares users from installing apps this way. Nobody in practice does this. It's effectively not permitted.
This used to be the case for older Android versions, but isn't anymore. Currently any attempt to install an APK from an app without permission to do so will pop up a missing permission warning with a deep link into the relevant settings page with a switch you can flip. Flipping the switch will initiate the installation of the APK. I can't imagine sideloading being any easier without removing the permission barrier entirely, which seems ill-advised.
Does anybody know what the current situation in iOS looks like? I researched this recently and the information is conflicting. The OPFS data (Origin Private File System, which is the new storage API for PWAs and is supported in Safari) is supposed to not be deleted without explicit user confirmation, but what this confirmation looks like is unknown (is it just the usual delete Safari history button?) and I didn't run any experiments. However I've seen someone claiming Apple separates a website and it's installed PWA's storages. This is reinforced by the fact that I can see the storage space each PWA takes in Settings (which was oddly not updated when a PWA using OPFS used some more storage). However I just deleted that PWA but there were no special prompts, just the usual native app deletion prompt, absent of the usual phrase "Deleting this app will delete its data.", only the phrase "Do you want to delete this bookmark." was present.
And who is going to determine which exact functionality they both must implement?
On the one hand I love this. I'm glad PWAs are helping drive people who wants and expect a certain thing towards the web.
I am also however super sad that PWAs removed so much greatness of the web. Most don't launch in the browser. None have visible url bars. They just added a new mode so PWAs can have some kind of tabs. They don't integrate with bookmarks, or extensions. They don't have forward/back. I like the web a lot, and I feel like PWAs are a major step backwards for me.
What's really scary to me js that new permissions are being added which are PWA only. I no longer can have a web like experience; I am forced to have an app like experience, without any of the affordances I get with a user agent/browser at my back. I feel so undermined here.
https://www.schneier.com/blog/archives/2022/01/fake-qr-codes...
You can extend your parking time, find closest parking meters, download tax invoices for businesses etc.
All of these are much faster to do on a native app than a clunky mobile web site.
Invest your time into foundational pieces of the technology stack instead.
But everywhere I look, IOS, mac, android, windows on the phone, tablet, tv, cars its all apps. Be it under the guise of security, features or whatever, all of the UI is driven from apps. Some do a better job than others, but sucky or not you're forced to go the app route.
Today, one can build amazing stuff for the browser. And, in my very humble opinion, the vast majority of apps should've been WebApps — except for maybe Uber, Google Drive, and games.
I worked in the journalism business, and, in my country, the early 10s were filled with media outlets spending so much of the little money they had to build mobile apps.
I was the sore thumb that rejected such trend.
I knew very well that the quality of most of these apps would be questionable at best. And of course these companies won't be investing regularly in updating their mobile fronts.
And that's exactly what happened: they're stuck with apps that are barely maintained, most of which looking like ancient artifacts from a bygone era. Because that's what they are.