4 ms·
Can someone explain what a PWA is? I tried reading the official Mozilla docs and wikipedia. I don't understand - how do these apps work like "native" apps if th
by spectramax 7y ago
Can someone explain what a PWA is? I tried reading the official Mozilla docs and wikipedia. I don't understand - how do these apps work like "native" apps if they are not using native UI kits and running inside a browser? That's not really "native". Native app to me is like macOS Mail or Sublime Text. I don't consider any of the electron apps (Slack, VSCode) as "native".
There is a real beauty of using native apps. I don't like this move towards PWAs(from what I understand) - its like the developer has to put up with 3 different dists (macOS, Windows and Linux) so let's make the entire app extremely bloated, fuck the user experience and native integration and lets all go full wild wild west in the Javascript land. Developer's laziness has lead to Electron and Javascript spaghetti world we live in. I have noticed this and its controversial but everytime I see anything done in Javascript, 9/10 times it is awful and convoluted. Slow. Javascript developers appear to be a lot more inexperienced in software engineering than say a C++ developer. BootCamp courses teach you how to make bloat. Don't get me wrong - there are some good Javascript libraries but they're rare. I am sure there are a lot of good Javascript developers out there, but the general observation I've got is not very positive.
Ever used Sublime Text? Instantly different than any web app or electron app. I kind of want us to go back to old ways of doing things.
- metalrain 7y agoPWA is actually hybrid app (web container inside app husk) compiled by Google for example. On Android once you install it, it's actually APK that has WebView.
- petersonh 7y agoIt's an "installable" web app - ie creates a desktop icon or mobile launch icon and removes the chrome from the browser so it looks like a native app. For mobile I believe there's a pop-up that prompts for install, on desktop you have to do it in the options menu I believe.
- K0nserv 7y agoIt's more than that, you've been able to do this with bookmarks on mobile platforms since day one. It also support offline use among other features.
- TACIXAT 7y agoPWA is basically a mobile optimized (read: responsive) website that caches page content and data (see IndexedDB). Mobile browsers have the option of "installing" them, basically saving the data and making a shortcut in your app drawer / home screen. There is also support for push notifications but not on iOS. The idea is basically a web page that still functions if you lose connectivity.
- K0nserv 7y agoI think you are a bit unfair towards the end of this and the focus on developers is misguided. I agree that the cross platform hype is a bad trend that sacrifices user experience for developer experience however one needs to look at the incentives that developer operate under before placing the blame solely with them. Businesses are equally or more to blame for the current state of things than individual developers. > ...software engineering than say a C++ developer. BootCamp courses teach you how to make bloat... Reeks of elitism
- z3t4 7y agoWhat if I told you that macOS Mail and Sublime Text was made with "web" techbology? You can make slow apps with bad UI in any language or framework, JavaScript just makes the barrier to entry lower, so you will get more shitty apps. Progressive web app (PWA) just means that it use feature detection to enhance itself. The most notably features are "add2desktop" and "service workers". "add2desktop" lets you add the app to the app drawer, and service workers lets you manage the cache and, listen for push notifications, and acts like a proxy in front of the app, making it possible to serve from the cache while the user is offline.
- oefrha 7y ago> macOS Mail... made with web technology Do you have a source for this? Mail content may very well be rendered in a web view (which is unsurprising given rich text and HTML are underpinnings of email), but I’d be surprised if the UI and widgets aren’t native.
- pjmlp 7y agoPWAs can be turned into native apps as well, that is the part you missed while trying to understand them. PWAs have two ways of deploying, either via the standard Web, where they get to use only Web APIs and via the manifest and service workers, get promoted to have some OS light integration with removal of the browser frame. However, you missed the second way of deploying them, if you package the application URL alongside a signed package on app stores (Android/Windows/ChromeOS), then the PWA gets upgraded and has access to the native APIs just like any other native app. Here is how it is done for UWP with the old Edge, the new one will eventually catch up. https://docs.microsoft.com/en-us/microsoft-edge/progressive-web-apps/windows-features?branch=pwa https://docs.microsoft.com/en-us/microsoft-edge/progressive-... Similar approach on Android, https://developers.google.com/web/updates/2019/02/using-twa https://developers.google.com/web/updates/2019/02/using-twa If you want C++, then PWAs can also enjoy WebAssembly + WebGL (and eventually WebGPU). https://www.qt.io/qt-examples-for-webassembly https://www.qt.io/qt-examples-for-webassembly Or just package them into the store format from above and call the native versions of GL/DirectX directly.