Designing Mobile Solutions for the Enterprise

by | May 21, 2015 | Ascend Blog

Probably nothing in this blog is news to anyone. In fact, I plan to get a little techie. At this point, nearly everyone is reading this blog post through their smartphone or tablet. It’s weird that only 5 years ago, the idea of an iPad, while not too farfetched (face it, we survived using our Palm Pilots) was still out of our mental reach. Mobile applications enable businesses to increase productivity and mobility (shock!).

Today, enterprises and even small businesses find it difficult to survive without a mobile application presence. This is pretty much general knowledge / information. So how can an enterprise / business build an application? What are the major strategies, pros and cons to each strategy for developing a mobile application?

Currently there exists three types of mobile development strategies, each with their strengths and weaknesses. A company / enterprise may have a mobile presence either through a mobile website / accessible through a mobile browser, a dedicated or native application, and finally a hybrid application. Choosing one of these strategies will largely depend upon the target audience (the users) and the desired application functionality. The sections below are a breakdown of each of these mobile development strategies, the tools for each, and when they are best used. As a business owner, you need to be assured your application reaches the most users and directly or indirectly benefits your business.

Mobile Website / Accessible through a Mobile Browser:

The mobile website or application is accessible through the mobile browser in the mobile device. Generally, developers utilize a combination of front-end languages: HTML 5, JavaScript, and Cascading Style Sheets (CSS) in developing these types of applications. They must live on a server somewhere (much like a website).

Pros:

  • Require less time to develop overall.
  • Can be accessed on any mobile device through the mobile browser. Independent of the platform.
  • Updates can be pushed live to the application without requiring users to download an update to the application.

Cons:

  • Do not allow for access to a lot of mobile features, including:
    • Multi-Touch
    • Graphics
    • Accelerometer (the component built into your smartphone / tablet measuring tilt and motion, shaking, etc.)
    • Camera
    • Contacts
    • Local storage
    • Navigation
  • WIFI / Internet connectivity required (your application is acting as a thin-client accessing the application through the browser)
  • Screen sizes (JQuery libraries would have to be correctly implemented / configured allowing the application to properly fill the screen.

When to use:

  • Shopping / ecommerce websites
  • Static text websites
  • News sites

Dedicated / Native Application:

Native applications are apps which are developed using a dedicated programming language for a mobile device. Applications are distributed / purchased through an “App store”. Generally, developers use application programming languages such as the Android SDK and Java libraries (for Android), and Objective-C / X-Code for iOS based systems.

Applications built using either Objective-C or Java will only work on the device OS they were originally developed for, so an application based in Java could not be run in an iOS environment. Luckily, developers foresaw this problem occurring for native applications, and developed Cross-Platform mobile development tools. We’ll explore these more in the Hybrid development approach. When developing a native application, you will have to figure out how it can be built-out and accessed across multiple mobile devices.

Pros:

  • Native applications can access all aspects / features and make the best use of the mobile device (remember all those things above that the Mobile site couldn’t access? Well the native app can!)
  • Best performance wise. Processing is done using the mobile device hardware.
  • Can be accessed without WIFI / internet connection

Cons:

  • Takes a LONGGG time to develop a native application.
  • Requires a great deal of development resources / experience when compared to other development strategies
  • Native applications may be required to go through an app store and subject to constraints / approvals.

When to Use:

  • Intense processing applications (i.e. Games / dashboards)

The Hybrid:

A hybrid application is an application which contains the look and feel of the native application, but utilizes HTML 5, JavaScript and CSS libraries. This front-end code is wrapped in a framework (such as Apache Cordova). This allows the application to access features / functionality native to the mobile device. Recently, frameworks such as Unity3D (for gaming), Appcelerator (www.appcelerator.com) allow users to code in a variety of languages in order to achieve a mobile application usable under multiple OS’s, this allows users to develop native applications faster. So, why build the hybrid application?

Pros:

  • Make the best use of everything from Native applications.
  • Generally less time to develop than a Native app

Cons:

  • Performance: often times these apps suffer from performance and a great deal of time in development is spent optimizing performance on the mobile devices.
  • Must go through extensive testing to ensure screen sizes and functionality is maintained across multiple devices.

When to Use:

  • Pretty much anytime a Native application can be built

Conclusion:

Mobile applications can be built in a variety of different ways to fit the needs of the users and the business. How does your organization value mobility? What kind of mobile solutions have you built in the past?