16 ms·
I think a lot of commenters here are missing the point and getting distracted by push notifications (who wants a website spamming them with notifications?) and
by christiangenco 9y ago
I think a lot of commenters here are missing the point and getting distracted by push notifications (who wants a website spamming them with notifications?) and loading screens (hardly a feature).
Apple supporting PWA (Progressive Web Apps) is hugely important because it enables a future where web apps can natively support browser, Mac/Windows/Linux desktop, and mobile iPhone/Android/Windows native mobile with a single codebase of open technologies.
Why is that important? By fragmenting development effort, the overall product isn't as good on any platform.
There's an app I'm making on the side to keep track of your contacts (like a personal customer management system). This needs to store all your contacts offline, because it'd be too much friction to load everyone you've ever taken notes on over the network every time you open the app.
Right now, the only way for me to accomplish that on iOS is to make a native app. This means I had to learn an entirely new technology stack (React Native and XCode), completely rewrite my views, tie everything into my backend, and go through Apple's Byzantine approval process (which I still haven't done because I can't figure out why my app compiles and runs locally but complains about libraries not being linked when I try to archive it to upload to the app store).
This is unnecessary duplication of work that could've been spent writing new features, makes it harder to add new front-end features in the future (because now they have to be added in two places), and adds a huge lag in the time it takes me to push changes to the iOS client (weeks, vs. the seconds it takes to push a change to the web client).
If apple supported PWA, I would've spent my time making the database keep a local syncing copy on the browser (with minimongo or pouchdb), and then every platform would've benefited from faster page loads and offline syncing.
Until Apple adds PWA support, I can't make as good stuff, and people can't use the better stuff.
- GordonS 9y ago> Right now, the only way for me to accomplish that on iOS is to make a native app. This means I had to learn an entirely new technology stack It's not the only way - you can create a hybrid app with something like Ionic (obviously this is compiled to a native app at build time, but you never touch a line of XCode yourself). One of the big selling points of hybrid apps is that you can use your existing Javascript/Typescript skills to create apps that look and feel like native apps.
- GordonS 9y agoDownvoter care to comment? Seems a bit random.
- Dude2018 9y agoScrew new features, using JavaScript and HTML/CSS for apps must die.
- bluejekyll 9y agoThe DOM and CSS are good underlying principles. It would be nice if there was an alternative to HTML, like something encoded in JSON. As to JavaScript, with WebAssembly coming, there may be options in the future.
- Dude2018 9y agoFlow-oriented markup is meant for documents not GUI.
- borland 9y agoVery much agree with this. Having developed many websites and many apps, HTML and CSS are really quite terrible when compared to something like iOS' auto-layout system, or even something like a DockPanel in Xaml (WPF on windows) However, you wouldn't want to layout a document in Xaml or auto-layout either. Different strengths for different original purposes. Personally I feel like a non-trivial part of why "web apps" (i.e websites pretending to be apps) generally suck comes down to this impedance mismatch
- drdaeman 9y agoI think it's also about the tooling. With most "native" platforms you can have a WYSIWYG UI editing (because those markup languages were designed with that in mind). You visually define the layout (with mouse/trackpad), drop components there, and it's all nice and easy to use. Surely, you can code your UI as well, but to best of my knowledge no one in their sane mind does this, unless they have some very good reasons. With web apps (progressive or not), the usual approach is to code stuff by hand, and see the results in the synchronized preview pane (or nearby browser window), patching the code until it all fits. Even if there's some tool/IDE somewhere that would let me bootstrap a React/React Native/Elm/whatever app with a mouse - by dropping a button on a pane and connecting an event listener with another mouse click (like I had it in Delphi, 15 years ago), I think it would be an exception, not a rule. Or maybe I'm just unaware about how things are really done and have false beliefs, heh.
- Aaargh20318 9y agoYou can make a a native app, which will always be better than a webapp. As an iOS user, I have no intention of ever using webapps (including things like Cordova apps). If you can’t be bothered to make a iOS-native app with iOS native look, feel and features then just don’t bother.
- ivm 9y agoBut it means learning something other than JS! It feels like many developers are adamant to never leave their comfort zone. Hence, JS everywhere.
- gpawl 9y agoCoders like to code. Product builders want to build products with a minimum of fuss.
- ivm 9y agoThen they should use other technologies in the first place because web development ecosystem adds too much fuss to the process. Also product builders usually want to provide good user experiences. You may be saving yourself from some additional code but delivering battery draining solutions with non-native UI patterns and broken accessibility to your users.
- euyyn 9y agoAs an iOS user, do you ever use websites that are more than plain hypertext, even if they don't try to have an iOS native look?
- Aaargh20318 9y agoA website is not an app. Not sure why I need to explain that.
- euyyn 9y ago
- Aaargh20318 9y agoYou can make a a native app, which will always be better than a webapp. As an iOS user, I have no intention of ever using webapps (including things like Cordova apps). If you can’t be bothered to make a iOS-native app with iOS native look, feel and features then just don’t bother.
- interpol_p 9y agoBut as an iOS user I expect you to use the technology stack provided by my preferred operating system. I don't want to use your app if you're targeting a lowest-common-denominator feature set. When I change my preferred text size through accessibility settings, good native apps respond correctly. If I need voice over support, the operating system knows how to read the view hierarchy to me in a logical way. When drag-and-drop becomes a thing in iOS 11, native apps will implement that feature well. I think it will take some time for web apps to implement it as nicely (if ever). There are thousands of tiny details that your web app just won't have. Those details are more important than your familiarity with a tech stack or how long it takes you to deploy something. You say that: > By fragmenting development effort, the overall product isn't as good on any platform. But I would say that: > By building a web app, the overall product isn't as good on any platform. I have yet to find a "web app" that I delight in using, though I love many web sites and native apps.
- SirHound 9y ago> I have yet to find a "web app" that I delight in using, though I love many web sites and native apps. I wonder how much of that is an intrinsic problem with web apps conceptually, or a result of the various limitations and design fuck-ups of the browser vendors.
- tazjin 9y agoThe fuck-ups aren't just on the browser vendor site. The entire front-end ecosystem is currently worse than enterprise Java at its peak and the quality issues stem from all sides.
- interpol_p 9y agoThe best web app I use daily is Slack (wrapped in its native app "shell" on macOS). But it still feels pretty poor. On iPad it's worse. On iPhone strangely, it's not too bad.
- fredsir 9y agoIf slack is the best, it really goes to show why nobody should be making non-native apps. Slacks Mac client (and their iOS client) is really, really bad.
- amelius 9y ago> Apple supporting PWA is hugely important because it enables a future where web apps can natively support (...) But it is not in Apple's interest to support these kinds of apps. They make money on the app store, and like to keep developers within the walls of their ecosystem.
- scarface74 9y agoApple supporting PWA (Progressive Web Apps) is hugely important because it enables a future where web apps can natively support browser, Mac/Windows/Linux desktop, and mobile iPhone/Android/Windows native mobile with a single codebase of open technologies. Why after over 30 years of experiencing cross platform "write once run anywhere* technologies do developers still think that's the best user experience? Yes it makes life easier for the developer but it's rarely best for the user.
- cderwin 9y agoI think this is the crux of the matter. Apple supporting PWA means lower quality apps for its users, and Apple has the market share to demand apps be native code.
- euyyn 9y agoGMail was (and maybe keeps being) a much better user experience than native email clients for desktop PCs.
- millstone 9y agoIt's better in that it required no configuration. But from a UI perspective it feels inferior. For example, native clients can just show you a list of all your messages, but GMail still paginates like a late-90s PHP site.
- yarper 9y agoThat view is hugely annoying, even when you group unread and read, both are paginated separately. Perhaps there's some configuration I need to set..
- euyyn 9y agoI think PC clients back then paginated too. They didn't group emails by thread either, and at least Outlook still doesn't by default.
- danpalmer 9y ago
- jwong_ 9y agoWhat are you storing in your contacts database that's so huge that it can't be loaded over the network every time? Are you hand-writing notes and storing the notes as images? I use Apple/Google's built-in notes fields on the default addressbooks and it works just fine. I can't imagine having huge write-ups on individual contacts unless it was for some business purpose. In that case, I'd move to a dedicated note-taking application anyway.
- yladiz 9y agoHe is probably concerned about users who cannot use a network all the time or have slow connections. Many phones have LTE but trying to load some modern websites over slower 4G, or even slower 3G, is a nightmare, not just from the size but also if they're not on a proper CDN.
- kitsunesoba 9y agoI never quite understood the complaint about having to learn a new tech stack to write native apps. As a native app dev, it feels kind of like getting angry that your skills in motorcycle mechanics don't transfer to building rockets. And this complaint practically always comes from the front end web crew... every other type of developer I've met has zero issues with learning the technologies relevant to a particular platform.
- RodericDay 9y agoI'm a scientific programmer who just wants to have a few tools available across my devices, mobile as well as desktop. PWAs are a great idea for me. Getting an Apple developer license is not.
- LeoNatan25 9y agoThen don't develop for Apple platforms. We don't want your "apps" anyway.
- RodericDay 9y agoI want them for me and my friends/family on Apple devices. WebRTC support is arriving soonish so I'm getting what I want despite the downvotes :)
- s73ver 9y ago"By fragmenting development effort, the overall product isn't as good on any platform." At the same time, you're no longer focusing on what makes each platform unique, and just giving them all a lowest common denominator. That's not really good either. "This means I had to learn an entirely new technology stack" Learning new things is good. "Until Apple adds PWA support, I can't make as good stuff, and people can't use the better stuff." This is absolutely wrong, and is just an excuse. You can make great stuff, and people can use it. You just need to put in effort.
- Joeri 9y agoYou can definitely build that contacts app as a web app on mobile safari. HTML5 appcache lets you take it offline, localstorage gives you 5 mb of storage, web sql or indexeddb gives you 50 mb. You can use something like pouchdb to give you a clean wrapper. Yes, service workers would be nicer, but you don't have to go native to do an offline app on iOS. I built one years ago, appcache is good enough.
- chairmanmow 9y agoSo put your web app in a Cordova bundle and you can send push notifications. No need to learn react or write native code. Not a huge problem to solve.
- ksk 9y agoIt seems like at some point we're just going to end up re-writing Java - But for the web.
- Steko 9y ago> Apple supporting PWA (Progressive Web Apps) is hugely important because it enables a future where web apps can natively support browser, Mac/Windows/Linux desktop, and mobile iPhone/Android/Windows native mobile with a single codebase of open technologies. If 'a single codebase of open technologies' is so important then the same argument says Apple should abandon their platforms in favor of linux/AOSP. I'm sure a number of people here believe that (and strongly) but ... (1) Apple has a few hundred billion counterarguments sitting in the bank and (2) the entire industry has greatly benefited from Apple's efforts at pushing their closed platforms. And if 'a single codebase of open technologies' isn't the be all end all then the argument reduces to "Apple should subsidize the technology I'm invested in". I bet turnip farmers think Apple should buy lots of turnips too.
- gregblass 9y agoThank you Christian. This is what I was trying to say. I think I could have better job at making my point more clearly. But you got it.
- AndrewUnmuted 9y agoMaybe developers should focus on the subset of platforms that they know they can deliver a first rate experience on, instead of forcing support for every platform imaginable. It's a sad state of affairs for the web when we see articles claiming that one company's failure to adopt a standard amounts to threatening the web. The open web supports and should encourage competition, not blind homogeny. I don't think it's misguided for a company to hesitate in supporting a platform which will enable its users to jump ship to another competing company.
- jsz0 9y ago> This is unnecessary duplication of work that could've been spent writing new features I bet that's how Apple feels about implementing PWA.
- ryandrake 9y agoReverse the discussion: I'm a C and C++ programmer with a background in embedded systems. My idea of a development framework is a Makefile, a bunch of headers and .a files. I've got an investment in a lot of libraries I've already written over the years. I want to develop great web applications. Should I feel frustrated that it's not straightforward to use my preferred toolset to build this web app? Should I blame browsers for not accommodating my development preferences? No! I need to bite the bullet and learn JS and HTML. You need to pick the appropriate tools for the platform you're targeting, get out of your comfort zone and take the time to learn them.
- KingMob 9y agoCould always apply to OkCupid. They, crazily enough, build their website with C++.