All developers have been there once and said it once “But it works on my machine!” That was a genuine way to justify an unexpected failure in some software we wrote.
Last week I caught myself saying a more modern flavor of it: “But it works on my smartphone!”.
Of course, I had people around the team reporting an unknown bug in an Android app. Yet the app was working beautifully on a wide range of Android devices. I think I can find at least three takeaways from this:
1) The definition of “smartphone” is extremely fluid and dynamic. Like water, it takes the shape of the container and industry is constantly pouring water from one container to the next. Not coincidentally, in the upcoming version of WURFL you find a virtual capability telling if a given user agent string can be considered a smartphone.
2) Whether you rely on a framework like WURFL or do it yourself (really?) via responsive templates the emerging problem is becoming another and it may really dwarf client approach (responsive design) and server-side approach (device description repositories DDR like WURFL). You *need* to combine the two things together–something some call RESS short for REsponsive Server Side. I’d take this one step further and put it under the umbrella of a new cool expression: Multi-device design or maybe MDD.
3) Mobile (vs. desktop) is a thing of the past. Smartphone (vs. Tablet vs. Desktop) is having relevance blurred. Just multi-device is the way to go. And very few are on it already.
Multi-device is about defining classes of devices (i.e., smartphone or tablet) with a DDR and then on the server select a responsive template to adjust it to the various sizes/capabilities of smartphones and tablets. In this way, you treat smartphones more or less as smart phones and tablets as mini-computers. But you STOP treating smart phones like desktop computers or large screens. Also, while CSS is powerful it can’t be used for everything; use-cases can easily be adapted to the needs and different layouts can be used.
If you think I’m flying too high here, consider that this is PRECISELY the approach taken in Windows 8 to support the various states–snapped, full screen, portrait etc.