Over the last few years I’ve been involved in a lot of discussions around online presence and developing end user portals or applications. A few years back these discussions seemed a lot easier than they are now – back then the choices and decisions were fairly minimal, and the decisions that did need to happen were much easier. When companies were looking to drive up there online presence it was mostly about developing a website or web portal – designed for web browsers and desktops or laptops. The technology for browsing the internet on mobile devices was so poorly adopted that it never really came into the decision, and touch screen wasn’t even on the table.
The main discussions were revolving around fluid/elastic design vs fixed width, accessibility and browser support. These were pretty easy decisions for the most part:
- Almost always use fixed width for websites, sometimes elastic for portals / applications.
- Support everything IE6 and better
Nowadays we still have all of the same questions, but the context has changed dramatically.
- The proliferation of devices is incredible – fixed width just doesn’t make sense anymore. People could be browsing your website on devices from smart phones, tablets, laptops, desktops, televisions, games machines, set-top boxes (the list goes on) – and all of these come in varying sizes.
- Apps Markets / Stores – All the major platforms in have app stores enabling developers to distribute their native applications easier, with built in support for accepting payment.
- HTML 5 support is here and its real – not only can we utilise HTML5 via web browsers, but many operating systems can use HTML 5 for native apps. This can enrich web applications, and blurs the lines between web and native. Furthermore, HTML 5 is making single page apps a realistic option for some people.
- Touch screen devices are everywhere – Touch screen devices have introduced a whole new way of working with the user interface, often making it more easily accessible to the end user.
- Mobile – Some might argue that the majority of users are accessing the web via mobile devices – this has 3 major impacts: the device is smaller than a laptop, its often over a lower bandwidth connection and is usually using a touchscreen interface.
The thing that I’ve noticed is that companies looking to leverage the web to their advantage are getting confused. The cost associated with doing so has increased as now multiple devices, platforms, resolutions etc need to be addressed. Companies (and some developers) are also getting confused about what technology addresses what issues, and why you’d choose a particular approach. Some of the common misunderstandings have been:
- Fixed width because my marketing agency says so – This is not relevant anymore – fixed width designs come from a time when the media (i.e. paper, laptop screen etc) was relatively consistent. And not just consistent in its size (we all know PC screens are different sizes/resolutions), but also environment. Nowadays people could be reading your website on a tablet on the bus, on a laptop at a desk or on a mobile at the beach. The resolution is different everywhere, the surroundings are different – the context is different!
- A responsive design means the same web page serves every need – this is just wrong! A responsive design is a fantastic way to serve a web page in way that it caters itself to the screen its being served on – but this ignores 2 things:
- The device maybe touch screen, and right now a web page (even a responsive one) has limited support for touch. Sure you can click buttons (like a mouse), navigate around the screen – but it doesn’t feel native, because it isn’t native. This is becoming less of an issue, but is still an issue right now.
- Responsive designs do not address the bandwidth limitations. Given dramatically lower bandwidth, you will probably want to serve your website in a very different way – limiting full page requests, storing data locally etc.
- Mobile specific sites should render responsive design defunct: Ok, there is some argument that, for a mobile device a mobile specific site is better than a responsive design – BUT a responsive design addresses more than just mobiles…it addresses every device (pcs, tablets, televisions, who knows what next!). A responsive design is about far more than just mobile friendly websites. Furthermore, a responsive design could be a good stepping stone – before you have a mobile specific site.
- Single page apps are the way to go: I’m a huge fan of single page apps, I think they’ve got tremendous potential, but they have issues. If you want you content crawling and available to search engines, single page apps may not be the way to – not yet at least.
- We still need to support IE6 and IE7: I admit that there are some requirements to support IE6 and IE7 but lets be honest, there getting harder to find. Just stop it!
- We need an iPhone app: I hear this a lot and in most situations you just don’t! Getting into this means should be considering native apps for all the major platforms – ios, android and windows. Be pragmatic and ask yourself why you really need it.
How should we approach this
I hate to say this because its a cop-out, but it depends on what you’re trying to achieve. But there are some rules I try to follow:
- Your public facing ‘presence’ website should serve web pages, and should use a responsive design. It should look good on all screen resolutions from mobile up to very large television screens. If its online presence you’re looking for, this should be your first port of call.
- Next you should look at mobile specific apps – use an html 5 based framework, as it gives you the best chance of re-use if you need to move to native apps.
- Use the single page apps approach if you’re building an application i.e. not a marketing website.
- Go native only when it adds value – if you need a hugely interactive experience then look native. If you need to interact with the device itself then go native. But seriously consider a HTML 5 based framework – it’ll give you the best chance of reusing your code base on different devices.
Its an exciting time for software development right now – so much changing, so quickly – who knows what’s around the corner?!!