accenture android application case study simple app sophisticated

8
Android Application Case Study Simple App, Sophisticated Effort

Upload: clinton-lefort

Post on 28-Nov-2015

26 views

Category:

Documents


3 download

DESCRIPTION

Android Security

TRANSCRIPT

Page 1: Accenture Android Application Case Study Simple App Sophisticated

Android Application Case StudySimple App, Sophisticated Effort

Page 2: Accenture Android Application Case Study Simple App Sophisticated

2Previous | Next

To create a simple, straightforward mobile app—one that can not only be easily understood, but makes the user productive when they’re beyond the boundaries of traditional IT assistance—is 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 firm’s 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.

What does it take to build a mobile app? It requires a team effort encompassing more than developers.

Page 3: Accenture Android Application Case Study Simple App Sophisticated

3Previous | Next

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:

•AllowAccenturestafftocaptureexpenseson their Android devices, giving them a more immediate, convenient and portable method of recording their expenses.

•Provideauserexperiencetailoredformobiledevices and, more specifically, for the Android platform (as opposed to a laptop).

•Deliverfeaturesthatenhancethemobileexperience, including the ability to work offline (especially useful while working abroad or on an airplane).

•Selectivelysynchronizespecificexpenses(such as those corresponding to a particular date, trip, or client).

•Provideahigherlevelofsecurity;thatis, it would have a login screen for the application, even if the device itself has password protection (see Graphic #1).

•Incorporatea“demomode”sothatuserscould 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.

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.

Simplifying the Road Warrior’s Travels

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

Page 4: Accenture Android Application Case Study Simple App Sophisticated

4Previous | Next

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

Same code, different layout

The process incorporates reliable, repeatable steps that help ensure not only productivity for users,butfordevelopersaswell.Developerswork on some of the steps in sequence, some in parallel. Here’s 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 .NET-based back-end services.

Interface design. The interface design is realizedusingAndroiduserinterface(UI)frameworks and concepts. In Android 3.0 (Honeycomb) a large number of new concepts wereintroducedtoallowthecreationofUI

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.

The Steps Involved

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

To achieve these goals—not just with one app, but with all apps, whether developed for internal use or for external customers—Accenture Mobility Services relies on a specific process.

Page 5: Accenture Android Application Case Study Simple App Sophisticated

5Previous | Next

In this case, interface refers not only to what the user sees, but the back-end communication. These design teams work in parallelinitially.Dependingonwhetherthetarget platform is a smartphone or a tablet, the interface designers use different Android elements. Certain application components—for example, the currency selector wheel, are only applicabletolargescreendevices;thehandsetversionusesanalternativeUI.EventhoughcertainaspectsoftheUIaredifferent,theappuses 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,usinganSQLiteDatabaseengine.Thisis what enables users to input expenses when they’reofflineandsynchronizethemlater(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:

•AutomatedUItestingtohelpensurethatthe app accommodates both tablet and mobilephoneUIs,andworkssmoothlywithavarietyofscreenresolutionsandlocalizedlanguage devices.

•Testagainstareplicatedback-endservertohelp ensure the app interacts appropriately.

•Built-inautomatedremotecrashreporting,which aggregates crash information logs for investigation and remediation, through Accenture Remote Reporting Automated Solution for Android.

Page 6: Accenture Android Application Case Study Simple App Sophisticated

6Previous | Next

Security review. Because protecting corporate data is crucial—and in the case of Accenture MyExpenses, personal financial information was being transmitted—security 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, it’s 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.

Page 7: Accenture Android Application Case Study Simple App Sophisticated

7Previous | Next

ConclusionCreating an Android app like Accenture MyExpenses—indeed, any mobile wireless app, whether for employees or consumers—requires 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 designandsimplicity;intosecurity;andintoreliability, 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 services—applications, software services—devices and platforms, managed services, and business integration services. Accenture MobilityServiceshelpsorganizationsseizebusiness 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. It’s the difference between getting it done and getting it done right.

Page 8: Accenture Android Application Case Study Simple App Sophisticated

Previous | Close

Copyright © 2012 Accenture All rights reserved.

Accenture, its logo, and HighPerformanceDelivered are trademarks of Accenture. 12-0650 / 11-5077

For more information on Accenture Mobility Servicespleasescanthe2Dbarcode.

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

About Accenture Mobility ServicesAccenture 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. Thesearedesignedtohelporganizationsembrace 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 AccentureAccenture 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 world’s most successful companies, Accenture collaborates with clients to help them become high-performance businesses and governments. The company generatednetrevenuesofUS$25.5billionfor the fiscal year ended Aug. 31, 2011.Its home page is www.accenture.com.

ContactUsFor more information about how Accenture canassistwithpositioningyourorganizationas a mobile trendsetter, please contact:

Johnathan White Android Technical Platform Lead [email protected]

Joe Odukoya Asset Product Marketing Manager [email protected]

Karthik Srinivasa Product Manager, Mobile Applications [email protected]

Or visit: www.accenture.com/mobility

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.