The App-ocalypse: can Web standards make mobile apps obsolete?
arstechnica.com
arstechnica.com
Why do the following applications benefit from native apps?
Reviews (Yelp, TripAdvisor) Ticket purchasing (Seatgeek, ticketMaster, etc.)
Very few of the answers have anything to do with the users. They all revolve around app store exposure and annoying features like notification spam.
But on the topic of this article, I think the author is too critical of apple as they seem to be moving in the direction of being more favorable towards mobile web app developers. Features like WKWebView show this.
I'm sure in the end this is just a trend and mobile web apps will swing back into favor at some point. Remember, in the early days of iOS native app development was not allowed, and that was one of the first features integrated to iOS frm the jailbreak community. Jobs' original app vision was mobile web apps.
Apple recently introduced Swift, an entire language framework that's aimed at native app development.
User experiences is the where the biggest gap between web apps and natives are (average users don't care about seeing that https at the top). Web apps also cannot adopt the latest hardware features as quickly as native frameworks can (TouchID, 3D Touch, etc). So for a platform like iOS (and Android to a large extent) where it's all about vertical integration and optimization, we'll see cutting edge native apps for a long time.
I'm not saying mobile web doesn't have its place, and there are plenty of terrible apps out there that should just be a mobile website instead, but native apps do have certain advantages that won't be matched anytime soon.
All little transportation city schedules around Europe are like this, and it's infuriating for a number of reasons. I can't use any other mobile OS apart from Android (with Google Play) or iOS. Apps are siloes, so no other webservice can reuse their data. It's generally quite insecure. It's a waste.
Generalizing from that, the problem with apps is one of interoperability - everyone tries to lock you in their shitty app gaining little, but taking away huge benefits that could be created by combining data sources from different parties. As it is now, companies are run by control freaks who don't care that great things are created by not trying to capture all the value you create.
[0] https://www.google.com/landing/transit/cities/index.html
But I also hate when something which should be a native app is instead a JavaScriptified webapp.
- If it can be done off-line, it should be done off-line; hence, an app. Example: public transportation: you shouldn't need an Internet connection to check bus schedules or find a route through your city. Transportation schedules update infrequently, so they should be cached.
- If it's just browsing on-line content, it probably should be a website.
- If performance matters, it should be native (unless you're writing a game or specialized software, performance probably doesn't matter).
- If you're just repackaging your website as an app because apps are hot, please don't do it at all.
Sadly, IT reached the state where customer's interest and company's interest are seriously at odds with each other, and so we have a proliferation of bullshit apps that exist only to destroy the interoperable nature of technology in order to capture ad money.
- service workers
- webrtc
- app manifestSince when is the vibration API a "good example" of something necessary to "give the full app experience on mobile" (using the article's language)? Other than message & phone call notifications, I don't want apps vibrating my phone all the time. The W3C page they link to describes it as a "form of tactile feedback", but that's nonsense, unless they are talking about the touch feedback that newer devices like the Apple Watch provide, which is done mostly at the system level.
Another example the article gives is CSS touch manipulation, which Apple has already started working on[0]. So, the article is 1 for 3.
So maybe what we all need right now is the killer Web app—a demonstration of a website that performs beautifully, even if only on Android. Maybe that would get users’ attention and, maybe then, Apple’s attention.
Flash had no chance against HTML5. Why? Because Adobe had no way to force it on users, and vendors had every reason to want to exclude it, from support/UX to battery life to security issues. The minute open standards reached a point where HTML5 can take over, it will.
But high quality mobile web apps are a direct threat to Apple's and Google's business models for their respective platforms. The app stores are a primary way those organizations generate revenues with those platforms. They have precisely zero reason to move away from that model.
And it's only with vendor support that mobile webapps have any chance at all. In both cases, the vendor is responsible for delivering the primary HTML renderer and JS engine. In both cases, the vendor is also responsible for exposing the APIs to the underlying OS that a webapp will rely upon for maximizing integration with the platform.
Meanwhile, from the consumer's perspective, they're looking at apps, which have great OS integration, great performance, etc, versus a clunky webapp... the choice is obvious.
So you have no consumer demand, due to vendor control ensuring webapps are inferior, and no vendor demand because apps are a direct source of revenue while the APIs encourage platform lock-in.
It just ain't gonna happen.
If the web starts to work way better on Android than on iOS, Apple can still ignore it, but at least then consumers have options.
Moreover, the article clearly conflates the desire to make web sites perform well, with the desire to make mobile web applications perform well, with no basis for that assumption. Yes, lots and lots of Chrome users visit web sites. That doesn't mean Google feels a need to optimize Chrome to deliver mobile web apps (which requires things like richer, deeper integration with the OS).
This is the whole point. You still go through approval uncertainty, 30% tax, the threat of revocation, etc.
The biggest gap I find is sounds. There's no way to say "do the native click sound here". Now I could find the sound and play it in an <audio> element but I'm sure that these sounds differ depending on manufacturer and surely differ on iOS and WinPhone.
The key phrases here are "almost" and "If I put a little more effort". The almost-but-not-quite-native webapps are the mobile ecosystem's equivalent of the uncanny valley. It sort of looks like an app, but then it suddenly 404s a button, or starts lagging, or doesn't do the default for native controls, but rarely used function. It's enough to break user's trust in what the app is and what it's doing. It feels like Java's Swing all over again.
In contrast, apps live in walled gardens on some platforms and we understand that there are some major downsides to that, but the programming languages and tools used to build them are relatively reliable, and the systems on which they run are relatively stable (which is saying something considering how often they do change in some cases).
It used to be that for a lot of tasks developing a portable web app was a more sensible choice than developing multiple native apps in parallel, unless you actually needed to integrate native-only features or you expected to derive a lot of benefit from being available via the corresponding app stores. For new projects in 2016, we'll be seriously considering whether that is still true on a case by case basis, and whether it really would be more efficient to build native versions for the major platforms we want to support and dropping front-end web development for some projects entirely.
My Android Note 4 supports web standards, lets me creating web link icons on the phone "desktop" and is generally great for web browsing.
For somethings like accessing Twitter and Facebook I don't install the apps because I don't like the required device permissions. I do use a few apps, like an SSH shell, but whenever I can I stick with mobile web apps.
I don't worry about the "permissions" for the Twitter and Facebook apps because iOS lets me selectively allow/deny them so I don't allow them to access my contacts, know my location and only access my photos when I choose to send a photo.
What has been will be again,
what has been done will be done again;
there is nothing new under the sun.
ArsTechnica's sister, Wired, is a particularly frequent propagator of the "Native is killing mobile web" debate:- http://www.wired.com/2010/08/ff_webrip/all/1
- http://www.wired.com/2014/01/death-pc-also-mean-end-web/
- http://www.wired.com/2015/06/apples-support-ad-blocking-will...
That said, the submitted article is a nice summation of how the Web has grown so far, and the new APIs and proposed specifications that will (hopefully) impact web development in positive ways.
It lacks one notable article from this year: Atavist's announcement that it was ditching its native app: https://atavistinsider.atavist.com/goodbye-native-mobile-app...
I haven't seen many other announcements like that.
[1] https://www.biblegateway.com/passage/?search=Ecclesiastes+1
Just with the IoT stuff, and the fact that many of these apps use cameras, bluetooth, wifi, gps sensors, and more, I think that this is still years away, and by then, what else will native SDKs be capable of that browsers have not caught up.
Browser tech is just getting far enough along where there is things like offline data that works good, but it hasn't caught up yet. I think "app-ocalypse" is a little too strong of a scare statement in my humble opinion.
The article mentions google inbox as an app that shares code, but if I am not mistaken, this is still an app store app, so while they may be able to dynamically change how the app works server side, they still are in the app store, billing it as a native app, so this seems to work against an app-ocalypse.
I use Facebook across multiple different platforms: web, Android, iOS, and Windows. Instead of them putting so much effort into maintaining different codebases I think it would be better if they could maintain one and use their freed up time and resources to deliver new features.
They actually are able to do this to some extent on Android. They have notification hooks in there and I can do almost anything I could on the native app. I'm pretty close to uninstalling the native app in favor of this.
Competing on spec would allow for different and possibly new phone OSes to be viable. Windows Phone would have a shot and we can bring back webOS from the dead (my favorite device OS of all time).
That's only possible if someone is writing a spec, and that someone is not the vendors.
Certain things are better done as web apps, other things are much better native. Some quick examples off the top of my head would include IDEs, office-type apps (and yes Excel still crushes Google spreadsheets), games, video players, spaced repetition software, compilers, rich chat applications such as LINE or WeChat, as well as anything people want to keep private.
Web apps are great and I love open web standards. That doesn't make them the perfect solution for everything.
The set of APIs available is quite broad, though, not limited to what was mentioned here, and growing quickly. The hybrid apps are the option, but I find it a bit half-arsed workaround with all the cons of the installed apps and all the cons of the web. Investing in the web is the way to go!
During those times, the apps on my phone are still useful, albeit, degraded in some respects. I'd still rather have that than nothing.
Regarding the standard browser caching and "offline mode", it used to work well long time ago for simple static HTML pages (in Firefox and IE), but from my experience it doesn't work well for rich clientside apps (and Chrome doesn't even have "work offline" button)
CDNs (at least Fastly) already support it, but browser support will give web app updates the option of working like native app updates.
It's not a technical problem, it's a business model.
First off, there's a small contradiction about offline storage. The author says that users prefer web apps because they take up little-to-no space, but that the web needs to catch up in terms of storage capability. You can't have it both ways - if websites become more offline-heavy, then users will need to get accustomed to managing their available space (as they already do with native apps). This is an as-yet unsolved UX problem for the web.
Also, based on the comments in this thread, I think many people don't realize how far the web has come in terms of offline storage. Today you can build a mobile site that stores MBs of data, launches from the home screen, and works even in airplane mode. (On Android anyway. iOS is another story.)
I built a small site to demonstrate: http://www.pocketjavascript.com/blog/2015/11/23/introducing-.... On an Android phone, Pokedex.org is basically indistinguishable from a native app, at least once you add it to the home screen. In Chrome, tap the green lock and you can see exactly how much space it takes up (around 6MB). Feel free to put your phone in airplane mode and refresh the page - it will still work.
Second off, there's a lot of speculation in the post about Apple's motives, and why they might be throttling back on the web platform relative to Google, Mozilla, and Microsoft. I'm guilty of this myself in "Safari is the new IE," but nowadays I try to have a more nuanced take.
AFAICT, Apple seems to have many small teams with many different motivations, as does Google. Within Google, you'll even find teams that actively undermine other teams - e.g. what the Chrome team is doing with Progressive Web Apps is a direct threat to Android apps. (I'm even surprised to see one team occasionally trash-talking the other on Twitter.) So talking about "Google's motives" or "Apple's motives" as if they're each one big monolithic entity is a little simplistic.
My favorite theory about Apple and the web comes from this article (http://blog.html5test.com/2015/07/safari-and-ie/), which argues that the WebKit team is just too small since the Blink split, which is why they've been having trouble keeping up. No grand conspiracy theory required - just that the team is a little under-financed. Also, Safari is still rocking it in terms of performance and battery life, so it's not like they're asleep at the wheel.
I think the web still has a chance to catch up with native (for a lot of use cases anyway, not all of them), but it will require a change in how we build websites. In the same way that XMLHttpRequest was around for years before web devs "discovered" Ajax, I think offline storage and various mobile APIs might lay dormant for awhile before suddenly everybody is taking advantage of them. As web developers, the ball is in our court.
Somehow it always seems to be about CONTROL with native. Control of the platform is something _earned_ because the end-user experience is just better.
Apple might look like they are defending their powerful native app position, but how about they just believe its better? They started the iPhone with web app and realized its better for the end user when software is written as extensions to the core OS rather than on top of a browser engine?
With everyone iOS release, they go further down the road and continue to prove to both developers and users (who use the developer's features) that there is more innovation to be had with native, with more endpoints at both the low and high levels. It isn't just about sensors and vibrations and better hardware interfaces. It a better interface with the OS itself. You want the presence of an apps value on your phone but have those things show up in familiar places. This is why you have today screen extensions. I am sure notes extensions, calendar extensions, etc are coming.
And the narrative I'm referring to is web VS. native. like one is going to kill the other. We keep talking about this battle but there is no winner, each has their place. period
We need an open standard for apps but it doesn't have to be built on top of the web. I think we are going to witness the birth of new app standards built on top of open container specifications that can wrap native binaries.