24 ms·
Betting on the Web – Why I Build PWAs
- criddell 9y agoThe author spends some time talking about platform stability as a big part of why web apps are great. But for web apps, is the platform actually stable? I run some applications on my PC that are older than the iPhone and they work just fine. Will the Starbucks web app still work a decade from now? Is any non-trivial web app ever actually done?
- throwawayjava 9y agoI ran a fairly niche website for a while, starting around 2006. It was pretty terribly designed (eg I learned sql and javascript from working on this project), used the whole kitchen sink of css/html/javascript circa 2006, and still, it never stopped working. The site is actually older than that -- it started around 2004 I think. So even poorly written web apps have longevity sometimes, even when you don't intentionally design for logevity. So, the oldest code I wrote that's still running is a bunch of web stuff.
- zaptheimpaler 9y agoThe platform has been stable for a while now. 20 year old web pages still render just fine. Its exceptionally backward compatible. Web apps being "done/not-done" is a different question altogether, and it depends on the ever-changing goals of the app/business behind it.
- barryhoodlum 9y agohttps://www.warnerbros.com/archive/spacejam/movie/jam.htm https://www.warnerbros.com/archive/spacejam/movie/jam.htm
- criddell 9y agoUnfortunately I don't have a Shockwave plugin, so no games for me.
- dasil003 9y ago20 year old PC apps only work by the good graces and Herculean efforts of Microsoft. Certainly any Mac app would have died many times over if unmaintained over that time, to say nothing of all the dead OSes. But web apps from that era still tend to work in modern browsers.
- jawns 9y agoSo it sounds like PWAs now make this true: > You don't have to create a native app because PWAs now offer all the functionality of a native app. That's cool. But _this_ has been true for a while: > You don't have to create a native app because a mobile-friendly website offers all the functionality you need. I use (reluctantly) a bunch of apps that really should be just websites. They don't make use of my phone's camera or microphone or do anything fancy to my phone's user experience. They don't need any special permissions, aside from web access. They're really just websites in disguise. And yet, for some reason, they're apps. Some were even built as websites (e.g. using PhoneGap) and then compiled into native apps. So before we convince people that PWAs are the answer for all of their fancy, highly integrated apps that previously could only be achieved as native apps, I think it's going to be an uphill battle just to convince them that in many cases, you don't even need an app. You just need a mobile website.
- aeorgnoieang 9y agoBeing able to use the 'app' offline is a pretty important feature tho. I almost always have web access, but most apps also almost never need it (for me to do what I want to do).
- Xeoncross 9y agoCorrect me if I'm wrong, but PWA's support 'offline mode'. React's official tool, `create-react-app` comes with this boilerplate enabled by default.
- scaryclam 9y agoThis really depends on what the app is. A few of my friends use apps to look up when the next bus is coming. I use the official website. There's zero need for their apps to be available offline, they only thing they're for is looking up the next bus, which requires an internet connection. The app in this case gives absolutely no advantage to the website. I find that's the case for a lot of phone apps
- mbrock 9y ago
- somehnreader 9y agoI had to CTRL+F through the article to learn that PWA == "Progressive Web App". Am I missing a trend?
- meritt 9y agoI had to do the same, looks like it was coined about a year ago. https://en.wikipedia.org/w/index.php?title=Progressive_web_app&action=history https://en.wikipedia.org/w/index.php?title=Progressive_web_a... This article gives a solid overview: https://alistapart.com/article/yes-that-web-project-should-be-a-pwa https://alistapart.com/article/yes-that-web-project-should-b...
- djrogers 9y agoI think one of the uphill battles you're going to have to fight with PWAs is end-user habit. If Joe consumer is looking for a great way to see a weather forecast he's going to look for an app. Jane wants to play podcasts - she's looking for an app. Ezra wants a Jewish calendar - app store. 99 times out of a hundred for the smartphone carrying crowd, the app store has become a replacement for google searches when it comes to tools/games/toys for their slab-o-glass...
- criddell 9y agoYou don't have to change users, you have to get Google and Apple to change. There's no technical reason they couldn't include web apps in their app stores. In the article the author speculates that both Google and Apple are working on this. I could see Google embracing web apps, but I'd be surprised if Apple does.
- joking 9y agonot only in the stores, widgets and general integration with the os (like actionable notifications etc.) are one of the things that make native apps a necesity. To appear in the widget screen in ios or make a homescreen widget in android you must have a native app.
- Ajedi32 9y agoActionable notifications have been a feature of PWAs in Chrome for over a year now: https://developers.google.com/web/updates/2016/01/notification-actions https://developers.google.com/web/updates/2016/01/notificati...
- ehsanu1 9y agoThat's progress, but that's not exactly a home screen widget. Eg, I can see "20C" and an icon showing it's rainy right on my phone's home screen. I don't think you can do that with the web yet, hopefully people are working on it.
- 9y ago
- dmitriid 9y ago> You don't have to create a native app because PWAs now offer all the functionality of a native app This is a blatant lie > Starbucks PWA: ~600KB 2.1 MB just the initial page, with no cards. The preview.js file is 751 K I do agree, however, that it's much smaller than an iOS app.
- butz 9y ago600KB gzipped?
- Ajedi32 9y ago> 2.1 MB just the initial page, with no cards 650 KB for me: https://i.imgur.com/eVoZtWQ.png https://i.imgur.com/eVoZtWQ.png
- dmitriid 9y agopreview.js 752 KB vendor.js 614 KB https://dmitriid.com/i/gm2tmobrgeydcnbt.png https://dmitriid.com/i/gm2tmobrgeydcnbt.png
- tjoff 9y agoSo, a PWA is a massively bloated web page? Yeah, that is exactly the kind of thing I want to run on a browser in my phone. Sure, a decade with Moore and it might actually become usable - but do we really want to set the bar that low? Installing an app is cumbersome, but when going to his example I'm forced to create an account just to see what it is.
- HillaryBriss 9y agothe author doesn't seem to discuss Android's "instant app" feature https://developer.android.com/topic/instant-apps/index.html https://developer.android.com/topic/instant-apps/index.html Android Instant Apps allows Android users to run your apps instantly, without installation
- katelynsills 9y agoI've been experimenting with turning a work application into a PWA, but ran into a problem - all the stuff that would be great to cache was behind an authentication wall. None of the PWA examples covered this. Also, the service worker examples all had "Don't use this in production" warnings. :D
- TomMarius 9y agoYou can encrypt the cacheable content.
- millstone 9y ago> It is now possible to build PWAs that are indistinguishable from their native counter parts It's not now possible, but even if it were, it would only be because the native app does not in fact use native components. The Starbucks app already doesn't feel native, with its custom casing, fonts, navigation and behaviors.
- Andrex 9y agoIt's reasonably doable to get a PWA looking and feeling like a native Android app if you opt to use Material.io or Polymer's Paper Elements. Some behavior isn't 1:1 though, which can be frustrating.
- flukus 9y agoWhat about iOS and others? Are we going to have to make multi versions of an app to make them look native? For that matter, what does a native android app look like? I've never seen any consistency between apps at all, let alone the sort of consistency you can get with gnome, KDE or older windows.
- dehef 9y agoJust be aware that ionic3 is full of bugs. You can use angular 4 which is absolutely ready now. Ionic is full of promises (literally and figuratively), but it is not even ready as a beta. - I spent days to make workaround for making it work. Even basic things like routers. - I suffered a lot with its build process. Transpiling my typescript is a so much pain for my mac. That is even worse than when I compiled java years ago. - The need to wait 2 minutes for the live reload (when it actually reloads the change like expected) is a big loss for the web development process. Anyway for me the point is totally true. I was only on natives and now only what you call "PWA"
- mikodin 9y agoInteresting that you had so many pain points. I like Ionic, don't love it but I find it to be very very easy to work with. I don't mean to flame, I just want to provide a counter example as I was using Ionic on the day to day basis for about 5 months. - I find the router to be very easy to use, requiring no work arounds, you call the nav controller and push / set a view, nothing crazy here. - The build process, specifically for the TypeScript? Are you using the CLI? There's just about nothing you need to do -I was able to start fresh on a mac and have everything up and running for both Android and iOS within 2 hours (this is mostly installing the Android SDKS). - And the live reloading will reload your entire app within 20 seconds, and this was on a pretty large Banking application using most of the plugins that are available (Camera, fingerprint, maps, etc etc etc). Note that this is all done through using the Ionic CLI, which really eases the development process. I personally wouldn't try it without the CLI.
- dehef 9y agoI use "ionic-app-scripts" (@ionic/app-scripts) for watching the change. It's what is used by ionic cli I think. Since the recent update to webpack 3 things are better but I still loss my focus on each build :) In fact I just checked and it's around 1 minute to finish the watch process, but many time consecutively, it become worse. When I only update scss that is very quick indeed. The start process is very quick also. For the router, things have became messy when I tried nested ion-nav. A method is deprecated (getRootNav) and the new is not even ready to use! (getRootNavById) I post many issues on github. Still using ionic router (no other choices now, but by using tricks like events), and ionic cli for building, some buttons also, and I avoid anything else. ion-menu was too buggy on ios, I had to make a menu by myself The general quality on ios is very poor Some plugins are great but I have bizarre issues... Keyboard plugin for exemple, I had to "ngZone" it to make it work. Using the grid was too verbose and too buggy also. I design everything in flexbox now. It fells that ionic is trying to build a good WYSIWYGs editor with ionic creator but making developpers "beta-testing" their frameworks (sorry to complain after a open source project)
- sotojuan 9y agoI think buildings sites as PWAs is a good idea but it'll take some time for them to actually replace apps. As other commenters have said, user habits go straight to apps. And until Apple decides to support service worker in iOS Safari, it won't have the same functionality as on Android.
- MaxLeiter 9y agoWorth noting that Apple (WebKit) set Service Workers from 'Under discussion' to 'in development'
- wheresvic1 9y agoThis is pretty cool and was actually my reasoning behind creating my side project as a PWA. It's a gym workout logging app and you can try the UI without needing an account -> https://ewol.fitness https://ewol.fitness
- csense 9y agoI'm really sick and tired of going to a site on my phone, and getting inundated with popups and banners and crap telling me to install the app (Reddit, I'm looking at you). I just want to view the same fricking website that I view on my desktop, but on my phone. You'd think that would be a simple and obvious way of working that would be supported by every single website in existence without any special effort on the part of web developers. And you'd be right, except web developers these days GO OUT OF THEIR WAY TO MAKE IT NOT WORK THAT WAY. You'd think the simple and obvious fact, that phones these days generally have web browsers just as capable as desktop browsers, would have penetrated people's thick skulls by now. But for some reason everyone wants their own app, I darkly suspect so they can use the email, contacts, camera, microphone etc. for God knows what creepy spying and data harvesting purposes. So if this guy's figured out that the way to convince The Powers That Be, who've already been convinced by someone else that You Need To Have An App Even If The App Is Literally The Same As Your Website, that it's actually okay to Not Have An App And Just Have People On Your Phones Go To Your Website, by simply re-naming your website from "a website" to "a Progressive Web Application," more power to him. Me, I just want to look at websites, and occasionally look at them on my phone, and I'd like a web that allows me to have the experience I'm used to from my desktop, on my phone.
- omg_ketchup 9y agoI work at a small business, and our customers are constantly asking that we make an app. We have a fully functional website that is completely responsive, and we do more mobile sales than desktop. But they keep asking for an app. I have no idea why- I guess it feels more "legitimate" than a website. I try to politely explain that I'm our sole developer, and I'd have to support the website, AND an iphone app, AND an android app, and they pretend to understand, and say "yeah, but an app would be nice...". I mean, do you want the app so you can have an app, or do you want the app so you can make a purchase? I don't understand.
- dataqat 9y agoI suspect they want the app to have an easy access icon on their home screen. I don't think most people know you can save a shortcut as an icon from a given web page on their home screen.
- EGreg 9y agoAndroid's answer to this guy's "app for this right now" thing: https://www.theregister.co.uk/AMP/2017/01/25/google_testing_android_instant_apps/ https://www.theregister.co.uk/AMP/2017/01/25/google_testing_...
- unkown-unknowns 9y agoI'd not heard of PWA before. After reading the OP I did an additional search on Google. Found a course on udemy that claims to be on sale. https://www.udemy.com/progressive-web-app-pwa-the-complete-guide https://www.udemy.com/progressive-web-app-pwa-the-complete-g... I've seen three of the videos in it so far. Seems like an ok course for the ~25 USD I paid for it.
- fredsted 9y agoPWA = Progressive Web Apps
- osrec 9y agoThis is something I feel quite strongly about, and I too favour PWAs. I think native apps have their place for now, as a few key APIs are not fully exposed via browsers yet, but the API landscape continues to improve. Apple has even started dev on service workers for Safari, and their IndexedDB implementation is not as buggy as it used to be. If I'm honest, apps never really made sense to me; they seem to be part of an intrinsically closed eco-system, which feels completely at odds with the initial premise of the internet, and dare I say, computing in general. If you have an Apple product, you must go to the App Store, if you have an Android product, then it's the Play Store etc. The feeling of openness that I became accustomed to (probably from a time before "apps") seems to have taken a step backward with mobile apps, and replaced with an endless need for vendor lock in. It's great for business, but as a user, it feels really restrictive. As a developer, it's not great either. I believe that as browsers become more standardised (i.e. you don't need rubbish like if(IS_IOS) { ... } else { ... } in your JavaScript), and they start to expose more and more functionality via well-defined APIs, developers will favour the browser as a deployment platform, simply because it'll be more ubuquitous, will be easier to deploy and manage, and will have a lower barrier to entry. Till then, native apps will maintain their position, as they will be the more polished product. A personal anecdote: I gave my latest app (a PWA - https://usebx.com https://usebx.com) to a few small business owners in my home town to use for free. I pointed them to the website, and the first question they asked me was "why can't I find it on the app/play store?". I told them that they needn't go to the app store - just add the webpage to your homescreen, and you're good to go! They much preferred that method, as compared to "faffing around on t'app store" (imagine that said in a Yorkshire accent)! They even loved the app, and as far as I'm aware, found it on par with a native app. My point is, even the fairly long winded process of searching the app store to find an app, then waiting for it to install, was the first thing that came to mind for these non-techy guys. Once they knew about "Add to homescreen", they liked it. I think much of the transition to PWAs will be like this - people struggling free from their habitual need to use vendor specific app stores and eventually embracing the simpler, more open, web-based app paradigm.
- badsectoracula 9y ago> ... seems to have taken a step backward with mobile apps, and replaced with an endless need for vendor lock in. It's great for business, but as a user, it feels really restrictive. As a developer, it's not great either. But isn't using a web app that stores its data to a remote server and handles upgrades a method of vendor (in this case developer) lock in? As a user you are 100% reliant on the developer, both for your data but also in their mercy when it comes to upgrades (imagine developers changing how their UI works to a way you dislike - my aunt every now and then calls me because something went wrong but what really went wrong was Google making slight changes to Gmail or the Google home page that confused her - or, even worse, starting to require more resources than your computer can handle but you cannot do something as simple - with native apps - as to just keep using the older version).
- shams93 9y agoApple is the only problem they keep dragging their feet on modern web features to try to force developers into native iOS
- osrec 9y agoLol, yes! Safari can sometimes feel like the new Internet Explorer. Having said that, they have started work on service workers now!
- ntaso 9y agoI want PWAs to succeed, because I would love to publish close-to-native apps without an app store. I think PWAs are a great thing for the open web. However, hyping PWAs with unrealistic expectations doesn't do any good. The Ionic team talks in the same vein. I like Ionic, I don't like hype. Here are a few reasons why PWAs aren't there yet and probably won't replace most apps in the near future: - No native APIs. Yeah sure, you can order a coffee at Starbucks, but the underyling hardware isn't exposed to JS. You won't be able to make a camera app with PWAs. - Input controls suck. Same as with every mobile browser and every Cordova-based app: You cannot control how the keyboard behaves and I suspect that it's not even in Apple's interest to make Mobile Safari super-great. Sure, they're working on PWAs, but that doesn't mean anything. Just see how bad Mobile Safari's <select> looks like. Or bugs in multi-selects that have been there forever. - They still run in a browser. It shows an address bar and whatever else your browser is always showing. Try Twitter's PWA right now: https://lite.twitter.com https://lite.twitter.com It's way too easy to accidentally swipe back. And then, Twitter being a shitty Single-Page-App, the browser loses its scroll position. - PWAs suffer from the same problems like all SPAs [1] And finally: - A PWA is just a proxy to download and cache responses from a server. It enables offline support (kinda) for single-page apps. It's not a magical something. The problem is that most users go to the App or Play Store first (like djrogers pointed out here: https://news.ycombinator.com/item?id=15219682 https://news.ycombinator.com/item?id=15219682). They COULD be using PWAs – or at least good mobile webistes – right now, but they aren't. I think PWAs will find their places and I'm betting on them, too, to a certain extend. But over-hyping PWAs without addressing these issues is just naive. [1]: Great read on this topic: https://adamsilver.io/articles/the-disadvantages-of-single-page-applications/ https://adamsilver.io/articles/the-disadvantages-of-single-p...
- osrec 9y agoOne mobile safari bug that really irritates me is not being able to move the cursor on a text input element. Basically, if the text in there is longer than the element, you won't be able to move the cursor left or right. You can only work with the visible part of the input element. Try it - it's really quite terrible!
- 9y ago
- pablo-massa 9y agoIt's possible to sell a PWA like sell a $5 app on the App Store/Play Store? The author doesn't address this topic and it's important to make a transition imho.
- WA 9y agoWell, since the trend goes towards In-App-Purchaes, you could simply paywall some functionality and slap Stripe or PayPal on your website. That should give users a relatively similar experience. Don't even have to share 30% that way. It's up to you.
- joshdance 9y agoPWA = progressive web app. Took me a while to figure out what that acronym was. https://pwa.rocks/ https://pwa.rocks/
- otakucode 9y agoDeciding to bet on the web is fine, but shouldn't the immediate next thought be like 'wait, why did the web win?' I think that's a far more interesting topic. It would be hard to argue that it didn't win, and it certainly wouldn't have been easy to see it coming. Someone designed a system for static hyperlinked document presentation... then years later others start shoehorning in broken bits of application-like functionality... years more along, the shoehorning continued with vigorous earnest, subverting every attempt by the W3C to prevent the web from turning into an application platform and remain a static document presentation system. With so many hurdles to cross, so many things holding it back, why on earth did it win? Clearly not just because it was cross-platform, lots of things did that. Certainly not because it followed any even REMOTE sense of reasonable development. Remember when people used to talk about the utility of standard user interface widgets? I imagine all those people are dead now. Personally I think it was the ability to search. That trumped absolutely every single other consideration across the board. What users wanted was to vaguely indicate what they wanted and be using that application moments later. There's no reason that HAS to be only how the web works, but it mostly is now. If something comes around that enables that elsewise... maybe consider putting a chip down on that as well.
- david-cako 9y agoTo add on to this, the centralization factor of your webapp being a google search away is just one token of the overarching theme of "write once, run anywhere" -- this translates to value for the user. Web apps are quite literally the only thing that can be run on essentially any device that is or can be connected to the internet. Nothing else achieved this because nothing else had an interpreter which was the most essential foundation of browsing the internet. From a user perspective, being able to instantly download any "app" you need (i.e. visit a website) has been the logical conclusion of high speed mobile data. It's low investment, takes up a miniscule amount of ephemeral storage, and works on anything. From a developer perspective, you can be assured that your single codebase will run on virtually any device, with minimal adaptations to it. You have enough performance to run mildly resource intensive 3D games, some basic concurrency, and an ecosystem that fixes all of the most important faults in the language (typescript is the biggest one IMO). You also increasingly have APIs that allow you to do everything that you could otherwise do with a proper desktop/mobile app. Literally the ONLY reason webapps are not the first choice for most companies is because they're not as sticky (obnoxious). Users aren't forced to look at your icon and receive your notifications until they disable them. That's it.
- deleted 9y ago[deleted]
- bb_dogg 9y ago"With the original iPhone, there was no App Store, and no third party apps. At least not at first..." https://www.imore.com/history-app-store-year-zero https://www.imore.com/history-app-store-year-zero I think this section sums it up well why there became a demand for apps, and the points are still valid today. "But back then, the limitations of web apps, their lack of access to core functionality, their relatively poor performance compared to native apps, and the difficulties involved in charging for them proved to be insurmountable problems. As a solution, web apps were more sour than sweet."
- norea-armozel 9y agoI'm not sure I understand the motive behind progressive web apps. Some apps I can see being web-only. But apps that require extensive storage, low latency, and much more traditional computing resources isn't going to work in the mold of a PWA. A calendar, a chat room, or some games I can see fitting the PWA mold automatically. But like I said, PWA to me isn't a universal replacement for good native app development. It fits many lightweight problems but anything else that better fits native should stay native. I really wish web developers would acknowledge this much and stop trying to say "why can't you make that a web app?"
- bcarroll22 9y agoHere's what I've realized lately. Our product is for teachers (K-6 mostly) who tend to not be very techy. They use phones, tablets, etc. to the extent that they need to. We spent TONS of time optimizing our website for mobile. At one point it was a PWA that was very optimized and had like a 95 lighthouse score (not anymore because of finicky SW behavior). They didn't care one bit. Like, not even one little bit. To them, it was annoying that it wasn't "an app". I don't think this battle is one of "build good enough mobile web experiences", it's more "convince non-techy users that a good mobile web experience is good enough for you in x% of cases." For us who read HN, we're jaded on apps, installs, 100mb of storage wasted. For the less techy world, they don't feel the pain we do, and that will continue to be a problem.
- kilburn 9y agoThis doesn't match my experience. I've recently built an "intranet" website for some consukting agency. They had an IOS app already, but no android app. I built them a SPA based on create-react-app with a material design look and feel, making sure it worked fine both on desktops and on phones (which also means changing how certain things are presented, not just scaling the same screens). I told them to try the "add to start screen" link on chrome mobile (or the equivalent in IOS safari)... they ended up ditching the IOS app altogether. All in all, it depends hugely on the functionalities your app/web provides, and whether you can build an experience that is app-like enough or not...
- bcarroll22 9y agoI guess probably just fundamentally different experiences. We couldn’t have afforded to put any more time into optimizing for mobile, but most users I talked to didn’t even care to look at the mobile site before insisting they couldn’t use it unless it was an app. No need for push notifications, camera, anything like that—heck we even put in the iOS add to home screen stuff to try to get them to see it as more “app” like—but still, they just insisted an app straight from the App Store was necessary.
- halfnibble 9y agoThank you SO MUCH!! Speaking of BlackBerry, I now have a functional Starbucks app on my BlackBerry10 phone (and not a laggy Android sideload). You rock.
- hutzlibu 9y ago"4. PWAs everywhere" Yeah, yeah, I read that many times while I researched about it. But everywhere seams to mean today, everywhere except for the old-school Desktop (!) I mean I understand, that the implementation and development of a new standard takes time and since mobile is hip, everyone focus there first. Makes sense. But I feel a bit ridicouled(and annoyed) with all the PWA, don't worry about plattform talk - and then there are no signs at all, that the traditional desktop is a target in the near future, if it is at all. At least I could not find further informations. https://developer.mozilla.org/en-US/docs/Web/Manifest https://developer.mozilla.org/en-US/docs/Web/Manifest And I am building a webapp, which does a bit more than turning on a lightbulb, so I also like it to run on a real PC. To work with it. With a screen and keyboard - and yes, whenever I want, easily switch to mobile and still be able to work with it, ... this is what would make me excited. True plattform-independence, where I don't have to worry about clumsy plattform details. What I have to worry about is adjusting to the screensize, etc. and if there is a keyboard, mouse, gps, device orientation, battery maybe(so the app knows to save urgent data, before, the power goes off), pressure sensitive pen, multitouch, etc. etc. I'd like to have all this information and then present the user the best UI I can master with the given conditions and don't worry what happens behind the scene. I just target the WebAPI's. And they get more and more powerful. Mozilla tried to build and market their OS around them, which failed comercially, but helped the basic idea a lot. And this basic idea I like because of the simplicity. So I am excited and looking forward for further improvements ... but please don't forget the desktop as a plattform!
- woranl 9y agoI sure hope history will repeat itself. Just like Desktop, web apps are taking over. Hopefully, PWAs will do the same in mobile. No one wants to install/update apps anymore. They are not exciting. They are chore.
- ernsheong 9y agoI don't think writing a web extension thingy on Safari/Chrome mobile can be achieved with a PWA. Would love to be corrected.
- galfarragem 9y agoThis is the most congruent argument advocating web apps and indirectly the most clear career advice that I've read for a long time. A sincere thank you.