Unit 1 App
Unit 1 App
1
As we have witnessed a revolution in the consumer space toward mobility, most
analysts have identified that mobile devices are the major gateways to Internet as compared to
desktop browsers. Mobile device is replacing all traditional channels to access the information.
To align with this trend, enterprises too are designing the digital applications to cater to wide
array of mobile devices and platforms.
Mobile applications are part of main stream digital strategy for Business to
Consumer (B2C) enterprises. Most of the enterprises are now adopting “mobile-first” strategy
wherein the digital applications are designed, developed and tested for mobile devices; mobile
users attain the primary focus in the digital strategy. Disruption in mobility space has major
impact on the revenues for the enterprises. Mobile apps are shaping user experiences and are
providing real-time information and offer more engaging experiences for the users.
Mobility based digital strategy considers various things such as user experience,
performance, interactivity, device form factors, device limitations, location needs and
personalization.
3
Objectives
● Understand key concepts of mobile app development,
● Know the opportunities and challenges of mobile apps,
● Know the details of PC based apps as well as web based apps,
● Know the content and key protocols of mobile apps
● Know the evolution of mobile apps, and
● Comparison of mobile apps and web apps and upcoming trends in mobility space.
4
The main considerations for mobile app design are listed below:
Intended utility of the mobile app
o Consumer engagement with richer user experience
o Productivity through efficient flows
o Driving incremental revenue through user stickiness
o Customer conversion
o User loyalty through targeted and personalized offers
App Architecture
o Native vs hybrid vs web based on the requirements
o Middleware requirement for centralized configuration
o Offline vs online capability for storing data
App Development Principles
o User experience through richer controls and interactive components
o Compatibility on various devices and platforms
o Performance for each screen and task
o Security for data
o Productivity enhancement tools
Target users
o Consumers for B2C apps
o Business for Business to Business (B2B) apps
o Partners for B2B apps o Employees for Business to Employee (B2E) apps
Testing
o Device testing
o Performance testing
o Various testing scenarios
The main challenges in mobile app strategy are given below:
5
● Diversity of devices and heterogeneous technologies: There are various mobile
platforms and devices. The app should provide optimal experience in all the
scenarios.
● Security: Mobile app should ensure data security during transmission and during
storage.
● User experience: Mobile app should provide optimal user experience leveraging the
device capabilities to provide highest engagement possible.
● Network: Mobile app should be designed to work in regions with network, latency
and bandwidth challenges.
● Compliance to diverse standards, OS, mobile platforms and devices.
Personal Computer (PC) based applications are software programs developed to run on
specific operating system and hardware platforms. These were the pioneer applications that
were used during the initial days of software development. There are mainly two types of PC
based applications, namely, standalone PC applications and client server applications.
Standalone PC Applications
Standalone PC applications are independent software programs which would run on an
OS. These applications do not typically use network resources or support multi-user mode.
Utility programs such as word processor, calculators, and media players fall into this category.
Each of the applications had a good user interface for the PC user to interact.
Client server applications
In client server applications, each terminal PC had client software which is connected
to a centralized server software. The client program would get input from the end user and
would submit the details to the server software through a dedicated session established through
the network. These applications were also referred to as “thick clients”. Database software,
networked games, banking software, network file system are some of the examples of this
category of applications.
6
A web application (web app) is an application program that is stored on a remote server
and delivered over the internet through a browser interface. Web services are web apps by
definition and many, although not all, websites contain web apps.
Developers design web applications for a wide variety of uses and users, from an
organization to an individual for numerous reasons. Commonly used web applications can
include webmail, online calculators or e-commerce shops. While users can only access some
web apps by a specific browser, most are available no matter the browser.
Internet enabled applications that are mainly rendered on desktop browsers are
categorized as web applications. Most of the modern web applications follow layered Model-
View-Controller (MVC) architecture which supports loose coupling and flexible modular
components. A typical MVC based web application is depicted in the Figure.
7
Besides these layers we also have security components (responsible for
authentication and authorization) in security layer and utilities components to handle cross-
cutting concerns.
A complex n-tier enterprise web application is depicted in Figure. We could see
various layers for enterprise search, content management, ecommerce with various enterprise
interfaces.
PRESENTATION LAYER
This involves the presentation components like portlets and other user experience components.
Key components are explained below:
Personalization: Role-based access and other fine-grained access control to provide
personalized user experience.
Widgets: Wherever required jQuery based client-side widgets would be developed to
provide client-side functionalities. This would help enhance overall user experience and
improve the page performance. Real-time report data display/refresh, pagination, search
functionality are typical scenarios where this AJAX-based feature can be employed.
Multi-device support: Responsive design and device recognition features will be leveraged
to cater to various mobile devices.
Page layouts: Flexible page layout to cater to various web pages.
8
Information architecture and navigation models: This consists of context menus, bread
crumb, left navigation, site map, site hierarchy for the web site.
SECURITY LAYER
Security layer consists of modules related to authentication, authorization and single
sign on.
9
The core features of the various stages of mobile app evolution are detailed below:
Embedded systems: In this category, we has embedded systems such as calculators on
various devices. The embedded systems had limited functionality.
Device specific apps: The applications specific to the device are part of this category. For
instance, device specific games and other utility apps fall into this category.
OS specific apps: Operating system specific apps such as games, media players fall into
this category.
Cloud based apps: In this category, we have always available cloud based apps.
10
Criteria Web Application Mobile App
Web applications use limited Mobile apps provide intuitive
User intuitive amount of device features. features using device’s camera,
features sensors, GPS etc. and provide
notifications to users.
Web applications provide Mobile apps offer high level
Interactivity interactive interfaces through interactivity through touch
widgets. interface.
Web applications are normally Gaming, location-specific
used as Information display applications such as car rental
Applicability
platforms apps, store locator apps, reporting
apps.
Web applications offer Mobile apps provide high degree
personalization features through of personalization through various
Personalization
server side preferences. context parameters such as
location, history etc.
News, blogs. Games, social media and location
Common use cases
related services.
11
Technology Used: These apps are built using programming languages like Swift or
Objective-C for iOS and Java or Kotlin for Android. Some other programming languages
for native app development are C++, C#, Python,etc.
WEBAPPS
As the name suggests, Web Apps are applications that are hosted on the web and
12
do not require an installation to use it. They are built with web technologies in mind and
can be accessed across multiple platforms.
These apps behave and function similarly to the Native Apps; it’s just that they are
not stand alone applications.
Technology Used: The most common and popular language for web app technology is
JavaScript. Some other programming languages are CSS, HTML5, Ruby,etc.
Features of Web Apps
● Cross-Plat form Compatibility:Web applications can be easily accessed through
different web browsers and operating systems. They ensure compatibility across
various platforms and devices.
● Integration Features:Web apps have the ability to integrate with various third-
party apps and services. For example, you can seamlessly integrate Grammarly
with Google Docs.
● Easy Maintenance and Updates:Web applications can be updated and
maintained from a central location.They reduce the need for individual
installations or manual updates, making it easier to add new features and fixes.
● Scalability:These apps are designed to handle a large number of users and data
and are scalable to accommodate growing user demands without compromising
performance.
● Simple and Interactive User Interface:Webapplications provide a visually
appealing and interactive user interface. They allow users to easily navigate and
interact with the application’s features and functionalities.
13
• Easy maintenance
• Nostoragelimitations
• Reliescompletelyontheinternetconnection
• Highdevelopmentandmanagementcost
Examples:GoogleDocs,DropBox,Pinterest,etc.
HYBRID APPLICATION
Hybrid apps are a combination of both web and native apps. They are developed
using web technologies and then wrapped within a native container. These are basically
web apps that are designed to resemble and function similarly to native apps.
They mimic the appearance of native apps with features like a home screen app
icon, responsive design, and fast performance. However, it’s important to note that they
are still fundamentally web applications.
Technology Used: Hybrid apps combine web technologies with native APIs. They are
built using various tools and languages,such asHTML5,Ionic,Swift, Objective C, etc.
Features of Hybrid Applications:
● Native app-like performance: Hybrid applications leverage the power of native
device functionalities. This helps them to deliver high-performance experiences
similar to native apps.
● Cross-Platform Compatibility:Hybrid apps are designed to work seamlessly
across multiple platforms, such as iOS and Android, ensuring wider audience
reach.
● Scalability:Hybrid applications can quickly scale to accommodate a growing user
Base or increased demand, thanks tot heir ability to leverage both native and web
components.
● Access to device features:Similar to Native,hybrid applications can access a Wide
range of device features,such a scamer as,GPS,contacts,notifications,etc.
● Easy maintenance:As hybrid apps have a single code base,updates, and bug
fixes can be implemented once and deployed across platforms, simplifying
14
maintenance efforts.
Pros and Cons of Hybrid Applications
● Easytomaintainduetoasinglecodebase
● Cheaperandquickerto build
● Lesscustomization
● Complexdebuggingprocess
Examples:SoundCloud,Evernote,Gmail,AmazonAppStore,etc.
19
● Flashlight
● Calendars
3. LifestyleApps
In recent years, there has been a significant rise int he popularity of life style apps.
These apps are designed to enhance and facilitate various aspects of your life.
They encompass a wide range of mobile applications that cater to different areas of your
life, such as:
● Fitness-Fitbit, GoogleFit
● Dating-Tinder, Bumble
● Food-Zomato, Swiggy
● Shopping-Amazon, eBay
4. Productivity Apps
Productivity apps aim to boost efficiency and organization, helping you to manage
your work and personal tasks effectively. These apps are often provided by large
organizations to help you with your day-to-day professional work.
20
● Ever note
● ZohoDocs
5. Gaming & Entertainment
This is a huge industry with a lot of competition .From casual games to immersive
role-playing games and streaming entertainment on the go, gaming and entertainment
apps have taken their place strongly.
6. News
Mobileapps dedicated to news keep us informed about the latest happenings in the world.
They offer personalized news feeds, breaking news alerts, and multimedia content.These
apps ensure that we stay up dated and well-informed.
21
● AajTak
● BuzzFeed
● Feedly
● Inshorts
X. COMPARE TYPES OF MOBILE APPLICATION IN DETAIL
Mobile
Native Hybrid Web ProgressiveWeb
Application
Development
Technology Swift, Java,Kotlin, etc. HTML5,Ionic, CSS,HTML5,Ruby CSS,HTML,
Used Swift, etc. ,etc Web Assembly, etc.
Updates Automatic or
Manual Manual Automatic Automatic
PokeMonGo, Evernote,Gmail, GoogleDocs, StarBucks,
Examples Instagram, Spotify, etc. AmazonApp DropBox, Soundslice,
Store,etc. Drive,etc. MakeMyTrip,etc.
22
Understanding Responsive Web Design
Responsive Web design is the approach that suggests that design and development
should respond to the user’s behavior and environment based on screen size, platform and
orientation. The practice consists of a mix of flexible grids and layouts, images and an
intelligent use of CSS media queries. As the user switches from their laptop to iPad, the website
should automatically switch to accommodate for resolution, image size and scripting
abilities.With more devices come varying screen resolutions, definitions and orientations. New
devices with new screen sizes are being developed every day, and each of these devices may
be able to handle variations in size, functionality and even color. Some are in landscape, others
in portrait, still others even completely square. As we know from the rising popularity of the
iPhone, iPad and advanced smartphones, many new devices are able to switch from portrait to
landscape at the user’s whim. How is one to design for these situations? Refer to Figure
2
23
the website they’re visiting to know that they’re using a tablet vs. a PC. They expect the site to
adjust to them—not the other way around.Different devices also come with different
expectations in terms of usability. For example, the Apple iPhone has “trained” people to
expect to be able to swipe left/right/up/down. People visiting a website from a smartphone
expect to be able to click a phone number and have their phone give them the option of auto-
dialing that number. Similarly, they expect an address to have a “click for directions” option
that uses their phone’s GPS. A site that is responsive takes all of this into account and
automatically adjust to provide visitors with the best possible user experience regardless of the
device being used to access the site.
How does responsive web design work?
Responsive web design works through Cascading Style Sheets (CSS), using
various settings to serve different style properties depending on the screen size, orientation,
resolution, color capability, and other characteristics of the user’s device. A few examples of
CSS properties related to responsive web design include the viewport and media queries.
How to check if a website is responsive?
You can quickly see if a website is responsive or not in your web browser.
1. Open Google Chrome
2. Go to your website
3. Press Ctrl + Shift + I to open Chrome DevTools
4. Press Ctrl + Shift + M to toggle the device toolbar
5. View your page from a mobile, tablet, or desktop perspective
You can also use a free tool, like Google’s Mobile-Friendly Test, to see if pages on
your website are mobile-friendly. While you can achieve mobile-friendliness with other design
approaches, such as adaptive design, responsive web design is the most common because of its
advantages.
Pros of Responsive Web Design
There are many advantages(Figure 3) of RWD:
1. User experience friendly: Responsive web design is specially designed to respond according
to customer’s or user’s behaviors and their needs, according to screen size, etc. It is used to
create a website that adjusts smoothly to different screen sizes especially for mobile viewing.
Therefore, it increases reach to customers and users on small devices like mobiles, tablets, etc.
2. Save cost on responsive web design development: Comparing with the development for
websites on PC, iPad, and mobile phone, the responsive design is more conducive to saving
design and development costs.In terms of design, it only needs to design two sets of design
24
renderings for the responsive web interface based on the PC, iPad, and mobile. From the
perspective of the front-end development, itonly needs to develop 3 different sets of CSS styles.
From the perspective of post-maintenance, there is no need to maintain PC interface, iPad
interface, and mobile interface.
3. SEO friendly: Responsive websites are generally responsible for ranking top at SEO (Search
Engine Optimization). On mobile devices or small devices, a responsive website loads much
faster as compared to a desktop or laptop. This automatically increases positive user experience
that in turn gives a higher ranking to the website on SEO.
4. Increase profit and sale: Responsive web design is easy to create and faster to implement.
This is because there is no requirement for another website for small devices. A responsive
website is specially designed to fit all screen sizes. Therefore, one can save time, effort,
maintenance costs and development cost associate with creating another website for small
devices. It generally increases user experience and reaches more audiences through small
devices. More will be an audience; more will be profit and sale.
5. Low maintenance: Responsive websites are designed to fit all screen sizes. There is no
change in content and other elements to fit on a different device. This website uses the same
content across all devices. There is only one website that fits all screen sizes so the cost of
maintaining two websites is also saved because maintaining a separate site for a small device
requires a lot of testing and support. Managing a single website requires less maintenance, less
cost, saves time, etc.
6. Easy to track users: Responsive websites take less time to load, saves time, money, save
development effort of creating another website for small devices. One can use this time and
effort to track their site visitors.
25
There are many disadvantages (Figure 4) of RWD:
1. Bad compatibility for the old version of IE browser:If your site users are mostly using the
old version of IE, it is not recommended to do responsive design. That’s a fatal problem for the
older version of IE browser (IE6, IE7, IE8).
2. Slow page loading: Though, responsive websites are easy to maintain, but it sometimes takes
a long time to load the page. It includes some high-resolution images and videos that sometimes
require a lot of time to load.
3. Navigation is tough: Responsive websites are specially designed to fit on small devices. But
maintaining the simplicity of large websites for small devices sometimes becomes difficult.
This is because small devices have less screen size and this turn make it more difficult to
navigate website through small devices.
4. Time-consuming development: Responsive websites are essential but take a lot of time in the
development process as compared to the development time of normal websites
26
The CSS classes in the examples could each be assigned to a div within a
page's HTML where the .left, .right, and .middle classes are enclosed within the .content class.
The content class could also be a assigned to a table and the other classes could be assigned to
table cells. The fixed width .content class does not require a defined width since it automatically
spans the width of the enclosed divs or table cells. So, a fluid layout is a type of webpage design
in which layout of the page resizes as the window size is changed. This is accomplished by
defining areas of the page using percentages instead of fixed pixel widths.In a fluid website
layout, also referred to as a liquid layout, the majority of the components inside have percentage
widths, and thus adjust to the user’s screen resolution.It is a layout in which the width of main
container is flexible(in percentage). Whatever the screen-size is, the layout will remain same.
Refer to Figure 5. The image in Figure 5 shows a fluid (liquid) website layout. While some
designers may give set widths to certain elements in fluid layouts, such as margins, the layout
in general uses percentage widths so that the view is adjusted for each user
27
Designers may not use fluid page designs for various reasons, but the layout’s
benefits are often overlooked. Below are pros and cons to think about when considering fluid
web page design.
Pros
1. Fluid web page design can be more user-friendly, because it adjusts to the user’s set up.
2. The amount of extra white space is similar between all browsers and screen resolutions,
which can be more visually appealing.
3. If designed well, a fluid layout can eliminate horizontal scroll bars in smaller screen
resolutions.
Cons
1. The designer has less control over what the user sees and may overlook problems because
the layout looks fine on their specific screen resolution.
2. Images, video and other types of content with set widths may need to be set at multiple
widths to accommodate different screen resolutions.
3. With incredibly large screen resolutions, a lack of content may create excess white space
that can diminish aesthetic appeal
Example:
STYLE
<!DOCTYPE html>
<htmllang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin:0;
box-sizing:border-box;
}
.container{
28
width:80%;
margin:auto;
}
header{
padding:10px;
background:aqua;
}
nav{
padding:10px;
background:gray;
}
main{
display:flex;
}
aside{
background:pink;
flex: 1 0 25%;
padding:10px;
}
section{
background:yellow;
flex: 1 0 75%;
padding:10px;
}
footer{
padding:10px;
background:#333;
color:#fff;
}
</style>
HTML
</head>
29
<body>
<div class="container">
<header>This is header</header>
<nav>navigation menu</nav>
<main>
<aside>this is left sidebar</aside>
<section>this is right section</section>
</main>
<footer>this is footer</footer>
</div>
</body>
</html>
30
The terms "fluid layout" and "responsive web design" are sometimes used
interchangeably, but they are two different things. A page created using responsive web design
includes CSS media queries, which load different styles depending on the width of the window
or the type of device used to access the page. Responsive web design requires more CSS (and
sometimes JavaScript) than a basic fluid layout, but it also provides more control over layout
of the page.
31