Comparing Mobile Application Client Architectures

Hi, everyone:

This is the first is a series of articles that discusses emerging mobile technology areas that would be relevant to the next generation ADF Mobile framework.  Today's topic is "Comparing Mobile Application Client Architectures" as it evolved between thick/native, web-based, and hybrid clients.  For the purpose of these blogs, I will exclude laptop PC as a category of mobile device, and instead focus on phone and tablet form factors.

It is to state the obvious that mobile technologies have been evolving rapidly in  recent years, especially since the release of the iPhone that unleashed huge amount of creativity (and money) into mobile application development.  Suddenly software development is at least as critical as hardware design for a successful mobile device, and must work completely in concert with each other.  The rise of Apple's iPhone and the downward spiral of Nokia's Symbian devices are perfect illustration of how software development and user interface/design can make or break a mobile platform.  Therefore, against this trend, there are greater needs than ever for a mobile application client platform  that can not only deliver this mobile-optimized user experience, but also support the increasingly complex business logic that the application must support.

Mobile application client architecture has has evolved between Thick/Native client, web/browser-based client, and the hybrid (Native+Web) clients.  Let's take a look at each one of them on how they have evolved and their pros/cons:
  • Thick/Native client: the earliest mobile applications are thick clients that run on the device.  JavaME of course is a popular choice of technology for building thick client-based apps that can run across multiple devices.  Virtually all mobile device platforms also provide native application development capabilities.  One of the earliest enterprise mobile application I can recall (Siebel Handheld) was developed for early versions of Windows Mobile/CE running on HP Jornada in the early 2000's - the device basically resembles an over-grown HP scientific calculator.  



    New mobile operating systems, languages, and tools have appeared since then, and mobile devices have more processing and memory than desktop PCs just a few years ago.  However, this architecture remains as the most common type amongst all mobile applications.
    • Pros: Consistent performance, disconnected operation capable, close integration with all device services such as GPS, camera, calendar applications, contact lists, etc.
    • Cons: Except for JavaME-based apps, the application is specific to a platform, which requires the same application to be developed over and over again.  The learning curve for native applications is very high.  Development knowledge are generally not portable across platforms, except for (somewhat) JavaME-based devices.  This has largely kept most of the enterprises' IT developers away from being able to develop mobile apps.
  • Web/Browser-based client: As web technology support matures on mobile devices, thin clients based on web technologies start to emerge.  Basic WAP browsers that was popular 5-6 years ago can no longer be found, and instead powerful WebKit-based browsers with full JS/AJAX/HTML5 support are now on virtually all smart phone on the market today.  Many of the early mobile web applications are essentially dumbed down version of a desktop-based web page.  However, since the introduction of iPhone in 2007, the focus has shifted to developing mobile-optimized web pages that are intended specifically for mobile users.  As some of you may recall, the earliest iPhone apps were just WebApps. It is now possible to build web-based UIs that are as rich and functional as native UIs using technologies like JavaServer Faces / Trinidad/ ADF Mobile Browser, or emerging HTML5 technologies using controls like JQueryMobile.  Except a few limited use cases that truly require native UI controls, HTML5 controls can generally support very rich, interactive, and compelling use cases.
    • Pros:  Develop once, and deploy to large number of mobile platforms.  Allows web-developers to easily transition into mobile development.  Able to support mobile-optimized UI that supports a variety of use cases.  More likely to be able to reuse existing modules to integrate into backend applications.
    • Cons:  Limited support for integrating with device native services like camera and calendars, which are increasingly critical for mobile applications.  Limited offline capabilities.
  • Hybrid client: Hybrid clients are generally consisted of both native application layer and web-based application content.   The native application layer generally provides three functions: it gives an on-device presence to the application (i.e. an icon I can click on), it provides a web-container for the web content, and it can provide integration with device native services such as camera or calendar.  Many of the "native" applications on Apple's App Store or Android Market Place are in fact hybrid applications.   Mobile OS' SDK has long supported "browser view" control already that essentially embeds the web content into a browser.  Furthermore, it is also now possible to deploy HTML(5) pages along with the native application in these platforms, which allows the user to construct user interface entirely based on HTML(5).   More recently, products like Phone Gap have been developed to provide the interface between the web-based UI and native services, by exposing these services as JavaScript functions.  
    • Pros: Combines the ease of web development with the power of native applications.  Most of the code can be reused and shared across multiple mobile platforms.  Good integration with device native services.  Can support offline operations.  
    • Cons: JavaScript is not designed to support complex business logic required by mobile enterprise applications.  Lack of robust/enterprise-grade tool that can support rapid development of mobile enterprise applications.
Overall, while native application development can potentially result in the richest mobile application possible (assuming developers actually have time to thoroughly learn that platform), hybrid client appears to strike the optimal balance between functionality and development effort.  Afterall, mobile platforms are evolving very rapidly, and mobile user requirements also changes quickly.  Mobile developers need a platform that can stay with the rapidly evolving (and fragmented) mobile operating systems, while adopt the application quickly to meet new mobile needs.  Good mobile applications are these that serve a specific purpose for mobile users, and developers need to be able to scale and quickly develop these special purposed mobile apps for the ever-demanding users.  

To that end, hybrid client appears to be a good strategic direction for an enterprise mobile application platform.

Please share your thoughts by commenting on this blogs or by emailing to me.  I'd like to hear what you think.

In the future articles, we will be exploring different aspects of the mobile client, technology, and development tools.  

Thanks,

Joe Huang
Comments:

Hi Joe,

thanks for the nice overview!

The Android OS is slowly but surely taking over, thanks to it's openess and standard-based approach.
In what extense will ADF Mobile support development of Android apps in the future?

Thanks,
Sven

Posted by guest on October 12, 2011 at 08:31 PM PDT #

I am looking for about the direction of OBIEE and how to show reports on portable Android based mobile devices.
Is ADF Mobile support Android ?

Thanks
Bikash

Posted by guest on November 07, 2011 at 08:57 PM PST #

nice article posted thank u!

Posted by guest on January 19, 2012 at 07:59 PM PST #

We have just release the new version of ADF Mobile that supports both iOS and Android. This addresses the previous comments.

Posted by Denis Tyrell on October 22, 2012 at 11:24 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed
About

This blog is is dedicated to tips and tricks for developing, integrating, securing, and managing mobile applications using Oracle Mobile Platform. It is created and maintained by the Mobile Suite/Oracle ADF Mobile product development team.

Archive of past entries

Even More Mobile Development Blogs

Oracle A-Team Site - Mobile Related Entries

Code samples from the Community

Fusion Middleware Blogs

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today