Unit 3
Unit 3
Application Design
DESIGN
Structure
3.0 Introduction
3.1 Objectives
3.2 Design Considerations and Best Practices
3.3 Checklist for Mobile Apps
3.4 User Interface Design for Mobile Apps
3.5 Deployment
3.6 Power Usage
3.7 Synchronization
3.8 Patterns and Design Elements
3.9 Security Standards and Best Practices
3.10 Mobile App Testing
3.11 Summary
3.12 Answers to Check Your Progress
3.13 Further Readings
3.0 INTRODUCTION
Designing an impactful mobile app involves various aspects. The designer
should consider various elements such as user interface, design best practices,
optimal integration methodologies, patterns, security, etc. Successful roll out of
a mobile app also involves effective testing and robust deployment practices.
In this chapter, we will look at key design best practices, deep dive of user
interface design, security aspects and testing elements of a mobile app.
We also provide a checklist for mobile apps and touch base upon power usage
and synchronization aspects of a mobile app.
3.1 OBJECTIVES
After going through this unit, you should be able to:
understand key design considerations and best practices of a mobile app,
know the anti-patterns of mobile app design,
deeper understanding of user interface design of mobile app,
know the deployment and power usage scenarios,
Know the security standards, and
Know various kinds of testing
33
Introduction to
Mobile Application 3.2 DESIGN CONSIDERATIONS AND BEST
Development
PRACTICES
The key design considerations for mobile applications are as follows:
Firstly, decide on the type of the mobile app – web, native or hybrid.
Design the mobile application considering various form factors, screen
sizes, orientations and resolutions. Test for all supported devices.
Design the code to use the device memory, battery and storage optimally.
Provide mobile friendly controls, navigation and touch enabled actions.
Provide support for multiple languages and font sizes.
Design fast, responsive and interactive page layouts.
The following are the key best practices for designing mobile applications:
Design applications to handle lost network using offline features.
Test the mobile applications for slow performance scenarios and handle
the transactions gracefully.
Use the least restrictive security model and provide permissions to the
mobile apps only when required and when it is permitted by the user.
Utilize notification features, events, messaging and progress bars
wherever necessary.
Mandatorily encrypt data during transmission.
Mobile app should leverage offline caching and local caching for rich and
interactive apps.
Given below are the user experience related best practices:
a) Provide visual feedback using progress bar or steps during
processing workflow steps.
b) Do not provide deep menus. Minimize the depth of menus. Keep
simple navigation and minimal page depth.
c) Provide intuitive UI which is self-explanatory and easy to use.
d) User should be able to reach the required information with minimal
clicks.
e) Use the points at http://www.w3.org/TR/mobile-bp/ as a checklist
for mobile web applications.
Given below is the checklist that can be used during mobile app development:
Ensure availability of controls and call to action buttons on all screens.
Ensure that app handles the crash in a graceful fashion.
Check for all validations (maximum length, type checking, minimum
length etc.) for all forms of input fields.
Ensure that all kinds of testing is completed to validate the conformance
to requirements.
Check for all alignment, resizing and behavior of UI elements on all
supported mobile platforms and browsers.
Ensure none of the links and screens are broken.
Ensure that there is no accidental information leakage during exceptions
and crashes.
Ensure that the mobile app is tested for all memory leaks and resource
releases once the applications is closed.
Is the application tested for resource overrun, peak load and other
scenarios that lead to app crash?
Does the app support multi-tasking and multiprocessing?
Given below are the checklist points from UI point of view:
o Does the app use standard colors (as per visual specs)?
o Is the font uniform across pages. Is all text properly aligned?
o Does text wrap properly around pictures/graphics?
o Is the error message text spelt correctly on this screen?
o Does Progress message appear on load of tabbed (active) screens?
Given below are the checklist points from usability stand point:
o Verify if the app behaves as desired if device is tilted
(portrait/landscape)
o Verify if the page navigation is smooth
o Verify if the font size and spacing ensures good readability
o Verify if the labels and buttons text are clear and concise on every
page
o Verify if the UI elements provide visual feedback when pressed
36
Persona analysis: Identify distinct user groups (personas), and map their Basics of Mobile
user journey, tasks, goals and needs. Application Design
During design we strive to create simple to use app user interface that enhances
various touch points of user journey. Main activities in this phase are given
below:
Wireframe design: We create low-fidelity wireframes (such as sketches,
videos) based on journey and persona analysis
Prototype: Mockups and prototypes are developed to get user feedback.
HTML and JavaScript will be used to develop interactive prototypes.
Prototype will be tested with stakeholders and users.
Visual design: Develop the specifications for UI elements such as page
layout, fonts, images, buttons, videos and provide design guidelines.
Design will be validated through eye-tracking tests.
Information architecture and navigation model will be defined in this
phase. Also, user navigation journey will be defined for various user
personas.
All personalization and contextual features related to mobile app will be
designed.
37
Introduction to
Mobile Application
Development
3.5 DEPLOYMENT
Figure 3.3 shows end to end steps involved in the lifecycle of a mobile app
deployment.
Native App Design: During this phase, we will design the user
experiences, information architecture needed for the mobile app. The
end-to-end architecture and detailed design would be carried out for the
mobile app. Other key deliverable, in this phase are wireframes, visual
design, and HTML prototypes.
Native app development: In this phase, we will follow all the specified
design guidelines to develop the native mobile app for the specific
platform. Wherever needed we will also develop proxy layer for
interaction with other systems and services. The developed app will be
tested on various emulators.
Mobile app validation: Various forms of testing such as device testing,
integration testing, system testing, security testing, regression testing and
NFR (Non-Functional Requirements) testing would be carried out.
Mobile App release: After the testing is completed, mobile app shall be
deployed to the corresponding app store and support for future releases
shall commence.
3.7 SYNCHRONIZATION
Mobile apps use synchronization to sync app data with server to refresh the
data. A sample sync architecture for iOS mobile app is depicted in figure 3.4
39
Introduction to
Mobile Application
Development
The key steps in the sync process of iOS mobile app are as follows:
i) iOS Offline Mobile application will have two modes of data
synchronization:
a) Full Sync
• A full sync involves importing of all the objects. Hence, all the
objects in the local store will get refreshed
• Data initialization will happen using full sync upon logging in for
the first time
b) Delta Sync
• A delta sync will import only changes and does not import any
unchanged record
• Subsequent automatic or manual sync will fetch the data modified
after last sync date and time. Offline mobile application will take
care of keeping the last sync date on successful sync operation
ii) Data synchronization will happen in both directions from the offline
mobile app
• Inbound for incoming data
• Outbound for outgoing data
iii) Back end application will expose REST web services to perform Full
Sync or Delta Sync
iv) Offline Mobile application will invoke all the required REST web services
individually during full or delta sync. This will enable a feature in mobile
application of having options for sync of selected entities
40
v) OAuth (Open Authentication) authentication module will be used for Basics of Mobile
REST based web services. Application Design
44
3.10.7 Security Testing Basics of Mobile
Application Design
This includes testing various security scenarios of authentication,
authorization, authorized port access, checking user permissions check, etc.
We will also verify potential vulnerabilities such as SQL injection, input
validation, account lockout scenarios, session handling, communication, data
encryption, information leakage, etc.
In addition to the above mentioned tests, we would also conduct other tests
based on the application needs:
Installation testing to test the ease of installation on various platforms
Recovery testing to understand the ease with which the app recovers from
failure.
Battery consumption testing to test the usage of battery for extended
durations
Network testing to check the app behavior on various networks with
differing bandwidths.
Interruption testing to check the behavior of app during interrupts such as
incoming call, message, flash message, system events etc.
Compatibility testing is carried out mainly for mobile web apps to test the
experience and behavior on various devices and mobile platforms.
Localization testing to test the app behavior for various languages,
translation needs and cultural requirements.
45
Introduction to
Mobile Application 3.11 SUMMARY
Development
In this unit, we started discussing the key design considerations, anti-patterns
and best practices in mobile app design. We provided a checklist and then
provided deep dive concepts of user interface design for mobile apps. We also
looked at the power usage and synchronization aspects of mobile app design.
We then looked at various patterns, security standards and various forms of
mobile app testing.
46