State of mobile web development, part 1/3: the problem

Recently Mike Rowehl, a mobile developer with relatively little knowledge of the web world, confessed to being baffled by the attitude of web developers interested in mobile.

He feels there’s a disconnect between what web developers do, what they’re supposed to be doing, and the tools mobile vendors make available to them.

Mike is completely right. There is a whole series of disconnects right now in mobile web development, and most of them are the web developers’ fault. Unfortunately the web world is hard to understand for an interested outsider.

That’s why I’m going to reply to Mike’s article in detail. My reply grew so large that I split it into three parts. The first two parts will treat the failings of web developers; the third one will discuss what the mobile world is doing wrong.

This first part defines the overall problem.

(Now if someone on the other side of the fence would explain the mobile world to web developers I’d be grateful. I’m especially interested in mobilists’ perception of the web.)

The problem

Mike says:

Generally I don’t hear too much from the web developers about being able to hit wide swaths of devices with the same set of markup and styles. [...]

I hear things like “it works on the iPhone, that’s what I have anyway, I don’t care about Android” more often than I’ve heard people discuss how to make things work consistently on both platforms.

Whenever the discussion starts to revolve around hitting multiple handsets, it’s always driven by people already in mobile.

In other words: why aren’t mobile web developers doing their job? The unique selling point of the web is that it runs on all devices; and not just on one platform. But it seems mobile web developers aren’t much interested in reaching out beyond one or two specific platforms.

This is a bug, and not a feature. Web developers should reach out to as many platforms as humanly possible, and not confine themslves to the best one.

The easiest solution is to tell them so in no uncertain terms. The good ones will avoid your eyes nervously because they know you’re right. The bad ones won’t — and that gives you a good method of separating the chaff from the wheat.

Now why are web developers interested in mobile so reluctant to venture out beyond their iPhone comfort zone?

Demand and market share

On Mobile Web Brian Fling made an important point:

Maybe smaller companies get swayed by marketing buzz [about the iPhone], because they have no data to the contrary. But the companies we work with have a lot of data from a lot of different countries. They don’t make decisions hastily as it can take them 12-24 months to implement and roll out a mobile solution.

In other words, current mobile web projects for large companies are based on requirements written last year, during the height of the iPhone obsession. In addition, the iPhone’s share of mobile web traffic remains out of proportion to its sales figures.

That certainly influences web developers. If clients ask only for the iPhone, and their logfiles bear out this request, then doing an iPhone-only site makes sense.

Still, I believe that any mobile requirements being written today will be more diverse in approach, and that clients will start to appreciate writing something that can run on more than one platform. As to traffic market share, I expect the iPhone to lose some to everybody else, but I have no idea how much or how fast.

Best viewed in IE iPhone

Mobile is becoming hip in web development land. Web developers who want to impress other web developers increasingly turn to mobile.

Unfortunately “mobile” means the iPhone here, because it’s the only device web developers have access to, and because it supports the largest swathe of nifty tricks. Besides, it’s the only platform that ensures that other web developers will be able to appreciate the results.

And let’s face it, a slick animation on the iPhone is inherently more sexy than a complicated JavaScript workaround for BlackBerry 4.6, even though the latter is more important in the long run.

All this is quite natural in the current phase of mobile web development. Unfortunately iPhone-centeredness reinforces the idea that mobile web development is only about the iPhone.

Lack of devices

Still, it’s not unnatural of web developers to start at the top of the market, especially if the top device is all they own.

I bought an iPhone in 2008, did a little bit of testing, and didn’t really think about the rest of the mobile world.

Then I got lucky when Vodafone gave me access to lots and lots of devices, as well as some people who know their way around them. That gave me the opportunity to dig down deeply in the mobile browser market.

The average web developer, however, has to make a serious investment to get that far. He’ll have an iPhone or Android for personal use, but will need at least two or three more devices if he wants to get into the mobile web seriously. Not all web developers are willing to make this investment; especially not when they have no mobile clients yet, or those clients only ask for the iPhone.

So I can understand why web developers postpone the heavy investments that ar necessary to truly switch over to mobile.

Bitching about IE

Mike says:

But you don’t even really need to be familiar with the technology, all you have to do is take a look at Twitter on any given day at the discussion going on with web developers. Quite a bit of it revolves around bitching about cross-platform issues, which normally means getting the stuff to work on different browsers even when we’re dealing with full desktop layout. Now we’re talking about supporting different device resolutions and orientations all using different browsers (or at least different versions)? I can’t see the web devs I know jumping out of their seats to volunteer for that.

Bitching about IE is a bonding ritual. I’ll thank you for not making fun of web development’s most important cultural achievement <grin />.

What web developers must understand is that IE doesn’t matter on mobile! This is the biggest single advantage of crossing over to the mobile web, and web developers’ eyes start to glow whenever I make this point. (They’ll have to find another browser to bitch about, though.)

Incidentally, web developers are calling the shots on mobile; and not Microsoft. Microsoft can make IE matter by improving the mobile browser to IE9-like levels, but if it doesn’t it’s out of the mobile browser race.

Besides, exactly why do web developers bitch about IE? Because they insist on getting everything to work perfectly! If they had the courage to deny IE users a few advanced features, the level of bitching would drop significantly.

Fortunately, this attitude is going to die pretty soon. On mobile it’s just plain impossible to give every single browser the same experience.

On mobile we must use progressive enhancement. We must deny users of certain browser certain advanced features, either because they’re not supported or they are so very hard to implement that it just doesn’t make sense to waste time on them.

To be continued

Progressive enhancement is the key to mobile web development. In the next installment I’ll talk about this concept a bit more.

This is the blog of Peter-Paul Koch, mobile platform strategist, consultant, and trainer. You can also follow him on Twitter.
Atom RSS

I’m around at the following conferences:

(Data from Lanyrd)

Categories:

Monthlies:

Comments

Comments are closed.

1 Posted by Mike on 20 September 2010 | Permalink

I think "Lack of devices" is the most important. I have an Android phone. I test my websites on that. I also test my websites on all the desktop browsers I can download for free, firefox, ie, opera, safari, chrome etc.

I'm not going to go out and buy an iPhone, a Blackberry and a range of Windows and Symbian phones just so I can test my websites on them.

People test on the browsers they have access to.

2 Posted by qwewe on 20 September 2010 | Permalink

I wanted to test on Android, but then I saw SDK.

SDK has smoothness and usability of 1990's Linux (no sane defaults, acronyms everywhere, doesn't ship with needed files, UI is launched from commandline, essential fields disabled for no apparent reason).

Not only design of the UI sucks, the whole UI is implemented in Java.

The emulator is slow. Very slow. Barely usable on top-of-the-line machine.

Screw Android. I'm not testing on this.

iPhone Simulator is easy to install and runs very fast and doesn't require PhD to set configuration options.

Opera Mobile has very sweet and fast Mobile Simulator that runs with few clicks as well.

3 Posted by Daniel on 20 September 2010 | Permalink

Yeah, I agree with Mike about lack of devices. I'd be happy with decent emulators really.

4 Posted by Christoph Pojer on 20 September 2010 | Permalink

In addition, emulators are really not helpful. Nothing compares to testing on the actual devices.

Mobile web development is currently a minefield. Dealing with minor inconsistencies across mobile browsers is tougher than on desktop browsers - but I'll admit it is a lot of fun.

I am mostly worried about fragmentation. While iOS users usually upgrade almost immediately, a lot of Android handsets don't even receive updates at all. Android upgrades rely on Google, the manufacturers and on the carriers. iOS devices only rely on Apple. I'd call this one major advantage of iOS devices.

5 Posted by Steve Souders on 20 September 2010 | Permalink

I love the honesty in this and Mike Rowehl's post - we (web devs moving from desktop to mobile) need to do a better job. What's lacking IMO are the tools and frameworks to support this. For example, I'm on a quest to find a way to generate *accurate* HTTP waterfall charts on mobile. (I've found plenty of inaccurate ways.) Wrt testing devices, I'm disappointed I don't see more people evangelizing services like http://PerfectoMobile.com and Keynote's MDPi ( http://www.keynote.com/products/mobile_quality/on_device/mobile_device_perspective.html ). These services cost money, but in the long run are less expensive. We (web devs) know we need to build for more mobile devices. So let's all start working on the necessary tools to make that easier.

6 Posted by ppk on 20 September 2010 | Permalink

Fragmentation, especially on Android, lack of tools and frameworks, and testing devices are all serious problems right now.

Why do you think I divided this article into three?

7 Posted by George on 20 September 2010 | Permalink

So Mike wonders why we're not testing on X devices running Y number of browsers or OSes to cover a percentage of visitors that you can count on one hand?

Really, is he really wondering?

Not to mention that most clients do not want to spend money on this, and that if you're going to do it right, you need to put up an entire new infrastructure to support mobile-only visitors.

Obviously more and more traffic is going to be via mobile devices onward, but it's no where near the point where it's economically reasonable.

8 Posted by Stephanie Rieger on 20 September 2010 | Permalink

A bit of info regarding test devices...

I'm not sure how long this promotion is on but Forum Nokia (the Nokia dev community) has a program called Launchpad.

http://www.forum.nokia.com/Developer_Programs/

The program provides access to a large collection of test devices including prototypes. The service is very prompt. You usually receive the device by DHL within 2-3 days of placing an order and you can keep it for up to 4 weeks. As a member, you can also purchase discounted devices (typically 20-50% off retail).

And, available to anyone is a remote testing service which also often includes prototype devices http://www.forum.nokia.com/Devices/Remote_device_access/. You just need to have a Forum Nokia login.

9 Posted by Thomas J Bradley on 20 September 2010 | Permalink

It's definitely true that web developers are a little lazy right now when it comes to testing on mobiles.

It's easy to get the emulators running for Android, WebOS, Blackberry, WP7. Though they aren't perfect, it's a good start. The real problem surfaces when you want to test feature phones, I have yet to find a way without purchasing devices. (I really want to test on Symbian, but can't find an emulator.)

And I completely agree, with the other issue, we web developers can easily test desktop browsers by downloading them, but the only way to reliably test mobile browsers is with actual hardware. I would like to see mobile vendors step up and help us out.

10 Posted by Jason Grigsby on 20 September 2010 | Permalink

Hi PPK,

Looking forward to the rest of the posts. I'd love for you to expand a bit on how you reconcile these statements:

"This is a bug, and not a feature. Web developers should reach out to as many platforms as humanly possible, and not confine themselves to the best one.

The easiest solution is to tell them so in no uncertain terms. The good ones will avoid your eyes nervously because they know you’re right. The bad ones won’t — and that gives you a good method of separating the chaff from the wheat."

With a comment you made earlier:

"Not all mobile browsers support media queries. Correct. My take: screw them. If they don't give us the tools for progressive enhancement, that's their problem, and not ours. The mobile space gives us more freedom than the desktop space in that regard."
http://bit.ly/aQ612j

Mike's post states, "So lets just assume that folks using lower capability devices make good users and they’re people you want to address as users."

The great part of Bryan's presentation is that it challenges us to serve content to all devices and people. That's Mike's point as I understand it.

So when you talk about progressive enhancement, I'd love to know what you have in mind for those low end devices.

11 Posted by Jason Grigsby on 20 September 2010 | Permalink

BTW, I don't mean to call you out. My suspicion based on our conversations is that you have a more nuanced perspective than "screw 'em," and I'd love to hear it. ;-)

12 Posted by Mark on 20 September 2010 | Permalink

First, I think the problem is more with browser vendors than web developers. If the browser vendors would just follow the standards web development would be a breeze. 99% of the issues we face on both desktop & mobile are related to cross-browser issues.

Second, some of us unfortunately work for companies where the people in charge only care if the site works on whatever browser they're using and they don't really care about anything else. Some people high up where I work got iPads and now we have to get all our sites to work on the iPad. We're ripping out Flash and replacing with HTML and adding touch events to everything. This is causing massive amounts of work just because a few people couldn't get some things to show up right.

Sadly, most people in charge know nothing about the Internet and things like "progressive enhancement" mean nothing to them. All they want is for the page to work right on their screen. At least they bought our department an iPad so we could test with.

I totally agree with your point about not having access to different devices. It's pretty hard to make something work on a browser that you don't have access to.

13 Posted by James Pearce on 20 September 2010 | Permalink

What the world needs very soon is some simple out-of-the-box CSS & JS templates to get the progressive-enhancement/mobile-first meme seeded well.

I'm thinking of the boost to web design that reset.css and 960.css stimulated back in the day. Something like that...

14 Posted by Sam Foster on 21 September 2010 | Permalink

I know I'm a bystander on the mobile web thing because of this same chicken and egg problem - without a client I can't personally afford the devices; without reference work, I can't get the client.
However, I did recently stump up for a new macbook pro, as well as a windows7 license to run that OS via vmware. That same outlay would buy me how many devices? Most of the important ones I'd guess... Does that just make me stingy, unimaginative or can I offload some of the blame on someone else maybe?

15 Posted by RaphaelDDL on 21 September 2010 | Permalink

Just a note: i am a mobile web designer and i bitch a lot about IE.. Mobile IE is even worse than IE6 desktop. Windows Mobile 6 has mobile IE based on v4! And 6.5 based on v6. Completely awful do develop for that plataform. Other thing i bitch about is with Motorola V3 series. For some obscure reason, my client have a great amount of access from those devices. And it's sad: 176px screen, only one font size (and it's BIG), not opening pages with any request superior to 10kb and other stuff i prefer not to say.

I can REALLY understand the lack of knowledge web designers have since each device, each browser has a different behavior. Having to make a mobile website with 4~5 different codes to get most devices is hard. And more than hard, epic hard to make tha client see the benefits from those codes (and the bigger price). Clients fail to think in their visitors. As long is good in his mobile so he can show around to his friends, he does not care.

The first thing is work with web designers and then, work with clients and open their eyes to the incoming visitors he will support.

16 Posted by Elia Freedman on 21 September 2010 | Permalink

Just to get street cred out of the way up front, 13 years in mobile, development on Palm, WinMo, Win, BlackBerry and iOS, a couple of years spent on mobile web development (although pretty basic stuff).

Most of the emulators are pretty good and most of the webkit browsers are pretty consistent. I can say i also spent a lot of time in the local carrier stores playing with my web apps on the devices to see how they worked. Easier than haying devices!

The fundamental problem with mobile -- and I think you said that here -- is that every mobile user expects a fundamental user experience that matches the device. Android software -- web or local -- needs to feel like Android software. Same thing for iOS and webOS, etc. So it is absolutely critical to refine the experience for each device. A lot of work but better than the alternative: writing an app for each platform.

17 Posted by Daniel Ryan on 21 September 2010 | Permalink

Thoughtful post as always. Lack of devices is certainly a problem. I've fortunate enough to have a few developer friends with the devices I don't have so we test each others work. Still, I'll probably wind up buying an Android sans-phone as soon as there is one.

My favorite insight was that if people stopped trying to make every browser look and behave identically they'd bitch a lot less. It can be a tough fight with some designers, but I just ask them to build the same page I just did and then we can talk.

18 Posted by tiffany on 21 September 2010 | Permalink

"Besides, exactly why do web developers bitch about IE? Because they insist on getting everything to work perfectly!"

In my experience, the insistence comes from clients, designers, and account services folks, not the developer.

Agreeing with your point re: devices, however. Though is it safe to say that WebKit and Opera are the leaders here? If you can't invest in a babillion devices, your next best bet is a progressive enhancement approach that targets those browsers first.

19 Posted by tiffany on 21 September 2010 | Permalink

And had I read to the end of your post, I would have seen that you already said "progressive enhancement." :-)

20 Posted by Geek on 22 September 2010 | Permalink

The article mentions we web developers should use "progressive enhancment" and "deny IE users a few enhanced features". That sounds great, but in reality it is the web developers job to meet business and functional requirements. As such, disallowing certain features or functionality may not be an option.

What most web developers hope for is the implementation of W3C standards across the board. Development for different browsers should not require the web developer to write vastly differing code or resort to "progressive enhancements" because one browser either does not adhere to standards or does so in some peculiar way.

The onus is on the provider of the browser and the W3C, not the web developer.

21 Posted by Me, myself and I on 12 October 2010 | Permalink

"We must deny users of certain browser certain advanced features" - Idunno. This may have been true a year or two ago, but I seriously doubt that it's true anymore. Many smartphone vendors ship android-based phones nowadays, which have Chrome-based browsers, and even before that Opera mobile was pre-installed on quite a number of devices. Both Opera and Chrome are quite capable browsers. In a few years, probably there won't be a decent phone on the market with lower res than at least VGA standard, or without a touchscreen. You can reasonably render something similar to a desktop web app on such a screen, and usability should be similar too. Since it takes a long time to develop and deploy a new app/site, why start doing it with the technology of yesterday in mind?

22 Posted by Gerald Labuschagne on 12 October 2010 | Permalink

Hi all.

I been wanting to go in mobile Dev but lack of devices and cross platform standard have been a major reason for my lack of getting a move on.

So my new approach and focus will be aimed at doing business applications for iPad's, iPhone's and ipod touches. and not web based visitors at all. I would prefer to be good at development on theses platforms where I know initial investment of my iMac, iPod touch 'Can double as a limited iPhone' and soon my new iPad will payoff. That way, happy developer, happy client.