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:
- 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
The following questions will help narrow down which of the above types of mobile apps would be most relevant:
- 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.
- 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.
- 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.
- 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.
|Performance||Skills||Native device feature access||Ease of monetization||Portability||Cost|
|Web App||Good||Medium||Medium – Low||Low||High||Medium – Low|
|Cross Platform App||Good-Fair||Medium – High||Medium – High||High||Medium||Medium|
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.
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!