On Mobile Web Development
Much of what we see is that developers rely on a specific browser (e.g., Webkit) and they forget about other engines on various devices, including Opera, Firefox, and others. The problem seems most persistent on mobile, perhaps because of Webkit’s market share. Things break and developers don’t understand why; or they don’t notice the problem, of if they do they do browser sniffing to avoid the problem.
WebKit’s dominance in the U.S. mobile space is pretty strong. That doesn’t mean, however, that it will stay this way forever. And it doesn’t mean that an alternative browser won’t ever reach a significant market share.
We’ve already seen that happen on desktop. You would think we’ve learned the lessons. And yet the amount of user-agent sniffing, and experimental mono-browser CSS we see in production is pretty mind-blowing. And I mean “mind-blowing” as in, Opera has a person dedicated to mobile developer education and outreach in the U.S. market to combat the problem (me).
I’m not sure how to solve the problem, except to ask that (mobile) developers show some restraint when using the new shiny in production. The vendor-prefix means that the property is in flux, and the syntax of functionality may change radically once it’s finalized and implemented.
Don’t believe me? Look at the history of gradients. Its syntax as introduced changed a few years later. And if the current draft of the specification is any indication, it may change again. Also see: “flexbox.” It’s specification changed completely and then changed mostly back to what it was just in the last 12 months.
I know we all want to be cutting edge and ahead of the curve. But my fear is that we’re creating a climate much like the one that existed in the IE6 heyday.
Back then, developers built Internet Explorer-only sites which broke in Netscape. User perception was “Netscape doesn’t work” or “IE is just better.” So they switched. IE6′s market share was something on the order of 85% at one point. And then it stagnated for five full years until Internet Explorer 7 was released.
Developers paid for this with our frustration costs. Users paid for it time by waiting for extra, IE6 friendly code to download, and in having less awesome web experiences. And Microsoft paid because Firefox ate a big chunk of its market share lunch.
Let’s learn the lessons this time, and be forward-thinking with our mobile development as well.