All Web Developers Should Stop Doing This Immediately
technologyreview.com
technologyreview.com
In fact, when presented with the mandate that they needed a mobile app, the web developer probably just wanted to create a nice HTML5 site that could be served up in any tablet or mobile browser without the need to install a special app for their particular device. Know why? Because that is what web developers do.
Then there is the issue of privileges available to apps vs. web sites; until the browser supports webkitUploadAddressBook({ stealthy: true }) there will be a strong incentive to develop an app.
You know, since we're over generalizing to empty statements anyways.
Which is true, I don't. But it got me thinking about all the "browser is the new OS" and "the Internet is OS-agnostic" and "this is the end of Microsoft" talk from the late 90s. Anyone else remember those days? Because Steve Jobs and the IPhone pretty much undid it all. It's 15 years later and everyone cares about the OS again. Weird.
It's funny that you pin it on Jobs, who didn't want apps in the first place. Indeed, in 2007, Apple was telling developers to make web apps - http://www.apple.com/pr/library/2007/06/11iPhone-to-Support-...
It was user demand that drove the creation of third party native app development.
If the native SDK wasn't ready yet, I would have been promoting Web apps, too.
http://www.nbclosangeles.com/blogs/press-here/Steve-Jobs-Did...
Just like we don't know whether those iPhones were actually "lost" in a bar...both times.
That's what we did, the first time. We carefully constructed a responsive design that would scale to an iPad resolution and make good use of the screen space, and that would scale again to a smartphone, taking into account single-handed use, UI guidelines for the size of controls so they could be tapped reliably on a high-res screen, and all that jazz.
And we learned in the process how many different ways Apple deliberately break the web browsers in their mobile devices.
They pretend they're on a different size of screen that has no relationship to physical reality, and scale your page accordingly. I'm sure that's great if you really want to see an entire web site squeezed into a few square inches with text too small to read, but it completely breaks the usual CSS tools for building a responsive design.
You can fix that by forcing the viewport size. However, if you do then as soon as the user rotates their iPad the browser zooms the page to show the same content at a different scale instead of actually letting the responsive design do its work by reflowing the layout to take advantage of the new page dimensions while keeping everything at the same size.
You can fix that by setting a maximum zoom level, and a lot of developers stop here, but if you do then you'll sacrifice accessibility for users who genuinely want to zoom because they have imperfect vision and have difficulty enjoying a site at a size that is aimed at a typical visitor.
You can fix that by setting the default zoom instead, detecting an orientation change event, and resetting your overrides each time the page rotates, as long as you can get all the proprietary hooks right and you don't mind either browser sniffing on your server or shoving the extra code to all your users even though most won't benefit.
And so on, and so on.
If Apple want usability for web sites on their iOS devices, they need to stop making it actively difficult for web developers to support their users. A single, simple option that says "make 1px = 1 physical pixel" would be sufficient to fix almost everything they get wrong as far as responsive design goes. Is that really so much to ask?
<cynic> But maybe they don't, because after all they take a hefty cut of the profits on anything you make via an app, so they have a vested interest in pretending to support web standards but actually screwing them up to make app development more attractive. </cynic>
If users don't like the experience they get as a result, there is an easy solution: don't buy Apple products that are shiny but broken, buy something else that works instead. There's no shortage of either good smartphones or good tablets from other sources today.
(Edit: FAOD, the "we" above refers to my team and me, developing our own products. We're not connected to the site linked at the top of this discussion.)
There is a wealth of documentation available on the APIs for programming native apps. In contrast, finding robust, comprehensive documentation for making your web app compatible with any given mobile platform is not so easy, and you need to find it for all platforms that you want to support and then reconcile all the differences.
At least with native apps, you're mostly aiming for clear, stationary targets. Writing an app for a major platform like iOS or Android isn't that hard if you have a programming background. It's the extra hassle of distribution, particularly where App stores and external approvals are involved, that makes it such a chore compared to a web app.
Regular websites should work with minimum problems on an iOS device.
This is a requirement that made sense when iOS came out years ago, and honestly still makes sense today. It's why browsing on an iOS device is so damn awesome.
That explains the different reported size. Once you have a different reported size, you enter the viewport and zoom issues. But at that point, all the decisions intertwine and make sense amongst themselves.
Now, why isn't there a 1px=1 physical pixel setting? That's a different question. By which I kind of mean, “the retina display is probably the reason there is no such setting”. Regardless, that's a missing feature. The ones that are there all make sense, and aren't nearly as foolish as they sound at first glance.
My objection is only that if you have a team who are actually willing to go the extra mile and provide a customised UI that plays to each device's specific strengths, it's absurdly difficult for them to get it right.
CSS media queries actually aren't bad for this sort of work in either design or device support these days, give or take some absurdities involving scrollbars. All I want is for all those juicy features to actually tell me about real pixels. Then I can fix my font sizes and icon spacings and graphic dimensions to look pixel-perfect and still remain accessible and draw at a similar physical size on all devices.
Most of my professional work over the last two years has been targeted at mobile webkit, usually Safari, and while I have frequently felt the urge to defenestrate an iPad due to some weird quirk, I never reached the conclusion that someone had consciously crippled them. Mobile Safari's DOM rendering is all sorts of wacky and requires a frustrating amount of non-intuitive workarounds, but with regards to the orientation issues you mention, browsers haven't really had to deal with rotating displays until fairly recently. So, I can understand not liking the implementation decisions someone made, but attributing it to malice seems a bit absurd.
.. and unless there are some undocumented tricks I haven't come across, I've found web development for Android devices to be a truly unholy mess, significantly worse than Safari.
In the sense that they have broken stuff because of decisions they consciously made, yes.
I doubt their motivation was to do that. I'm 90% sure that it was just an unintended (or worse than expected) side effect of trying to do something sensible with sites that weren't designed with mobile browsing in mind.
I do, however, reserve a 10% skepticism allowance for any potentially hostile policy adopted by certain big companies, including Apple and Google, that do have form when it comes to adopting (or turning a blind eye to) ethically shady practices that conveniently help the business model that actually makes them money.
For some reason people think that they need to have a "Special Tablet Version". You don't! Just have a normal web site, we'll be fine!
The onswipe situation got so bad that whenever I encounter a site using it I immediately click "back" and never come back again.
UPDATE: Oh, I should also mention that half the time when trying to click "back" I actually click the silly Onswipe button in the upper left corner of the screen that pretends to be the back button but actually does something else (takes you to the main blog page I think). Cursing ensues.
What's really weird is that the result of OnSwipe being applied is actually a page that is significantly MORE broken. The reason I've developed a habit of clicking back is because I often can't read the article anyway, since the scrolling is usually broken in some annoying way (keeps jumping around, not smooth, etc). This is exceptionally bad considering that the underlying page would almost certainly work just fine.
OnSwipe probably works pretty well on desktop machines where it's developed, but today's tablets simply can't handle the processing and memory requirements necessary to make it an enjoyable experience.
I don't. They refuse to respond to OnSwipe issues or complaints in any forum (especially anything referencing an original iPad), be it the various question and answer sites they post to, Hacker News or Twitter. I've complained everywhere and haven't received a single response.
IMO that makes for a pretty terrible team.
The only thing that's less explicable than Onswipe is its adoption by Automattic for Wordpress.com blogs (WARNING: The following link crashed my iPad 1, what a surprise!)
http://blog.onswipe.com/#!/entry/onswipe-partners-with-autom...
Everyone makes mistakes, and anyone who invents furiously enough will one day design The Doom Device by accident, but who is dumb enough to voluntarily clasp the resulting doom device to their bosom and start putting copies of it in customers' breakfast cereal?
I've said it before, and I wish I was sure I was joking: A big part of the success of iOS apps is that they are generally guaranteed to have been launched more than three times by an actual developer using an actual iOS device.
Edit: Just confirmed I can watch their videos on my Android tablet, thus it's just a lack of Flash that caused this. In fact on my ASUS Slider they are playing perfectly.
Basically, the (HTTPS) server can require the client to provide a special Apple-signed client certificate, which the server then verifies. If verification fails, it closes the connection. If it succeeds, the video is transmitted encrypted (SSL) and plays back just like any other <video> tag.
There's also a variant that lets you statically encrypt the video and serve it via Apple's "HTTP Live Streaming" protocol, with the keys for decryption downloaded via the client-certificate-authenticated SSL connection described above. This lets you avoid the overhead of SSL for gigs and gigs of data, as you only have to encrypt the files once, offline.
So has Microsoft for the new Metro browser.
So has Adobe, for that matter, if you read between the lines (yeah, they've only "officially" dropped mobile Flash, but desktop Flash is on deathwatch).
A year from now neither any new mobile device nor the default browser on desktop Windows will have Flash.
Time to learn some new tools.
(...or is this so blindingly obvious that it just doesn't warrant a mention?)
IIRC on the iPad, even YouTube links open the YouTube app. Not sure what happens if you don't have the app installed - does it ask you to download the app instead?
Edit: I suppose one could make the argument that if the CBS News website can serve up different stuff to the iPad, then they might as well serve up what's compatible instead..
You can't play Flash video in the browser, but that doesn't mean you can't play video in the browser.
Has there been any movement on a secure way to use the <video> tag yet?
Securing HTML5 video is the only way we're going to have Hollywood content stream over the web again. That's just reality. But it's looking more and more like these types of appwalls are what the future holds for the web.
It has nothing to do with the security. (Heck, iTunes video has some kind of DRM attached.)
FWIW Apple handles this by preinstalling and not allowing you to remove the YouTube app.
For other use cases there are a couple of ad-hoc systems that guide you to the App Store, namely a Game Center invite for a game that's not installed and plugging in an accessory that has a companion app that's not installed.
Me and the other developers would spend literally hours explaining and re-explaining why links to external sites should not be opened in a new window. But because some marketing douchebag once said it was a good idea, our pleas went un-heard.
In short, don't blame the developers, admittedly a small portion of the blame is with them for not fighting hard enough, or being prepared to walk away. But the vast majority of the blame lies higher up the food chain.
If he is specifically talking about arguing against opening in a new window as opposed to a new tab then I'm behind him 100%. Why would you even do that? It makes no sense.
I would be interested in clarification however. And if he is arguing against opening new tabs, why?
Edit: Unless he is talking about a pre-tab era?
Thanks for changing my mind.
That said, I tend to middle-click links so they open in new tabs if I don't want to lose my place (especially here on HN), and I'm happy to have that option. I have no idea what tablet users can do in that situation. On my Android phone, I make heavier use of the back button, history and bookmarks compared to my desktop surfing.
Go work at a big company where you are a cost center (they make their money from ad sales not your web innovation) and you'll get to implement the same dumb crap as this.
That and sites that open in "mobile mode" on a tablet. 10x7 should be plenty of pixels for your normal site.
Web developers have been breaking the functionality of the web for years. A lot of 'feature-rich' web apps today are almost unusable on a mobile device, much less for a disabled person. So instead of making a 'mobile friendly' version of their site, they made an app.
Maybe some day they'll find it cheaper and easier to just make one site that works for all devices. But that probably sounds crazy.
it is even more offen when they offer a crazy javascript version of the site that crashes if you try to "swipe" to the next page.
I wonder, if it's just a lacking sense of communication.
For example, a friend of mine sends me emails like "Do you have a minute. I've got a question.", "There's something we should talk about.", without mentioning what's the actual purpose of his messages. I would expect at least a keyword. More than once I tried to stop him from doing this - without success.
You've then got to click 'full site' to see the full frontpage and set your preference cookie, and then press back a few times to retry your original request.
I wouldn't say it breaks the web, but it is clearly missing a fundamental and significant property of the web and from this perspective it is a regression.
I've also seen people remove information from a site for mobile users as its less important. If content isn't important to show to some users then it's likely it shouldn't be shown at all.
Another assumption web developers make is that mobile users won't be browsing certain pages that advertise a mobile site or app. I've seen many blog posts saying "check out our new mobile sites at m.example.com", using the bold tag to show its a URL instead of an HTML link.
Somewhere like this: http://www.cbsnews.com/video/watch/?id=7398478n ?
...
<div id="flashvideocontent">
So, no there is no way to click through to the video you were after because you are on an iPad, and iPad's do not have Adobe Flash. That means if you want to see the link that your friend sent, then you are going to have to download an app. Blame Apple and Adobe, not the website.
Because the site set it up that way. Intentionally. So, yes, I blame the site.
Sites with a clue (like YouTube and Vimeo) have been serving HTML5 video for a couple of years now.
It's just a matter of adding another step to your automated transcoding workflow (you have one, right?)
For a small indie site the disk space consumed by keeping video in 2 or 3 different formats might be an issue, but for CBS?
If your website links to other sites and you load that in Safari again? Guess what, you just lost me. I'm not going to close Safari and load your app again, whereas closing a new tab would have returned me to your site. The same thing happens when your in-app browser just isn't up to scratch: I'll have to copy-paste the address into Safari and I'm annoyed and gone.
Just like that, I was in the chat room discussing the topic of my post with the people that had found it. It occurred to me that if they were using almost any other kind of chat system (like an app, but also including IRC) I would never have been able to do that. It's a shame, but I suppose there are also privacy concerns at stake.
Of course, the problem might be a little more complicated, because some less adept users seeing that a website will not load on their device might blame those who made the website.
Still, CBS's solution clearly isn't the one making lemonade out of lemons.
ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION, INTERNET, PROCESS_OUTGOING_CALLS, READ_CALENDAR, READ_CONTACTS, READ_HISTORY_BOOKMARKS, READ_PROFILE, READ_SMS, READ_SOCIAL_STREAM, SUBSCRIBED_FEEDS_READ
user: scroll, scroll, grumble, scroll, scroll, scroll, finally!, ALLOW
In terms of web breakage, these all offer urls to the same article on the web page, so they don't break the web going into the sites. I haven't seen them use outbound links.
For some reason the news sites seem to be the worst offenders.
It feels very much like the paywall thing that devastated so many newspaper sites a few years back. Despite having highly desirable content, they just don't get the internet (still).
* Push ads to you even when you're not viewing their content * Read your address book
I hate it too. I also hate sites that ask me to install their app every time I visit. No, I don't want the IMDB app nor do I want the Rottentomatoes app, etc etc..
Unfortunately the majority seem to love it :-(
(or buy it and don't complain, that's fine too)
He lost me here. Too bad it was almost the end of the article and I also agreed with him.
Although I would disagree with it in the sense that any real hacker would likely come up with a far more creative defacement. :-)
You seem to be referring to this comment[1]. Actually speaking though, you weren't downvoted because people disagreed, but because your comment:
1) didn't add anything to the discussion at hand
2) wasn't particularly coherent
3) set no context whatsoever for your discontent (were you on an iPad? some other mobile device? does it seem like a common occurrence?)
I've made my fair share off-topic rants about the submission's readability and other annoyances (and seen other such comments) that were reasonably 'well received' by the community because it actually set the tone for a discussion.
Perhaps you simply weren't being ironic in a sufficiently interesting way.