We are in the middle of a ‘mobile’ revolution. OK may be not bang in the middle – but the revolution is still pretty ferocious. Mobile handsets are becoming increasingly more powerful for the same price. There exists a generation of ‘on-the-go’ businessmen and executives who want to be as productive on the move as they would be at their desks. They need to be able to work with their handsets as easily as they do with their conventional computers on their desks.
But why does the idea of ‘Complete Mobile Freedom’ still seem far-fetched? Is running native apps the only way to get you mobile? Why does one still fear the loss of a Xtop machine? [Xtop = Laptop or Desktop]
Today’s devices and their browsers are very reliable. They can do a fantastic job of not just rendering images and text, but also implementing SSL security for remote connections. In a nutshell – today’s mobile browser has become powerful and sophisticated.
With this premise, think of applications that use real-time data and events – like media applications and trading applications that use streaming real-time data to keep the user in touch with second-by-second updates. Such applications are already there on most mobile phones! What is so interesting about that fact is that such applications are a perfect match for people ‘on-the-go’.
So, how easy is it to make such applications work in the mobile environment, and what are the key challenges? We at Tavant have been part of this revolution, and our experiences show that there are two aspects to this environment that can be quite challenging.
The first is the fact that cell phone hardware and software are far from standardized, with each OEM having their own specifications and features. This means that native applications developed for one manufacturer would not work for another. Sometimes, the same app may not even work across different models of the same manufacturer.
The second challenge is with the intermittent nature of the communication. Mobile networks are expected to be weak or unavailable in certain areas and especially inside buildings and elevators. Thus the virtually unbroken network connectivity of a wired connection cannot be replicated here. Applications developed for the mobile have to keep this important aspect in mind.
How can we design mobile apps in view of the challenges mentioned above?
One of the ways to work around the portability problem is to prefer web applications for mobile browsers, and use native apps only when specific features of the native system are critical to the application – a good example would be touch and sound features for a mobile game app. Since the browser behavior is more standard across manufacturers and models, web applications are more easy to port (though adjustments are still needed for screen form factor) than native applications. Also, the web applications should be designed so that the rendering of the pages is separate from the data being displayed. This way, stylesheets can be used to mould the view to each model and screen-size, increasing portability.
The problem of intermittent connectivity would most adversely affect the applications that deal with real-time data. The best way to work around this is to design the applications to use asynchronous communications and incremental updates for any data fed back to the mobile. Though loss of connectivity would still prevent immediate responses, at least transactions in-flight would not be affected, and the screens would update themselves faster as soon as connectivity is re-established. For streaming data, it is advisable to use the “Long Poll” method instead of the “Persistent Connection” method since the latter is a major drain on battery life.
These are just some of the many considerations and decisions that are needed to be able to design productive and intuitive mobile apps. The mobile app universe is seeing rapid growth, and the learning and resultant standardization will definitely go a long way in conquering many of the challenges in this area.