Friday, April 29, 2011

Mobile Development Approaches for iOS and Android

There are a number of different approaches when developing mobile applications, each having a unique set of strengths and weaknesses.
  • Mobile Web Applications
  • Specialized Tools
  • Native SDK Programming
  • Hybrid Toolkits
Mobile Web Applications are attractive because they support the widest array of devices and because many of us are already familiar with the web development model.  The transition to building HTML/CSS/AJAX applications that execute on a mobile device is relatively painless and in many cases developers can reuse existing content or back-end logic.  

Of course, the drawback to pure mobile web applications is that we lose access to all of those interesting sensors that the device has.

Web applications executing on a mobile device have a different set of constraints when compared with their desktop counterparts.  These constraints include, but aren't limited to, reduced bandwidth, smaller display, cramped input mechanisms, and cookie restrictions.  In order to avoid common pitfalls, developers would be wise to review the W3C guidelines for mobile web applications before going down this road.  While you're there, it makes sense to familiarize yourself with the HTML5 and CSS3 standards as well.  Standards-based web applications will be more portable across a range of devices.

Another useful piece of advice when developing a web application that will service mobile devices and desktop browsers is to develop the more restrictive UI first.  Performance gains made while optimizing for mobile devices may benefit your desktop users as well.  CSS3 has some nifty features for applications on different devices.  CSS media queries allow you to define styles that gracefully scale down on less powerful devices while providing a richer experience to more capable platforms.  An example of this would be to perhaps provide a text-only link for a smaller browser instead of a larger image button.  

When developing iPhone Web Applications, JQTouch, a jQuery plugin, can provide style and animations that give your application the appropriate look and feel.  JQTouch is MIT licensed, allowing you to freely distribute your proprietary application code as long as you include the license.

1 comment: