I'm working on an in-house project management web based application that needs to support mobile devices as well as desktop.
It's built with Symfony2, jQuery, HTML5.
Are there any performance comparisons between using WURFL as opposed to responsive design, both on server and client side? Specifically I'm thinking about rendering times, HTTP calls (it's quite AJAX heavy).
Performance-wise, responsive design places the entire load on the client so you should ensure that this works adequately well by testing on many devices. Not all smart phones are created equal—some have slow CPUs that make JavaScript code and media queries painfully slow. Overall, using server side code can result in a much lighter experience for the client, while also allowing you to exercise a finer level of control over the experience.
But before you think about the performance aspects of this you should consider if this approach will deliver an adequate mobile experience at all. There are two important aspects of a mobile version of a site that you should aspire to:
- A contextually appropriate experience—it should be able to deliver an
appropriate experience for someone using a mobile device. This may be
quite different to an appropriate experience of the same service on a
desktop. Note that use of a mobile device does not necessarily imply
mobility—mobile device users are often physically immobile but users
may nonetheless prefer to interact with your site or service in a
different way when using a mobile device. The importance of a
contextually appropriate experience is increasing dramatically as the
number of ways that we interact with the web is increasing: a
lean-forward experience that seems appropriate on a laptop may feel
entirely incorrect on a television browser that you interact with
from across a room.
- A device-sensitive experience—it should be
capable of delivering an experience that works well on the devices
used by your website customers. This range of addressable devices is
increasing all the time, and growing more diverse, from feature
phones to televisions. Some are held close to the face, others are
interacted with from across a room. It is next to impossible to
deliver a satisfactory experience on such a wide range of devices,
each with their own input/output restrictions and conventions,
without tailoring the experience to the device. The major internet
brands are keenly aware of this and doing much more of it than may be
apparent—even the seemingly simple Google homepage masks vastly
different code behind the scenes served to different devices used to
achieve a useful experiences across the device landscape.
Used as a means to deliver both a desktop and mobile site, however, responsive design falls short on delivering both desired aspects of an ideal mobile site.
- It cannot deliver a contextually appropriate experience because it
delivers the same experience regardless of the device that people are
using (this limitation may not be an issue for sites with restricted
use cases)
- It can deliver a device-sensitive experience only to to a
limited range of devices, since the core technique limits the range
of devices that can be targeted to smartphones and other high-end
devices. The one-experience-fits-all issue and limited range of
addressable devices may not be a problem for all websites—some sites
don’t lend themselves well to mobile-specific experiences and equally
some site owners may not have a desire to serve a wide range of
devices.
It is worth noting that responsive design has an unknown impact on mobile SEO since it is not clear whether or not search engines will identify the content as being mobile-friendly and rank it accordingly in mobile searches.
Any logic that can be determined and acted upon on the server side can reduce data transfer and client side overhead. Reducing the size of the content sent - e.g. relevant CSS, JavaScript, HTML and optimised images - will clearly put less of a burden on the client.
A RESS based solution (i.e. Responsive Design + Server Side Components - http://www.lukew.com/ff/entry.asp?1392) will always have the opportunity to be faster that a responsive design solution on its own. You will always need to consider significance of "faster", but when I'm seeing (perhaps poorly designed) responsive design sites out there delivering 1Mb+ of content to a mobile device the performance optimisations they could gain from a little bit of server side intelligence are immense. Good white paper on why performance of web site matters from gomez @ http://www.gomez.com/resources/whitepapers/why-web-performance-matters/ and why every second counts.
A few examples on how server side feature detection can help are listed at http://www.opendeviceknowledge.com/discovery including how responsive design and server side world can play together.
WURFL inventor, here. Ronan Cremin appears to have addressed the question rather extensively. At the end of the day, is a question uf usability vs cost (both development and maintenance).
The only other thing I want to point out is that WURFL and Responsive Web Design need not be separate worlds. This and this posts have my viewpoint on the subject.
More interestingly, we recently launched a service that make some of WURFL also available to Javascript developers free of charge. I advise you check out http://wurfl.io/ site.
In a nutshell, if you import a tiny JS file:
<script type='text/javascript' src="//wurfl.io/wurfl.js"></script>
you will be left with a JSON object that looks like:
{
"complete_device_name":"Google Nexus 7",
"is_mobile":true,
"form_factor":"Tablet"
}
(that's assuming you are using a Nexus 7, of course) and you will be able to do things like:
if(WURFL.form_factor == "Tablet"){
//dostuff();
}
This is what you are looking for.
Thanks