X

The Mobile & Digital Assistant Blog covers the latest in mobile and conversational AI development and engagement

Comparing Mobile Application Client Architectures

Joe Huang
GTM and Outbound Product Management, Oracle Digital Assistant
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.   href="http://www.oracle.com/technetwork/java/javame/index.html">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.  

    src="//cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f4a5b21d-66fa-4885-92bf-c4e81c06d916/Image/b8984c8ac65eda095ad35b54807d2766/jornada.jpg">


    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
    clien
    t: 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 href="http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html">JavaServer
    Faces / href="http://myfaces.apache.org/trinidad/index.html">
    Trinidad/ href="http://www.oracle.com/technetwork/developer-tools/adf/overview/adf-mobile-096323.html">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 href="http://www.phonegap.com/">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 href="mailto:joe.huang@oracle.com">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</a

Join the discussion

Comments ( 5 )
  • guest Thursday, October 13, 2011

    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


  • guest Tuesday, November 8, 2011

    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


  • guest Friday, January 20, 2012

    nice article posted thank u!


  • Denis Tyrell Monday, October 22, 2012

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


  • guest Thursday, May 14, 2015

    Hi,

    Things have changed vastly now. What are your opinions.

    Kumar

    http://www.webprogr.com


Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.

Recent Content