42 ms·
The problem with PWAs is they will never gain parity with the functionality of native development. Never? Why not?
by __ryan__ 4y ago
The 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.
- eddieroger 4y ago> You also cannot do those examples on native apps, they are usually only allowed by the OS itself. Well, that's not true. Windows: https://docs.microsoft.com/en-us/windows/win32/nativewifi/native-wifi-api-sample https://docs.microsoft.com/en-us/windows/win32/nativewifi/na... Apple OSes: https://developer.apple.com/documentation/devicemanagement/wifi https://developer.apple.com/documentation/devicemanagement/w... Android: https://developer.android.com/reference/android/net/wifi/WifiManager https://developer.android.com/reference/android/net/wifi/Wif... And LittleSnitch is specifically an app made by a non-OS third-party that does exactly the things OP mentioned. One of the older app dev shops. https://www.obdev.at/products/littlesnitch/index.html https://www.obdev.at/products/littlesnitch/index.html
- vetinari 4y agoThe GP probably meant mobile OS-es, not desktop ones. It would be impossible to make GPU driver or Little Snitch-like app for either iOS or Android, if you are not the OS vendor.
- pjmlp 4y agoI was referring to mobile OSes, and if you bothered to read the Android documentation, it works with intents.
- BiteCode_dev 4y ago> Anything CRUD Not even true, if you want advanced features. Do you want sync over the local network? Nope, WebRTC cannot use Bonjour or Avahi to detect other peers without accessing the internet. Do you need your CRUD app to be able to accept parameters different configuration file granularity and from env vars? Forget about it, you don't have access to most of the FS, nor env vars. Do you need it to query a specialized database yet work offline (e.g: sig)? Shim over localStorage won't cut it. Do you need smart search, or completion? Better it not work with machine learning, cause as soon the network is down, you are on your own. So you can do a CRUD in the sense of what microsoft access used to allow you to do. That's useful, but it's a far cry from what native can do.
- easrng 4y agoOn iOS you can prompt a user to add a WiFi network by showing a WiFi QR in an img tag (it can be set to opacity:0 and put on top of something else) and instructing the user to long-press it and choose "Join Network". I don't think you can do it on Android.
- BiteCode_dev 4y agoThat's not listing wifi networks though, which requires access to the wifi card and the security keyrings, both things you can't do from a PWA because nobody want expose those things to the Web. Not to mention we don't have a uniform way of accessing those (check the python keyring library to see the different implementation).
- Volundr 4y agoA quick Google tells me there is no way to list WiFi networks on an iOS app either, so that feels like parity with native...
- BiteCode_dev 4y agoWhat you are saying is that some OS are limiting you in what they let you do on non rooted deviced. Any desktop computer don't have this limitation, and pwa is not just about mobile. It's about native vs a web app, in general.
- lytefm 4y ago> Because you require deep integration with the OS for some tasks, and the browsers will always lag behind that. Sure, but this is exactly where frameworks like Capacitor/Cordova can bridge the gap. Need some widely used native functionality? There's probably already a Plugin for that. If not, you need to write your own. It's still much less effort than maintaining a full native app. Especially if it's mostly a CRUD app with just a few native features.
- ravenstine 4y agoIn which case it's dubious whether PWA tech was worth using in the first place. It barely solves a problem for someone casually browsing the web, but if deploying one as a native app means using another framework and bundling an app separately then, well, why bother with any PWA APIs at all?
- depressedpanda 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? An overwhelming majority of the native apps I've used on my phone need none of that, or similar OS level features. They'd work fine as a PWAs.
- BiteCode_dev 4y agoThe overwhelming majorities of apps you use, you don't even notice you are using them. They are usually provided by the os by default, like the home screen, the alarm clock, the web browser, the network selector, the file browser, contact selector, text message sender, unlock screen... Most of them is cutstomised on one of my devices, but most users don't even think about it as software. It's just there. None of them can now be pwa. Not event something as simple as the alarm clock because of the device going to sleep. Some of them can be pwa but the experience is terrible on mobile: map apps and video apps are an example.
- unixbane 4y agobecause web browsers are a gimmicky product that still have bugs like in firefox where you download something at it says 5MB/s for the next 2 days but it stays at 10/1000mb progress