Android Application Case Study

quaintmayoMobile - Wireless

Dec 10, 2013 (4 years and 7 months ago)


Android Application
Case Study
Simple App, Sophisticated Effort
Previous | 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.
Previous | 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:
• 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
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
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.
Previous | 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, but for developers as well. Developers
work 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
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.
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.
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 components—for
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
they’re 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,
• 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 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.
Previous | Next
Creating 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
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
services—applications, 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. It’s
the difference between getting it done and
getting it done right.
Previous | Close
Copyright © 2012 Accenture
All rights reserved.
Accenture, its logo, and
High Performance Delivered
are trademarks of Accenture.12-0650 / 11-5077
For more information on Accenture Mobility
Services please scan the 2D barcode.
myExpenses Application can be downloaded
from Google Play
About Accenture Mobility
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 world’s 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
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
Joe Odukoya
Asset Product Marketing Manager
Karthik Srinivasa
Product Manager, Mobile Applications
Or visit:
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.