Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / All-Topics

Providing Mobile Support for Enterprise Applications

0.00/5 (No votes)
1 Mar 2015CPOL4 min read 4.4K  
Various ways to provide mobility support to existing applications

Introduction

Most of the applications in any organization that are already being used will need to be accessed from mobile devices. This tip focuses on different ways of providing mobility access to these applications.

Background

Organizations now a days want their applications which can be accessed on the move by their executives. The solution is simple, develop a mobile application which will allow the users to access the applications and keep going. But this introduces one more level of challenge - mobile PC comes in different platforms. Different OSes will require different programmers writing code for the respective OS. Also, many of these organizations already have software applications which are built at an enterprise level and would like to provide mobility support to these applications, hence this tip will focus on providing a solution for such issues.

Let’s Look At the Available Options

Mobility support for existing applications can be provided by adding a service layer wrapper to it which will handle the required operations that are needed for that application. Any new application that is being built will have to consider providing mobility support.

New applications or wrappers can be created based on SOA architecture wherein the core business logic of the application has to be kept in the middle tier (Service layer) which can also be called as engine. This piece of code should be isolated from the UI layer. Once the engine is ready, we then just have to build the UI for the application to perform the CURD operations. This is where we need to leverage the technology advantages that we have. We now have 3 options to provide mobile support:

  1. Develop Web based solution
  2. Develop platform specific solution
  3. Make a Hybrid solution which uses both Web and Platform specific features.

The first option is simple but comes with a caveat, web pages have to be designed differently for both mobile and desktop applications. Once the pages are designed for both the platforms, respective webpages need to be displayed when being requested from a PC or Mobile device. This can be achieved by querying the browser of its source and redirect it the appropriate web pages. Only added step is that we need to create web pages differently for mobile and desktop. But this is the easiest method to implement cross device functionality.

The second option is a bit more complicated and cumbersome, one needs to identify how many platforms an application needs to support and write codes for those many platforms. Here, some may argue that there are many tools available in the market which allow us to write code once and run it in different platforms. Well! Argument accepted, but here we are talking about enterprise level applications which will be mostly used within the organization but not for commercial use. The mentioned tools always come with cost and are not free. Also, there are added risks that some features won’t work as expected. This option can be considered it is required by an application to use some of the features of a local device to be used and these features in any way cannot be provided by the central application. In this case, the central application will only act as a data provider and nothing else. But even in this case, the SOA architecture of the application will help to push/pull the data into the central database.

The third option is to use the best of both worlds, but the challenge of both the options remains, the idea here would be to first identify which features we need to provide along with the feasibility and cost. Once listed down, look out ways to provide these features in a cost effective way using both Web and platform specific features. This option needs to be well thought out, acutely studied and detailed analysis should be done before implementing.

Any of the above three options can be used after analysing the requirement, budget, availability of resources and any other specific constraint. Once things are clear, it will be easy to choose an appropriate option. If the target application’s core functionality only involves providing CRUD operations, then web based development can be one of the best options.

Points of Interest

UI Layout for mobile is really very different from that of desktop & browser based applications. If a web developer has to develop application for mobile devices, they will have also start designing how the UI should be and how the fields should be laid out. Selected design should ensure that the end user should be comfortable using the applications. As most enterprise applications have a lot of fields for data entry, this part can really be tricky and challenging.

Please do share any kind of feedback on this tip.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)