2. Chapter 3: 3CHEERSCABLE APP
• 3CheersCable is a leading cable entertainment company[Europe]
• The enterprise has decided to bring its TV channels onto its consumers’
mobile devices to extend the entertainment experience outside the set-top
box.
• That launch a native Android app – 3CheersCable app – that will
cater to the following use cases.
1. Authenticate consumers before they use the app.
2. Subscribe a set of channels.
3. View program schedules for each channel.
4. Share favorite shows with friends and family.
5. Watch live TV on the go.
6. Contact customer-care executives.
7. Persist user credentials and preferences.
3. To design and implement the 3CheersCable app can be logically
summed up into the following two layers:
• 1. The mobile app itself.
• 2. The backend enterprise application.
4. The mobile app comprises of six logical building blocks:
• 1. App user interface is the topmost layer intended for user
interaction.
• 2. App functionality is the “app logic” layer.
• 3. Native hardware access is the layer that enables mobile app to
access native device hardware such
• as accelerometer and camera.
• 4. Native data access is the layer that accesses app data residing
on the device.
• 5. Enterprise data access is the layer that enables remote data
access.
• 6. Native data storage is the layer that physically stores the app
data on the device
5.
6. • The enterprise data access layer of the mobile app sources the
required remote data from the service layer of the enterprise
application, as depicted in Fig. 3.1 (represented with a dotted
line).
• The data layer of enterprise application hosts the required data
entities such as
• Channel list and
• TV guide–related data.
• The business layer of the enterprise application actually hosts
the application logic to provide
• Channel list and
• TV guide,
which is further exposed by service layer to be consumed by
external systems (such as a mobile app in this case).
7. MOBILE APP DEVELOPMENT CHALLENGES
1. User experience–specific challenges
2. App functionality–specific challenges
3. Data-specific challenges
4. Platform-specific challenges
• User experience–specific challenges: User experience–specific challenges
primarily comprise the following four areas:
8. Short span of user focus: Mobile apps get very short span of time to make an
impression on the user.
Thus, it is important to structure the app in such a manner that the most
important things are the ones that
• The user gets to see, as soon as the app is launched.
• The learning curve of using an app must not be steep.
The more an app engages the user, the longer and better it would be used.
9. Native look and feel:
• Mobile users get used to the native look and feel of the platform
in the long run of its usage.
• An app developer needs to make sure that the look and feel of the
app should be consistent with that of the platform.
10. Responsiveness: Mobile devices provide the user the liberty to do
things on the go. Hence,
• The user expects mobile apps to be fast and responsive.
• The user should be able to perform desired operations in the app
within a short span of time.
• Complex operations should be divided into simple subtasks that
gets completed in short period of time.
• An app that keeps a user waiting would never be appreciated.
Thus, it is the developer’s responsibility to structure the app and
optimize the code for simple and fast operations.
11. Personalization: The app can be customized to suit individual users.
For example,
• The device location may be used to provide information that is
more relevant to the user location.
• It may also be a good idea to store username and password on
first login, and keep the user logged in for subsequent access.
• Storing user preferences and using them to personalize the app
would also delight the user
12. 2. App functionality–specific challenges:
App functionality–specific challenges typically include the following
two categories:
• Battery life and computational power
• Network access
Battery life and computational power
• The computational power of an average mobile device is less than a
modern personal computer or laptop.
• Battery life is yet another hardware constraint.
• Smartphones and tablets tend to consume more battery owing to
touchscreens, graphics, sensors, and multiple apps running together.
• The developer has to ascertain that app functionality does not
demand excessive computational power or battery life.
13. Network access:
• The advent of 3G and 4G mobile communication standards has
marked a phenomenal rise in data transfer speed limits.
• However, network reliability is a big problem.
• Apps should not make the user wait for too long while data is
being transferred across the network.
• Additionally, they may also have an offline mode in case of
unavailability of network.
14. 3. Data-specific challenges: There are mainly two types of data-
specific challenges:
• Security
• Privacy
Security: The ubiquity of mobile devices provides numerous
expediencies to the consumer, but also makes him or her vulnerable
to security threats.
• Mobile devices store valuable user information, which if
compromised may result in varying degree of losses to the user.
• Such loss may vary from an embarrassing social networking
update to transmission of confidential e-mails to unauthorized
recipients or even unauthorized monetary transactions.
• It is the developers’ responsibility to build apps that prevent
unauthorized access to any information.
15. 4. Platform-specific challenges: Platform-specific challenges primarily
include the following:
• Platform fragmentation
• Screen types
• Input mechanisms
Platform fragmentation: The mobile device market is highly competitive
with a variety of operating systems and platforms powering these devices.
The diverse offerings come as a blessing to the consumers who get a lot of
options to choose from. But this also poses a huge challenge for app
developers.
16. Screen types: Mobile devices come in a variety of screen sizes and
types.
• While Original Equipment Manufacturers (OEMs) strive
continuously to provide choices to the consumer, developers have
to make sure that their app works well on all targeted devices.
• Mobile devices in different price segments sport different screen
sizes, resolutions, pixel density, and display technologies.
• The onus lies on the developer to ensure that the app works
consistently across different devices.
• Besides this, developers also face the challenge of adapting the
app to change in device orientation.
• Some developers even go a step further, and exploit the change
in orientation to provide additional functionalities.
17. Input mechanisms: Mobile devices in today’s market come with
different input mechanisms such as
• Touch screens,
• QWERTY keyboard,
• trackballs and touchpads,
• and sensors
---To facilitate user input.
• Mobile devices could use one or more of these mechanisms to
capture user input.
• The app has to be designed in such a manner that it can be used
on any targeted device using any available mechanism for user
input.
18. TENETS OF A WINNING APP
Though the challenges for developing mobile apps are multifold, to create a
winning app we have to design
• It in such a way that it always enjoys advocacy from end users.
• This may be achieved by following five tenets, as proposed in Fig. 3.2.
• The app should be intimate, interactive, immediate, intelligent, and
insightful.
19.
20. • Intimacy element ensures the belongingness of user with the app.
• Interactivity element ensures cooperation of app with the user, and
delights the user on each interaction.
• Immediateness element ensures instant gratification to the user by
providing direct access to information required at that moment in
time.
• Intelligence element ensures pertinent inferences for the user, by
way of reasoning.
• Insightful element ensures appropriate suggestions for the user by
exhibiting relevant insights and perspectives in the app.
This brings us to the end of Part I of this book. Now, we will take a
deep dive into understanding the building blocks of a typical Android
app using 3CheersCable app as the reference application.