Mobile Devices - A Market On The Move (Web)
Created at 23 APR 2012 03:42PM
Mobile Devices A Market On The Move
In the final quarter of 2010, for the first time, sales of handheld mobile devices - defined as smartphones and tablets - exceeded sales of "conventional" connected devices, such as desktop systems and laptops. Although the overwhelming majority of businesses continue to run their essential operations (ERP and CRM) on desktop GUI devices, most client-facing software development in the last decade has focused on internet applications, targeting web browsers running on these conventional systems. With the ascendancy of the handheld mobile device (with their different form factors and varying communication and processor speed), these internet applications will have to change to accommodate the different environment at the same time they grow in importance.
A Complex Development Environment
Grouping together smartphones and tablets as "handheld mobile devices" blurs the very large differences amongst the devices in this group, and obscures - but in no way remedies - the problems with building software that works well with all of them. These differences fall into three categories: form factor, connectivity, and software.
Form factor: Smartphone "screen real estate" is typically at a premium; some screens are as small as 3.2 inches, although the largest now approach "mini tablet" size of 5.3 inches or more. In addition, these screens can be square or rectangular, touch screen or key driven. Tablets are uniformly touch screen, but range in size from 7 inch (diagonal) up through convertible netbooks with 13 inch diagonal screens, or more.
Connectivity: Wifi connectivity is common, but not universal, in both smartphones and tablets, but even in wifi equipped devices, no "hot spot" may be available nearby. High speed cellular data networks are increasingly common throughout the United States (and are already widespread in Europe), but many tablets are not equiped to use them by default (though it is often possible to "tether" a cellular phone - either a smartphone or a feature phone - to a tablet to provide ubiquitous connectivity).
Software: The smartphone software landscape has changed radically over the last two years. Nokia (the worlds largest manufacturer of phones) has stopped development of the Symbian operating system, and instead has adopted Windows Mobile for their new devices. RIM (the manufacturer of BlackBerry handheld devices) has seen its market share drop precipitously under the pressure from Android and Apple phones. For the near future, it seems that Apple and Android operating systems will dominate both the smartphone and tablet operating system market. In addition to operating system differences, most devices offer the ability to change which web browser is in use; this further complicates the problem of "standardized software across the landscape."
Cross-Platform Libraries Ease Development Issues
Given the significant differences among devices in the handheld mobile class, it is tempting to say that in practice developers must target only specific devices if they hope to develop software that "looks good and works right." After all, it is clear that viewing a web page that fits on a 13 inch tablet will not provide the same user experience when viewed on a 3.2 inch screen; but even beyond the screen real estate and orientation difficulties, each operating system and browser provides different user interfaces, and so requires different output to look right on the target device.
Fortunately, software development tool makers have faced these problems before (recall the "browser wars" as well as the "Mac vs PC" mindset), and have created "cross platform libraries" to solve these issues. Through the use of the proper cross platform library, it becomes possible to generate output that works properly in any of the supported environments; developers need only target the cross platform library (which 'abstracts' the details that each specific implementation require).
Different Approaches in Cross Platform Development
Of course, determining which cross platform approach is appropriate is in some respects a matter of taste, and there are a number of choices available. Most development frameworks began as cross platform or cross browser desktop solutions, but many have evolved to include mobile solutions as well.
Some development frameworks (such as the Java based Google Web Toolkit) are compiled solutions - complex web applications are built in a language (such as Java) and then compiled into javascript for deployment.
Another compiled approach is taken by Adobe's Flex development environment. Like Google Web Toolkit, Flex is a compiled solution that is intended to generate a rich internet experience (comparable to desktop software applications); unlike Google Web Toolkit, Flex completely generates its own user interface elements, and does not rely (or allow) standard HTML or CSS to interact with its output. Even though it initially relied on Adobe Flash 9 (or above), Flex now runs on Adobe AIR, making it available on Apple devices as well.
It is also possible to use interpreted, rather than compiled, libraries to provide cross-platform support. Some of the most popular cross platform libraries are Prototype, Ext, and jQuery. These each provide libraries of functions, built in javascript, that work in concert with HTML5, javascript, and other technologies that are built into the browser. Unlike the compiled frameworks, requests to library functions are converted into the appropriate native calls as they are issued.
The most widely accepted cross platform framework appears to be jQuery and, for mobile platforms, its jQuery Mobile library.
jQuery: The Growing Consensus
jQuery and jQuery Mobile are open source frameworks developed by the jQuery Project, a part of the non-profit Software Freedom Conservancy. The jQuery libraries have been officially adopted as the preferred development framework by a number of industry leaders, including Microsoft and Nokia, though it is the vibrancy of its open source community that gives jQuery its feature richness.
The official jQuery motto is Write Less, Do More , and this is the philosophy behind their library development. Complex functions and user interface elements are encapsulated in simple function calls, and plugins are designed to convert existing HTML elements into jQuery and jQuery Mobile output.
By taking existing, standard HTML and javascript and converting its output via these plugins, jQuery and jQuery Mobile forms can be designed to gracefully degrade if javascript is not enabled on a particular browser, or if a particular device does not offer the full set of available functionality.
jQuery Mobile, introduced in 2010, extended jQuery s platform independent desktop solution to the various mobile platforms. Like jQuery itself, jQuery Mobile is designed to allow developers to code standard HTML and javascript (and now HTML5), and then generate device- and platform- specific output through the plugin and function libraries. Various standard web elements, such as lists, textboxes, and buttons are all converted into finger friendly user interface elements automatically, providing what appear to be custom user interactions per device and platform through a single set of code.
jQuery, jQuery Mobile, and Multivalue
jQuery and jQuery Mobile are good fits with multivalue database products; if the multivalue database can emit plain text and have it sent to the browser on the device, then adding in the extra syntax for jQuery and jQuery Mobile should be no problem (as opposed to, for example, generating compiled web output from within the multivalue environment). Since HTML and javascript are plain text output, multivalue developers can simply print their output (with appropriate redirection or capturing).
There are, of course, design considerations that must be taken into account when building forms and reports for a mobile platform (as opposed to a desktop device), but through the use of jQuery and jQuery Mobile, these amount mostly to bearing in mind the limitations of screen real estate (and therefore coding output to paginate or scroll more frequently, for example).
OpenInsight for the Web (O4W), the jQuery and jQuery Mobile based offering from Revelation Software, provides additional support for multivalue developers by wrapping the routines needed for jQuery and JQuery Mobile and, indeed, for all HTML output in standard Basic+ subroutine calls. By hiding the details of the HTML and javascript calls, O4W allows developers who are not web proficient to generate sophisticated forms and reports.