Choosing the Right Technologies for Enterprise Mobile Development

In the last blog, we briefly looked at the different options for mobile application development. In this post, let’s explore the various technologies available for enterprise mobile application development.

First, I would like to highlight the reason behind this blog post: There are quite a few choices in mobile technologies available for enterprise mobile development. Some of the frameworks you tend to hear about these days are HTML5, PhoneGap, Appcelerator, native app, Sencha, jquery mobile, windows mango etc etc. Although, you can find plenty of postings which explain in detail the pros and cons of each technology, as an enterprise software company, if you were to ask which technology do I choose for mobile development going forward, the typical answer you tend to get is “it depends”. With the experience of having worked with multiple clients facing a similar situation, I have tried to chalk down a few questions and thoughts which will help you go down in the right direction towards selecting the right technology for your enterprise mobile development needs.

All of the mobile apps can be broadly categorized into the following. Here’s a brief recap:

  1. Native Apps – (Android, iOS, Black Berry SDK). Native apps are developed using the native SDK for each of the platforms. Native apps runs on the devices operating system and firmware. These type of apps provide the best performance and most access to devices features. After an application is developed, they can be monetized by putting it on the marketplace/appstores for distribution.Changes in the app require the app to be redownloaded from the appstores
  1. Web Apps (HTML5, JQuery Mobile, Sencha etc). A mobile web app (aka mobile RIA) runs inside the devices browser. The server provides the HTML/CSS/Javascript. Some device features are generally not accessible for a web app. Changes to the app are reflected in the next refresh of the browser. Monetization generally requires a previous or well established relationship with the customer
  1. Hybrid or Cross Platform (PhoneGap, Appcelerator, RhoMobile, MoSync etc). Developers typically write the application in a pre-defined set of languages (typically Javascript, HTML/CSS) and the framework will let the application run on a variety of platforms as a native app. In addition, many of these frameworks, provide additional wrappers or API’s to access native device features.

The following questions will help narrow down which of the above types of mobile apps would be most relevant:

  1. What type of application do I need to address the defined use cases?
  • If the use cases demand a high degree of interactivity and the user spends a lot of time (more than a few hours everyday) using the application or the application requires hardware integration like barcodes, card readers, native apps would be at the top of the list. However, many enterprise apps are just content applications, in which the user spends time reviewing/updating content downloaded from the back office with a lesser degree of interactivity. If this is the case, Mobile Web application would be the first choice.  Even if the requirements spill beyond to use other device features, this approach is still feasible since technologies like HTML5 is bridging the gap by making available use of native device features like GPS, canvas graphics, multimedia playback. The list of device features supported in mobile browsers is growing and features like image capture using camera, websockets etc are already there in some devices.
  1. Do I really need the ultimate user experience and the best performance possible on all the different platforms?
  • While this is the ideal solution available so far only on native apps, mobile web apps are catching up.  HTML5 now supports offline storage, multi-threading using Web Worker API’s making for much better user experience. Hybrid apps also offer the ability to leverage native widgets when absolutely  necessary.
  1. Can I afford to develop and maintain multiple code bases for different platforms and do I have the teams with the needed skillsets?
  • If your inclination is to go with the native apps, the other question to ask would be if you really want to develop and support native apps. If you are targeting multiple platforms, that would mean development, maintenance and support on multiple platforms.
  1. What’s my plan for monetization?
  • Monetization is easiest if you go the native app/hybrid approach, while if you already have an established customer base, it wouldn’t matter much for mobile web apps.
Table below summarizes the above points:
Performance Skills Native device feature access Ease of monetization Portability Cost
Native App Excellent High Excellent High Low High
Web App Good Medium Medium – Low Low High  Medium – Low
Cross Platform App Good-Fair Medium – High Medium – High High Medium Medium
Hopefully, answering the above questions, has provided a clearer picture as to the type of  technology needed. The next step is to explore the options within each:
Native App:  Android native app development requires expertise in Java and Android SDK, for iOS it is Objective C. As discussed earlier, you will have to develop, maintain and support for each of the targeted platforms. The cost factor is generally the highest with this option. If this is the option selected, but you don’t have the expertise in your organization, a company like InfoStretch can help – sorry hard to resist making that pitch. Seriously, we have a talented pool of experts in native app  and other options listed and will be glad to help.
Mobile Web App: If you do decide to go the route of Mobile Web Apps, there a number of choices. There are more than a dozen frameworks out there and it may be a mini project trying to decide which one to go to.  Most of these frameworks while useful, generally constrain the look and feel of the application and come with an overhead in terms of size, performance and extensibility. Developers need to spend additional time learning the ins and outs of these frameworks.  Consider going with a minimalist approach by leveraging HTML5 features like offline storage, geolocation api’s and building your own or using a light weight framework.  Having a good single page app architecture and using a light framework like backbone.js along with a suitable templating framework will provide you with flexibility and performance needed. The cost factor is much lower compared to a native app and applying techniques like progressive  enhancement  will make the reach of your application to the maximum number of devices.

Cross Platform App: If you like the features of native app like monetization, access to hardware but need the flexibility of mobile web app like a single codebase across multiple devices, a common skill set across platforms, then this approach would bring together those capabilities.  By using a tool like PhoneGap, you can have the cake and eat it too. An application can be developed as a mobile web app and in cases where a native application is needed, you can use this tool to package the application and distribute as a native app.   Using a tool like Appcelerator lets you come up with a single codebase having the native look and feel of the platform widgets. There are a dozen other frameworks in this space like MoSync, RhoMobile etc. but  , be aware that not all tools in this space are free. Generally, the cost for development  will fall in between native and mobile web app. However, if you end up developing custom plug ins to leverage native features, the cost and complexity will go up.

Summary

While native app has dominated the conversation the past few years and is still an excellent choice and sometimes the only choice for some enterprise requirements, mobile web apps especially using HTML5 features has gained momentum. If your analysis finds that you can address the requirements with either mobile web or native  approach, go with minimalist mobile web app and leverage a cross platform tool that lets you wrap it into a native application when needed. That way, you can have the cake and eat it too!

Interested in our Development Services?

+1 408-727-1100

By submitting this form, you agree that you have read and understand Infostretch’s Terms and Conditions. You can opt-out of communications at any time. We respect your privacy.

By submitting this form, you agree that you have read and understand Infostretch’s Terms and Conditions. You can opt-out of communications at any time. We respect your privacy.

Other stories you may enjoy...

Healthcare Apps and the Need for Security

One of the most exciting areas in tech right now promises to be “the most personal” ever. A key aspect of making wearable devices like the Apple Watch personal is through...

Developing an App for the 2020 General Election?

Here is a thought: With the UK General Election having just finished, could the next one in 2020 be the first to use a mobile app to allow people to vote? The polling...

Protecting Your Mobile Workforce

Best Practices and key technology consideration for traveler tracking solutions In an increasingly global economy, employee populations are becoming even more diverse and...