Which Architecture Prevails for Mobile Application Development?

Selecting the perfect application architecture for your next enterprise application depends on a variety of factors, including user experience, integration, and speed. In this blog post, I explain which application architecture to consider for consumer vs. enterprise apps.

Mobile application development poses many challenges such as usability, security, integration, connectivity and speed. Rapid development of these complex applications, if not carefully executed, can quickly lead into major support issues. Demand for mobile applications has quickly grown due to rapid adoption of mobility over the past few years. By the end of 2017, business demand for enterprise mobile applications will grow at least five times faster than internal IT organization’s capacity to deliver them, according to Gartner. They recommended several best practices to overcome these challenges.

A key best practice in Gartner’s list is the usage of rapid mobile application development tools. Various platform options are available for developing applications targeted for iOS, Android and Windows mobile devices. Mobile applications are classified into different types based on the mobile development architecture employed to create them.

The first step in selecting mobile development technology/tool set is to decide the mobile application architecture to be used. User experience can vary based on the application architecture used.

Here is a consolidated view of different mobile application architectures. For the purposes of this post I have considered only downloadable applications which are installed and run directly from the mobile device. Mobile web applications that run from a mobile browser have not been included in this analysis.

Native Application Architecture – Platform Specific

Written specifically for each target platform using programming languages/tools specific to that platform these mobile applications allow full usage of the device specific features. A Native iOS application is developed using Objective-C and runs only on iOS devices, whereas, a native Android application is developed using Android Studio in Java and runs only on Android devices.

Here are some pros and cons on platform specific native application development:

  • Full access to device features
  • Rich user experience
  • Fluid animations and heavy graphics
  • Can quickly take advantage of OS updates
  • Longer development timeline
  • Higher maintenance and upgrade cost
  • Higher resource costs due to various skillsets needed

Native Application Architecture – Code Shared

Developed using a common programming language across all target platforms, these mobile applications share some of the code. For example Xamarin platform enables mobile developers to use C# programming language to develop native applications targeted to run on iOS, Android or Windows mobile devices. The user interface in this approach still has to be developed separately for each target platform requiring a separate body of code for each platform type. Some code duplication can be avoided in this approach by building common business logic.

Here are some key considerations on code shared native application development:

  • Common business logic
  • Native compilation for each target platform
  • Full access to device features
  • Code duplication can be avoided up to 70%
  • Longer development timeline
  • Higher maintenance and upgrade cost

Hybrid Application Architecture

Hybrid mobile applications are developed using standard web technologies and then packaged into a fully native application. Once packaged this application can be downloaded onto the device and function very similar to a native application. Apache Cordova is the most commonly used mobile development framework that provides the wrapper required for hybrid mobile applications to access device functionality. A major advantage of this approach is that there is one single code base from which it is possible to produce several versions of your application for each target mobile platform.

Here are some key considerations on hybrid mobile application development:

  • Built using standard web technologies
  • Device agnostic client development
  • Access to common device features
  • Pre-built integrations with web services, data sources
  • Rapid application development
  • Low cost of total ownership
  • Limited access to advanced device features
  • UI not specific to a device type

Bottom Line & Recommendations

Platform specific native application architecture is best suited for consumer applications and games that need to attract customers with rich UI, heavy graphics and animations and other device specific features. Code shared native application architecture in theory can achieve all the benefits of platform specific architecture with the additional advantage of needing a single skill set to develop. Hybrid architecture is best suited for enterprise applications that do not need rich UI, heavy graphics and animations.

Many employees access business applications from their mobile device outside the office. Organizations are moving away from locked down corporate devices to more dynamic BOYD (bring your own device) type models. This trend poses several challenges to Enterprise Mobility Management including the need for applications to be supported on multiple platforms. Given the increasing need of supporting business applications on employee owned devices and complex integration requirements, Hybrid application architecture is best suited for most organizations.

There’s more to explore at Smartbridge.com!

Sign up to be notified when we publish articles, news, videos and more!