Handling the Diversity of Smartphones

In my last post Challenges facing Smartphones as SaaS Clients I listed five issues that smartphone applications must address before smartphones can become powerful SaaS clients. In this post I dig deeper in to the first of these issues, which is the sheer diversity of smartphones, and discuss the scope of this problem and how software applications might go about addressing it.

There already are six major software platforms for smartphones which include the Apple iPhone OS, RIM BlackBerry, Microsoft Windows Mobile, Google Android, Palm and Symbian. For each of these software platforms there is a whole array of smartphones sporting many different user interfaces such as mini keypads, touch screens, and different display sizes. The permutation of devices and platforms is very high. Since the smartphone industry is still nascent and computing and user interface technologies keep improving, the torrent of new devices with new capabilities will continue with no end in sight. To provide the best user experience and value, software running on these smartphones must use these functions so that each device is used to its full potential. Display size is one of the biggest variants among smartphones. Since smartphone are small, real estate on the display is valuable and an application must make full use of the available space. If an application is designed to run on multiple devices with different display sizes the most common approach is to design the user interface that fits the smallest size. While doing so ensures that the user interface works with other devises with larger display sizes, it does not fully utilize the capabilities of these other devices. Using the lowest common denominator is inefficient from a design perspective. Likewise, if the approach of designing to the lowest common denominator is used for other features the new features of the most innovative devices will not be used. The alternative is to write applications that are unique for each smartphone which is what many developers end up doing. However if the developer wants to support multiple smartphones the the overall cost is very high.

Fortunately the software industry has faced a similar problem previously and has developed a solution for it. That was the client/server application model for enterprise applications that pre-dated the web application model. The essence of the client/server model was to keep the logic, data and rules of an application on the server where it can be shared with different types of clients, and develop only the user interface for the client. This allowed the client user interface to be optimized for each type of device with the least amount of programming effort. An identical model can be used for developing powerful applications for a variety of smartphones that fully exploit all their unique features. Indeed the emergence of Services Oriented Architecture (SOA) has made this easier and more versatile as compared to the client/server era when software developers had to choose between various platforms. With today’s technology, it is possible for mobile application developers to deploy sophisticated applications using SOA, and then deploy clients on various smartphone platforms that make full use the capabilities of the platforms and the hardware. By centralizing the business logic, data and rules in a server, preferably running in the cloud, software developers can limit the client side of the application to only the user interface and then use the full capabilities of each smartphone and its platforms. This allows for the development of rich applications that will also works across platforms. Developments like this are what will make smartphones the ultimate SaaS Clients.

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>