So... it's 2013, and I'm sitting here with my blazingly fast nexus 4, and the web sites I visit are... slow. terrible. broken. spammy.
Half of them have 'popups' that try to banner at the bottom of the screen, but end up flailing wilding and either taking up the entire screen, or just helpfully sitting exactly over the middle of the page. A lot of them try repeatedly to direct me to a specific page, or a native app when ever I flick between pages.
The links are tiny and impossible to click on without zooming in.
It's just a terrible, terrible experience.
How do we get from this broken UX experience story of right now, into the magical compelling 'mobile web app' future that OP talks about?
I worked as a front-end developer for an adnetwork for two years, so I take a little responsibility for your experience. I tried my best, but there just wasn't that much interest in getting it right.
Here's why I think we're all having a hard time with advertising in mobile. Basically, adnetworks are still learning how to do it right, the same way designers and developers are still learning how to do mobile websites right. The layout issue you mention comes from a conjunction of various reasons:
* Marketing thinks mobile == iOS, which sets limited expectations and for example means developers have a hard time getting a variety of devices to test on
* Adnetworks are likely targeting mobile with the same front-end infrastructure they use for desktop. Most of them still target IE6 so they're trying the same ideas
* Old iOS versions and many other webkit browsers have big issues with fixed positioning. First they didn't support it. When they did, they still had issues rendering while scrolling and firing the correct events
* Ads in mobile require a complex layout but the standard in the industry is that the website doesn't have to do anything but insert a script tag in the page. If there was teamwork between websites and ads, they could use better layout tools like flexbox
Rooted Android phones can install apps[0] that block most ads (I think it only blocks connections to the ads and doesn't do any fancy CSS rules).
And Firefox on Android has Adblock Plus browser extension which as far as I know blocks ads like it does on the desktop version. No root needed for this.
When I open an app or browser on my smartphone, I'm usually focusing on a single task, where ads are intrusive and take away precious real estate from an already tiny screen. It's an enormous relief to use an app or site that just does what you want it to do and nothing more.
Ironically, it's on my smartphone that I'm most likely to use an app that's completely focused on advertising. When I'm looking for a movie or nearby restaurant, I love being able to read reviews and eventually move on to a dedicated web page where I can get more info (movie times, menus, etc.). There are apps that do this very well.
There are plenty of ways to get consumers to happily view advertising and promotional material, but inserting unrelated/unwanted ads into apps and websites just creates a frustrating user experience, especially on mobile.
I'll provide a different option: it takes too much time to get it right! iOS for example provides so many default widget toolkits complete with gradient, sheen, and dropshadow which make it really easy to create a polished experience quickly. The web has no such concept (well, bootstrap is sorta close but not nearly as polished and not for mobile). Why does the web not have these polished frameworks? Simple - ROI. The incentive for Apple and Google to develop said frameworks is large: a pool of developers who will take advantage of the toolkits and write much better / way more apps. What's the incentive for the web? Basically nil. Anyone can rip off what you did (one of the downsides to the web being open and standardized!), and you gain none of the benefit of enhancing your platform.
It does have them. There are many toolkits that provide components for the web. Bootstrap is just one of them and one that has been getting a lot of publicity here for a while because it's new and has a nice design. But there are many out there that cover different aspects of mobile web development: YUI, Sencha Touch/ExtJS, Dojo, jQuery UI/Mobile, Enyo...
And pre-made toolkits still require you to tinker with them to get layouts right, make them fit your design and make ads work OK in them. That's true for both the web and native toolkits.
Frankly, if all the ad networks in existence fall over and die from their own crudulence, I'll not shed any tears whatsoever.
Any site that uses crap ads that affect my user experience will really have to be something special for me to continue to use them. I'm happy to leave these sites for other sites that don't do stupid things to users.
You (as with most of us) probably spend so much time on the web now, shuttling around many many different websites, that you don't notice (or remember) that a large proportion of the myriad of native software, beyond a few well polished examples, exhibits flaws that while different are just as annoying, slow, buggy and otherwise irritating.
Bad websites are just like bad software. There's a chance that my making it easier to create apps there will be an increase in bad ones, but there should be an increase in good ones as well. There has been on the web.
I think a good way or restating your point is that, the better web gets i.e. more advanced frameworks with better testing suites, the harder it is to screw up.
A point I'd like to make:
At the end of the day though, mobile _can_ be fast, but it just doesn't compete with native, yet. When I take a web project after concluding an iOS app, I miss being able to run tests and deploy to my phone or iPad in one place and easily. I miss how formal native code feels over a javascript stack. I hope this changes one day, and I love what Firefox OS is promising, but until then, I will be working with native solutions.
And this doesn't even mention the pain of actually MAKING such a webpage. HTML5/javascript/css are, to put it blunt, rubbish and antiquated technologies. Why even force people to use this "boxed" and shit set? Firefox OS is just wrong from so many perspectives..
Not at all. Dead serious. If HTML/CSS/javascript had been properly developed we wouldn't even have to deal with all the issues surrounding web dev. All these issues have been addressed by OS development decades ago (e.g. duplex connectivity, UX layout, MVC split, performance, just to name a few), yet we still have to deal with them now. Million of man-hours have been wasted due to them.. So no, this is not trolling.
Mobile apps have been an absolute blessing and finally enabled proper mobile development. I don't see a need to go back to html other than legacy..
I actually use http://cheeaun.github.com/, which is entirely web based and works wonderfully well. No updating of the app required, no mini-browser within the app, etc.
Mobile apps have made it possible to write your app once and have it work on multiple platforms? Gee, I must have missed that (as I post to HN, a web app that works on multiple platforms).
Don't kid yourself. Anyone writing web app "once and have it work on multiple platforms" is just writing different workaround for the different platforms into the same codebase.
HTML was created to markup structure of the document, CSS was created to style the look of that document. JavaScript was created to add some interactity. The idea of the HTML web was about documents, not apps.
Now compare that to the native SDK's which were created for apps develpoment and specifically targeted to solve specific problems. Anyone claiming that web technologies today or tomorrow will be a good replacement for native SDKs has very little idea about native SDKs. Myriad of frameworks trying just so hack some MVC with webtech is a good indicator about the suitability for the task.
Sure, with enough time you can bolt-on enough feature on the top of HTML and JS to make it bearable for apps development: but it will be just that — stuff bolted on the tool created to solve completely different problems.
I don't know why looking at every problem like a nail just because all you have is a hammer is suddenly a good idea.
> I don't know why looking at every problem like a nail just because all you have is a hammer is suddenly a good idea.
Uh.. because it's cross platform. The ubiquity of the web is literally the only reason why people use HTML/CSS/Javascript. All your points are valid except for the fact that you are blatantly disregarding the single biggest downside of native development: multiple-platform support. I'm sorry, the world isn't made up entirely of iPhones or Android phones.
If only I could write web documents in yaml + python.
I do agree, and I hope people aren't downvoting you like crazy, because the only reason html/css/js exist is because it is entrenched. Same reason people use C and C++. They both took a market you can't easily shift away from (by both being effectively an ABI) and are now indisputable.
Fuzzy XML with a curly braces C style semicolon delimitered design language? A programming language with no standard library besides a math module, so your website ends up being 3mB of JS libraries and 100kB of actual document?
Though I wouldn't say mobile apps are absolutely a "blessing". The Android XML + Java morass is barely a step above html + javascript, and I'd argue it has even less productivity. I end up getting the most freaky bugs in layouts trying to get them working on multiple devices and waste so much time on that blasted syntax.
> the only reason html/css/js exist is because it is entrenched
It wasn't entrenched in the mid 1990s, heck, it arguably wasn't entrenched into the early 2000s when some people were trying to move apps to *ML, or another VM besides the one that failed in the 90s. None of the alternatives won out.
I'm not going to argue that making in-browser apps is a walk in the park, but I do think that a lot of people making arguments about how app development was a solved problem for native OS are both (a) overstating their case (b) seemingly blind to the advantages that html/css/js have along with the liabilities.
Making firefox os is great, but how do we get from here to, people making web apps that don't suck on mobiles?
Is it a market place they're going to sell apps on and curate so they're no rubbish?
Is it a platform that is so great and compelling people are going to stop making native apps for it?
Is it a new browser that is so amazing they everyone is going to swap to it, and it makes web apps responsive and amazing?
Is it an entire 'platform' that runs inside a browser?
A native app that acts like it's own 'OS' that runs on all phones?
...you get the idea. What about firefox OS is going to change anything? I'm not trolling, if you can figure it out, tell me, because then I'll pitch it, at work, and we can start down that path.
> Is it a platform that is so great and compelling people are going to stop making native apps for it?
I think that's the idea, yes :)
> Is it a new browser that is so amazing they everyone is going to swap to it, and it makes web apps responsive and amazing?
Browsers are already pretty cool; what's good for Firefox is what's good for the web (including webkit browsers). Since Firefox is pursuing consensus and standardization with all their new phone/browser ideas, it should be easier in the future to write cross-platform web/phone apps.
> Is it an entire 'platform' that runs inside a browser? A native app that acts like it's own 'OS' that runs on all phones?
It sort of is a broswer. It provides a bunch of APIs that make it possible to control phone functions from javascript. So you load a web app, and it can make phone calls and send texts and take pictures and whatever. In this video you can see the app launcher and the phone app written in HTML, CSS, and javascript. http://cnettv.cnet.com/hands-mozilla-firefox-os-boot-gecko/9...
By making the browser a true platform-a "first class citizen"-it will no longer be "that place you have your blog" and most app makers won't have to decide to go "web" or "native" (and make a different app for a growing number of phone OSes) because they'll be one in the same. It means people will care more about the web to begin with.
If that happens, we'll see more mobile OSes being created, competing and innovating because you've solved the "chicken and the egg" problem with apps. Devs won't stay with the Big 2 simply because that's where the customers are, because the customers won't stick with a phone OS they hate simply because that's where the apps are.
What I find interesting is how much the trend in mobile resembles the PC/Web boom. Ten years ago everything you did on the PC besides browsing required its own software. Not so true anymore, huh? I hope mobile continues to follow the PC's trends and make this happen next.
> So... it's 2013, and I'm sitting here with my blazingly fast nexus 4, and the web sites I visit are... slow. terrible. broken. spammy.
No, your browser sucks. Because there is virtually no competition among browsers on mobile. The vast majority of users never even think to use any but the default and therefore there is little incentive to make the big improvements they need.
While a lot of the web is still horribly broken on touchscreen devices, it should be noted that the situation is getting better.
The popularity of iOS and Android devices means that a lot of even regular websites now have to pay attention to responsive layouts, large input elements, etc.
Of course, there is a lot of web that updates slowly, HN included. Getting all those on board the modern, responsive web will probably take years.
But having used touchscreen devices daily for browsing since early 2006, the situation is clearly improving all the time. Popular CSS frameworks like Bootstrap help, too.
>You are on a site that is not broken, slow or spammy.
Is this sarcasm? I honestly can't tell. You have never experienced the expired link error? Or the 'site not available' error? HN is one of the most broken websites I frequently visit.
Also you ignored the part about tiny links. HN is full of tiny links: have you used the site on a phone and tried to upvote a post?
I surf this site on my iphone daily. Yes I occassionally downvote something I did not mean to, yes dead link annoys me if I lose what I typed. But the user experience of sharing and gathering opinions of intelligent well informed people from all corners of the world and backgrounds more than compensates. IMO of course.
And thats what I mean - Craigslist is the other "broken" site that does UX well. Its not meant to be pretty or responsive - its meant to do what I expect it to do.
If pg decided to fix the broken CR/LF issue, he might be tempted to add bootstrap, and then make it responsive, and then have a feedback form. So I quite like #lazilyproductive
My experience of HN is mostly reading the content.
The User Interface is the text box, the outstanding orange/grey theme. But the experience is, upvote buttons that are too small to use well, and great insightful posts from clever informed people. Also me.
It works reasonably on my Dell Venue Pro with Windows Phone and IE, though there are a few glitches when long comment pages don't word wrap. But I've been using HN on my phone for almost two years. Having a hardware keyboard helps - my Nokia brick had one too.
Short version: "If you're not paying for it, you are the product, not the customer".
Most of the sites probably don't have a big incentive to make a really awesome mobile app type experience, which would involve zero ads, and a lot of work to make the site work like an actual app on a variety of target devices.
Except for the ones that aren't slow, terrible, broken, spammy. Selection bias at its finest. I could open up a random sampling of native apps from the Play or App store and make the same ridiculous claims about how lame native apps are - because 90% of native apps are complete crap.
shadowmint asked: "How do we get from this broken UX experience story of right now, into the magical compelling 'mobile web app' future that OP talks about?"
How about: by paying for content?
Right now, websites are so messed up (and not just for mobile) because of ads essentially. The content providers want you to look at them, and you'd prefer not to. Unfortunately, 99% of the time, there is not even a way to pay and get a good experience instead.
Look at it this way, the only people making money off of my internet usage is my ISP. Actually, I also pay yahoo $20 a year for ad-free mail, but that's the only one. Until that changes, the ads will continue. The industry needs to figure out some sort of micro-payment for content, because nothing else works.
Half of them have 'popups' that try to banner at the bottom of the screen, but end up flailing wilding and either taking up the entire screen, or just helpfully sitting exactly over the middle of the page. A lot of them try repeatedly to direct me to a specific page, or a native app when ever I flick between pages.
The links are tiny and impossible to click on without zooming in.
It's just a terrible, terrible experience.
How do we get from this broken UX experience story of right now, into the magical compelling 'mobile web app' future that OP talks about?
I just don't see a roadmap for it. :(