You are on page 1of 8

Android Application Case Study

Simple App, Sophisticated Effort

Enter

What does it take to build a mobile app?


It requires a team effort encompassing more than developers.

To create a simple, straightforward mobile appone that can not only be easily understood, but makes the user productive when theyre beyond the boundaries of traditional IT assistanceis anything but simple. It actually requires a large body of experience, along with a structured development process for success. Accenture Mobility Services has developed that experience in order to assist its clients in creating mobile apps more quickly, effectively, and reliably. Its experience covers the complete mobile stack, from low-level operating system enhancements to application design, development, and deployment. Accenture Mobility Services has already developed and delivered a broad range of mobile applications for clients across a range of industries. To show how Accenture Mobility Services supports mobile app development, this case study focuses on how it created an Android app (though its expertise spans all mobile platforms) for the firms own internal usage. The goal was simple: create an app for tracking expenses for highly mobile employees so that they could quickly and accurately compile and submit their travel costs.

Previous | Next

Simplifying the Road Warriors Travels


The challenge for Accenture is remarkably similar to that of any company with a large workforce, many of whom spend significant time outside the office meeting clients and partners.

Its goal had four parts. First, it needed to develop an app for expense management, one that would potentially serve its more than 246,000 employees, a high percentage of which travel on a regular basis. Thus, the Accenture MyExpenses Android app was built to: Allow Accenture staff to capture expenses on their Android devices, giving them a more immediate, convenient and portable method of recording their expenses. Provide a user experience tailored for mobile devices and, more specifically, for the Android platform (as opposed to a laptop). Deliver features that enhance the mobile experience, including the ability to work offline (especially useful while working abroad or on an airplane). Selectively synchronize specific expenses (such as those corresponding to a particular date, trip, or client). Provide a higher level of security; that is, it would have a login screen for the application, even if the device itself has password protection (see Graphic #1).

Incorporate a demo mode so that users could experiment with functionality without logging in. Second, because it accesses back-end enterprise financial systems, Accenture Mobility Services needed to ensure it used standard server-side APIs allowing it to exchange information properly, and that the app met all security requirements mandated by Accenture IT. Some corporate efforts focus more on the development of the app, while ignoring the importance of back-end integration. Third, Accenture Mobility Services used the Android compatibility library to help ensure that the application could make use of the latest Android features, but still maintain a single code base that can be used across all Android devices. Finally, Accenture Mobility Services published the application to Google Play, making it more convenient for Accenture employees to download.

Graphic #1: Users have to log into the application, even if theyve already logged into their mobile device.

Previous | Next

The Steps Involved


To achieve these goalsnot just with one app, but with all apps, whether developed for internal use or for external customersAccenture Mobility Services relies on a specific process.

The process incorporates reliable, repeatable steps that help ensure not only productivity for users, but for developers as well. Developers work on some of the steps in sequence, some in parallel. Heres the general order: Initial requirements capture and discussion. This step involves determining not only the scope of the app (i.e., the front end), but also how it will access data sources (i.e., the back-end servers). This requires a discussion regarding already available APIs and interface elements to help ensure consistency and compatibility, as well as to help avoid reinventing code. Initial code prototyping. Once developers have determined the scope of the application, they create a prototype of the appropriate code, accommodating front-end, back-end, and connectivity layers. The creation of each of these layers is decoupled to accommodate easily adding features in the future without affecting the other two layers. To handle data connectivity, developers incorporate a small Simple Object Access Protocol (SOAP) stack over HTTP that communicates with the .NETbased back-end services.

Interface design. The interface design is realized using Android user interface (UI) frameworks and concepts. In Android 3.0 (Honeycomb) a large number of new concepts were introduced to allow the creation of UI

tailored for tablet devices. These concepts are used, and the Android compatibility library enables this code to run on a much larger set of Android devices and have a much larger addressable market.
Same code, different layout

Graphic #2: Users can choose when to synchronize specific expenses.

List based Phone UI, custom view wheel on Tablet UI Tablet UI is made of 3 Fragments shown on screen at same time Same code, different layout 4

Previous | Next

In this case, interface refers not only to what the user sees, but the back-end communication. These design teams work in parallel initially. Depending on whether the target platform is a smartphone or a tablet, the interface designers use different Android elements. Certain application componentsfor example, the currency selector wheel, are only applicable to large screen devices; the handset version uses an alternative UI. Even though certain aspects of the UI are different, the app uses a common engine code that runs on every Android device using version 2.1 and above. App implementation. At this stage, the developers bring their work together to create the initial version of the app, working to ensure all the pieces of code communicate properly. The app has provision for offline data storage, using an SQLite Database engine. This is what enables users to input expenses when theyre offline and synchronize them later (see Graphic #2). The use of a local database engine also cuts down on the communication traffic with the remote server.

Also, using the Android Compatibility Library allows code to run on devices running an early version of the operating system, prior to 3.0. This allows the application to function on a much larger set of Android devices and have a much larger addressable market. Quality Assurance (QA). Because software development is part art and part science, there are always areas where either bugs or drawbacks pop up. Some companies try and save time by eliminating QA, but doing so leaves them open to criticism from users. However, this stage is especially important in mobile applications, which require higher levels of stability and usability. Accenture has established extensive QA techniques, including: Automated UI testing to help ensure that the app accommodates both tablet and mobile phone UIs, and works smoothly with a variety of screen resolutions and localized language devices. Test against a replicated back-end server to help ensure the app interacts appropriately.

Built-in automated remote crash reporting, which aggregates crash information logs for investigation and remediation, through Accenture Remote Reporting Automated Solution for Android.

Previous | Next

Security review. Because protecting corporate data is crucialand in the case of Accenture MyExpenses, personal financial information was being transmittedsecurity is key for mobile apps. Accenture Mobility Services applies strong and tested encryption capabilities to its applications to help ensure security, leveraging the OpenSSL security stack available on the platform. The Accenture security team reviews all apps to help ensure the developers have followed best practices in defensive coding techniques. Beta trials. A select group of users offer feedback and suggestions, because a fruitful user experience is crucial for Accenture, as it is for most companies. The development team considers these and adjusts the app to accommodate those deemed most important. Accenture Mobility Services made the beta version of the application available to a selected user group both directly and via an internal, private, application store. Accenture Mobility Services tracked defects and usability issues and recorded them in an internal defect tracking tool to manage the lifecycle of these issues.

Upload to Google Play. Once uploaded, its available for Accenture users wherever they may be in the world, on a wide variety of Android devices (see Graphic #3). Feedback mechanism. Once the app is widely available, Accenture creates two kinds of feedback mechanisms. One tracks stability issues for the application, which can be transmitted back to Accenture IT only if the user allows it. The second is for users to offer suggestions about features they want to see added in future iterations. The latter mechanism also stores suggestions that were considered and delayed until an update is deployed.

Graphic #3: To accommodate international travel, the Accenture MyExpenses app accommodates different currencies.

Previous | Next

Conclusion
Creating an Android app like Accenture MyExpensesindeed, any mobile wireless app, whether for employees or consumersrequires an infrastructure beyond code.

The rules and the stakes are different when it comes to mobile applications, which by definition, are used beyond the traditional boundaries of IT. That means developing those apps require insights into user interface design and simplicity; into security; and into reliability, no matter who the target audience might be. The Accenture Mobility Services group brings those insights. It provides a wide range of experience, from consulting, software servicesapplications, software services devices and platforms, managed services, and business integration services. Accenture Mobility Services helps organizations seize business opportunities, whether they relate to business to employee (B2E), business to consumer (B2C), business to business (B2B) or machine to machine (M2M). While any corporate development team can develop those extensive capabilities, Accenture Mobility Services already has them, and is accelerating its knowledge into all of those key areas with a constant cycle of development and innovation. Its the difference between getting it done and getting it done right.

Previous | Next

About Accenture Mobility Services


Accenture is focused on enabling its clients to achieve breakthrough growth throughout the rapidly changing mobile ecosystem. Accenture Mobility Services offers five mobility services including consulting, software services applications, software services devices and platforms, managed services, and business integration services. These are designed to help organizations embrace business to employee (B2E), business to consumer (B2C), business to business (B2B) and machine to machine (M2M) business opportunities. Accenture offers mobility and embedded software services across a wide range of industries and platforms, including Android, Apple iOS, Blackberry, Linux, Meego, Symbian, Windows Phone and Windows 8.

About Accenture
Accenture is a global management consulting, technology services and outsourcing company, with more than 246,000 people serving clients in more than 120 countries. Combining unparalleled experience, comprehensive capabilities across all industries and business functions, and extensive research on the worlds most successful companies, Accenture collaborates with clients to help them become high-performance businesses and governments. The company generated net revenues of US$25.5 billion for the fiscal year ended Aug. 31, 2011. Its home page is www.accenture.com.

Contact Us
For more information about how Accenture can assist with positioning your organization as a mobile trendsetter, please contact: Johnathan White Android Technical Platform Lead johnathan.white@accenture.com Joe Odukoya Asset Product Marketing Manager joe.odukoya@accenture.com Karthik Srinivasa Product Manager, Mobile Applications karthik.srinivasa@accenture.com Or visit: www.accenture.com/mobility

myExpenses Application can be downloaded from Google Play https://play.google.com/store/apps/ details?id=com.accenture.android.myte.ui

For more information on Accenture Mobility Services please scan the 2D barcode.

Android is a trademark of Google Inc. Rights to trademarks referenced herein, other than Accenture trademarks, belong to their respective owners. We disclaim proprietary interest in the marks and names of others.

Copyright 2012 Accenture All rights reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.

12-0650 / 11-5077

Previous | Close

You might also like