Enterprise Mobility is the ability of an enterprise to connect to people and control assets from any location. Enterprise mobility includes technologies like wireless networks, mobile applications, middleware, devices, and security and management software. It encompasses everything from the integration of cell phones into an enterprise system to vertically oriented solutions involving the quick delivery of productivity, enhancing information to people in the field, the factory, the warehouse, at cash registers and at patients' bedsides.
With Enterprise Mobility in hand, an organization can benefit from improved productivity, increased customer satisfaction, fastened communication and collaboration between employee, customer and supplier. The ability to work away from the office and on the move is a defining feature of modern business. No enterprise hoping to remain competitive can ignore the fact that people live in an increasingly mobile world. From the globetrotting CEO to the mobile field engineer, portable devices such as mobile phones, laptops and personal digital assistants (PDAs) have radically changed the way people work.
Enterprise Mobility will result in substantial increase in productivity; will provide access to business critical information. It is a way to cater to the workforce needs and wants to interact with customers, employees, information, assets and other businesses as and when it chooses.
Enterprise Mobility is gaining acceptance in Europe, US, Japan, etc.
Apart from basic email, contact and calendar services being mobilized earlier, the trend has been changed towards mobilizing enterprise assets like CRM, ERP, SCM, and BI etc. More than 80% of enterprises in the U.S., U.K., France and Germany surveyed by Gartner in 2010 have remote workers, totaling to 50 million mobile workers worldwide.
Enterprise Mobile Application Development comprises of three development approaches viz. Native Development, Cross Platform Development and Mobile Web Development. Native Development Approach contains mobile application development for a single platform like Android, iOS, Nokia Qt etc. and is characterized by full device integration and support. However, with multiple mobile platforms available today, it is not feasible for a SMB to host different teams for each mobile OS platform. Thus Cross Platform Development plays a significant role today, using which a developer could make application and cross compile it into several platform supported application. Mobile Web Application is characterized as an entry-level approach into an organization's mobility strategy with limitation of no offline access.
Examples for different development platforms are enlisted below:
Native Development: Android SDK, iOS SDK, Windows Phone 7, Nokia Qt SDK
Cross Platform Development: Rhomobile, Phonegap,Titanium Appcelerator
Mobile Web Development : HTML 5, Widgets, WebKit,Sencha Framework
Given three approaches for application development, it is entirely dependent upon project being developed and on developer's context. However an organization cannot overlook the benefits of developing natively, upon which it can achieve high performance delivering and bester integrating application to user's device.
Unlike Native Development Approach, Cross Platform and Mobile Web Development fail to encompass several vital features of independent development platforms like device's contact, camera or geo location access or leveraging each device's unique set of UI tools and widgets. They also suffer severe performance hit, unlike native development thus leading the organization's development approach compromised.
Using Native Development Approach, an organization can drive deep down to the thread level programming, capability to handle application life cycle activity, availability of local storage mechanism and several other benefits. In context to my project for developing, comparing and evaluating two android based development platforms, it is imperative that I will use native development approach which will offer me greater flexibility to serve the requirements and thorough device integration
In early start of year 2010, Google announced introduction of a DIY tool called Google AppInventor, using which users can create native android applications using Drag & Drop functionality. Based on Scratch (graphical programming construct of MIT Labs), Google AppInventor has become a Visual Basic of Android Development Platform.
Google AppInventor is poised to be the game turner in the mobile application development field with capabilities of leveraging enterprise development tools with its wide set of available components like Web Service Integration, local SQL Lite data storage, remote wipeout and locking etc..
The project is centric to evaluation of native application development method for android using Android SDK and Google AppInventor with the help of a case study based on enterprise level context. The sole purpose of comparing the application development using GAI and Android SDK is to evaluate the capability of Google AppInventor in developing mobile enterprise application. This will help mobile developer teams at Patni Computers to forecast the capability of GAI in making enterprise mobile application by leveraging Google AppInventor for fast paced development.
Google AppInventor not only helps developer to use visual programming style and drag-drop style but also helps to minimize time spent on learning each and every construct that native android SDK offers. The components available ease the effort of developing complex and feature rich application.
The effort while developing exactly same case study using native android SDK escalates exponentially, if the developer is naive in the field android mobile application development. It involves dealing with each and every aspect of the application being developed which was implicitly managed in GAI.
To develop the comparison between GAI and Android SDK, we have taken case study of Employee Directory which encapsulates every aspects of a typical mobile enterprise application like remote access using web service, offline mode, greater performance, security etc.
Employee Directory is an application being developed for the employees of Patni Computers, using which they can search for any internal personnel or group of employee in a Standard Business Unit, anywhere and whenever to eradicate manual storing of each contact of their required colleagues into their mobile's Phone Book and help them search the contact details of the required colleagues on the move. These will help not only easier search and find options to the employees but also render them helpful for not having to store huge amount of members and their contact details which are required only at given point of time, given the dynamic nature of an organization's work processes.
The user would be able to search for an employee in an organization with his name along with options to browse employee registry using SBU or Designation. Along with searching for an employee, a user can also call, email, SMS from within the application.
To understand vast numbers of employees in particular organization, a construct to store details of the employee recently searched and accessed via the app, in local MySQL Lite database for the ease of accessing quickly those who were queried recently and frequently.
Along with this, the project deliverable will also encompass a feature to users to update their mobile numbers (in case of changes), profile and other contact details which is a most commonly encountered situation in any enterprise today. Care would also be taken to synchronize changed or updated contact details of an employee into the locally stored Recent Logs Database of a user.
The purpose of the project is to find out if Google AppInventor can be used in enterprise development space to cater to mobility requirements of the organizations and represent the competitive and complex side of the mobile application development world.
The system will facilitate enterprise-wide employee registry which will enable to access to Enterprise Address Book
The system will enhance the mobility resource of the organization providing the mobile fleet of the organization an extra edge in the form of performance and accessibility.
Study Impact of Mobility on Business Processes
The propose system will also incorporate method for locking and wiping out data from unsecured mobile client and thus ensure security to the organization over Mobility issues
The System will also serve as medium to get the latest or updated changes in the contact information of an employee
The futuristic goals may encompass Enterprise Chat Service or IM client to facilitate live interaction between employees whenever and wherever.
Following are the deliverables at the completion of the project:
Comparative Evaluation of Android SDK and Google AppInventor as Mobile Enterprise Application Development Platform(MEAP)
PatniTacts(Employee Directory) Android Mobile Application using Google AppInventor
PatniTacts(Employee Directory) Mobile Application using Android SDK
RESTful Web service using Java JAX_RS Jersey framework, to serve to client mobile applications
The scope of our Project is bounded by developing a mobile enterprise app which encompasses the likely complexity associated with developing an actual hardcore enterprise app using two different technologies with one being sophisticated, user-friendly and easy-go development technique involving capability of developing mobile apps without getting into the know-how's and learning confusing programming concepts.
Following are the enlisted project objectives followed throughout the project duration:
A Android App having capabilities of retrieving, storing, updating Employee Contact Details via Remote Enterprise Server
It should consists of same level of complexities as of that associated in developing a Mobile Enterprise Application
Implementing Agile Software Development Methodology throughout the project process.
Comparing the differences in designing, developing, testing, and deploying the above described app using Google AppInventor and Standard Android Development Kit.
Evaluating the comparison between duos.
Documenting POCs for exploring the ability of AppInventor to create or extend its capabilities encountered while developing the described App.
Futuristic Scope and Increments possible to enrich AppInventor capabilities for replacing entirely ADK (making it obsolete) used in an IT organization today.
Generalize the Application at most as possible to connect to most of the web services or database like Sybase, Oracle DB2 or SQL connections, Google Spreadsheet to be able to deploy effectively to other organizations.
The Proposed System will virtualizes Enterprise-like Work Environment depicting same type of Database Semantics and Web Services which will help us to exploit the capabilities of Google AppInventor to its fullest, harnessing each and every possibility as maximally as possible. Hence, being the system evolved, we will not be connecting it to the existing organization's database engines.
With the help of this application, organizations can expect a return of several times their ongoing investment, depending on the size of the network or employees, the number of users in the directory, and the number of directories being integrated with the enterprise directory. Organizations can realize that return in cost savings in the millions of dollars, primarily in the areas of administration and support.
The effective result of this application would minimization of delay in communication setup between different members of the organization. Thus the intended system will benefit by increasing professional accessibility and responsiveness.
The mobile application development is often encountered with multiple occurrences of instances like rapidly emerging standards, volatile platforms, varied devices and inconsistent user interfaces and input technology. Thus developing mobile applications consists of several risky attributes of accessibility, security.
Also, it takes a great length of time to develop a reliable mobile solution, often developer creating multitudes of platform or device specific customizations and one-off solutions, resulting constant barrage of patches and updates which is difficult to handle in mobile paradigm.
Thus, to keep development cost down and ensure high quality application, we have approached iterative and incremental delivery methods to keep up with the rapid pace and constant change inherent in the Enterprise Mobility Industry.
Thus to keep up with requirements in phase, we have implemented Agile Methodology based Feature Based Development Strategy to design, build, test and document the development of the proposed project.
The project work is divided into different sprints each specifying development about each feature having the requirements, design, build and test phases in each of these.
Following are the primary requirements of the mobile application being developed:
Users are not required to stay connected to the network or cellular data network while they are accessing the Personnel Information and Contact Details.
Efforts to be taken to minimize dependency on the Data Network as low as possible because of the frequent and inconsistent network data availability.
A mechanism to store locally the contact details of those who were accessed previous and past times.
Advanced Search features which will enable users to search members by role or SBU or rather search every one of them in a particular SBU or role.
Users should also be able to update their contact information and profile information using the application which should be applied to the employee database or registry.
Design and Development
The designing and development of:
The various sprints of the project are:
Sprint 1: Login & Authentication
Sprint 2: Query Module
Sprint 3: Advanced Query Module
Sprint 4: Result Screen Module
Sprint 5: Recent Logs Module
Sprint 6: Profile
The Database engine implemented here in will be MySQL 5.0 Engine based on PHPMyAdmin GUI tool. The Database will be situated at remote server at domain patni.tk
The Web Service would be based on PHP Script which will implement a unique API Key which will protect it from being exploited from external world. The Web Service will consist of several POST variables as required while designing different sprints.
Backend HR Admin:
To replicate the functionalities of PeopleSoft Admin Module and to provide employees a facility to change, add, delete their profile. HR Admins will also be provided a feature to moderate and mark the employees who have left the organizations.
To demonstrate these functionalities, we have used Joomla CMS to instantly develop a portal for above activities.
User Interface of the application will feel same as that of, when a user runs a native android application, with same UI elements.
Web Interface will be using Joomla Front-End Website for administrative works and for employees to modify, add or delete functionalities.
Internal Unit Testing: Testing of the different module login, query, profile etc. independently.
Integration Testing: Testing of the compatibility of different module working properly when integrated together like login module registering the sessions and redirecting it to the query module.
System Testing: Testing of the whole system from the user logging into the application to user logging out of the application after all modules of the system integrated.
User Accepted Testing (UAT): Testing of the whole project after completion and integration of the units together as accepted by the user.
Herein, the developed app will be signed and submitted to the android marketplace for review and posting the app to the Android Market.
Further, if any updates, then it will update Over the Air using Android Market.
The first two week on joining the company was utilized in understanding the Enterprise Mobility Standpoint, Ramp Study, Knowledge Transition and Induction Process. Considerable time of which was also spent on learning JAVA programming language following with Lab Works and Assignments which was pre-requisite beginning with Android Software Development Kit.
Thereafter, a week was dedicated to the study of Different Mobile Application Platforms (MEAPs) and learning tutorials to start up with the Google AppInventor Application Development.
The Following chart depicts the schedule for developing the application for Employee Directory using Google AppInventor:
Underneath charts shows the schedule for Second Phase viz., Native development using Android Software Development Kit:
The Remaining Time period will be utilized while evaluating and comparing development using Google AppInventor and Android Software Development Kit. Much of it will also be spent in enhancing the application to include more features viz., Enterprise Messenger Services and Email.
A generous amount of time will also be required to be bestowed upon refinements of the Application to make it more static and reliable.