Mobile is hot right now. Most of our current clients are actively thinking about, if not proceeding with, mobile access to their web sites or building a mobile application. Guess what -- it turns out Drupal is a good platform for that, too!
When going mobile with Drupal, we're advocating one or more of three different approaches:
- Mobile theme
- Responsive theme
- Mobile application
For existing Drupal sites, the fastest, least expensive way to get started is to add a second theme to the web site that is designed for mobile devices. This approach detects what kind of device the user uses based on what the browser tells it, and if it detects a mobile device, redirects the user to a different location. The convention we're adopting is adding "m." to the domain name to get the mobile version of the site.
Using a mobile theme, it's straightforward to create a separate mobile menu to highlight particular content, put that menu at the top of the page, and then the main content immediately below that. Other content on your site can either be hidden or added to the bottom of the page.
Adding this to a Drupal 6 site takes 4 - 10 hours to get something basic up and looking decent.
With HTML 5, this is the current hot approach: make a single theme that is optimized for both mobile and larger screens. There's a whole new generation of themes that have multiple layouts built in. "Responsive" refers to their ability to change based on the browser size. HTML 5 has made this possible through a defined mechanism that allows the browser to directly load different CSS based on the size of the screen.
The main drawback of responsive themes is that older, non-HTML5 browsers don't support the media size mechanism, so if you have a large screen using Internet Explorer 7, you're not going to see the wide theme.
Some themes move the sidebars of a site around to accommodate smaller screens, paying attention to tablet layout and switching between landscape and portrait. Others actually scale the width of their columns based on the width of the screen.
As of now, we are building all new Drupal 7 sites on top of responsive themes out of the box -- our future sites will all be mobile-friendly, at no extra charge. For existing sites, however, getting a responsive theme involves upgrading to Drupal 7 and re-theming their site -- generally a 25 - 40 hour project (if all the functionality you need is available in Drupal 7).
Having your own app in the iTunes store or the Android marketplace is all the rage these days. Lots of people are hungry for apps -- and if you can get people excited about yours, it can lead to more devoted customers -- it takes more of a commitment to download and install an app on a device than to just visit (and hopefully bookmark) a web site.
But it's a lot more expensive to build an app. And you can't just do it once -- with all the different platforms out there, for best results you need to build an iOS app for iPhones, another one for iPads, another for Android phones, another for Android tablets, and you still haven't covered Blackberry, WebOS, Windows Phone, Meego, or Symbian.
There are app builders that attempt to let you write one app and build for all platforms, but by most reports the applications end up targeting the lowest common denominators across the platforms, and end up not being as "nice" as apps written natively for a device.
So writing an app can take anywhere from $10,000 to $100,000, and more.
What do apps have to do with Drupal? If you're writing an app, most sites want to feed data from their web site to the app. The Drupal Services module has been completely rewritten to provide a really nice programmer interface (otherwise known as an Application Programming Interface, or API) for the site. We're building out web services for a client right now, so they can get some mobile developers to build applications that can not only read but also update items on their site.
Which is best? It really depends upon your goals. At this point, there's no reason to not get a mobile theme live for your site -- we are seeing so much more traffic from mobile devices, giving them a better user experience can certainly pay off. Responsive themes are clearly the future, but at this point I wouldn't bother deploying a responsive theme on Drupal 6 -- all the interesting work is being done on Drupal 7.
More mobile to come...