You are on page 1of 71

DFP6223 MOBILE

APPLICATION
DEVELOPMENT
TOPIC 1

INTRODUCTION TO MOBILE WEB PLATFORM

LEARNING OUTCOMES
1.

Understand Mobility and Android

2.

Discuss Application Design Issues and Considerations

3.

Discuss Monetizing Application

ABOUT MOBILE?

CURRENT TRENDS IN MOBILE


COMMUNICATIONS TECHNOLOGY &
SYSTEMS
1) CLOUD COMPUTING

The cloud in cloud


computing can be
defined as the set of
hardware, networks,
storage, services and
interfaces that combine
to deliver aspects of
computing as a service.

CURRENT TRENDS IN MOBILE


COMMUNICATIONS TECHNOLOGY &
SYSTEMS
2) LONG TERM EVOLUTION (LTE)
Telecommunication

Standard forwirelesscommunication of highspeed data for mobile phones and data


terminals.

Current trends in mobile communications


technology & systems
3) SMARTPHONE

A Smartphone is a mobile phone built on a mobile


operating system, with more advanced computing
capability and connectivity than a feature phone.

Five Fantastic Advances in Smartphone Technology

Flexible Screens

Waterproof Phone

Double Screens

1080p Display HD Resolution

Phone to TV Application

DESKTOP AND MOBILE APPLICATIONS


DESKTOP APPLICATION
An application that runs stand alone in a desktop or laptop

computer.
DesktopDeploy an application for a desktop computer, such as a
Windows computer or Macintosh.

MOBILE APPLICATION
Mobile App is an application delivered to users from a web

server like the Internet / downloaded from apps store.


MobileDeploy an application for a mobile device, such as a
phone or a tablet.

Differences

Desktop App

1)
Applications need to be
Accessibilit individually installed on
y
each computer

Mobile App
Applications can be
easily accessed from
any device or
location.

2) Security
risk

There are always risks involved when dealing with


working online

3) Cost

Based on client needs

4)
Most of desktop
Connectivit application did not need
y
an internet connection
5) Speed

Most of mobile
application must have
an internet
connection

Developed and brought to Mobile app


market faster
developers are
freelancers, and the
field is growing
rapidly

CLEAR EXAMPLE: DESKTOP VS


MOBILE APP
Exampl
e

Desktop

Web

Mobile

Mobile Web

Faceboo
k

None

Open through
browser on
computer
(Chrome, Safari,
FireFox, IE, etc)

Open through
icon downloaded
in Google Play,
iTunes, etc.

Open through
browser on
device at

Instant Retro
Photo, PicSay
(Android);
PicStitch, Be
Funky Photo
Editor (Apple)

Flickr, etc,
launched
through mobile
browser

Photo
Editing

iPhoto, Paint,
Microsoft
Office Picture
Manager

Sites like Flickr


and PicMonkey Launched by
computer

Solitaire

Comes stock
on Microsoft in
Accessories doesnt need
Internet

worldofsolitaire.co The Solitaire


m; games.com;
Games (Apple);
solitairecardgame.com
Solitaire Free
Pack (Android)

http://m.facebo
ok.com

worldofsolitair
e.com;
games.com;
Opened in
mobile
browser

BENEFITS OF MOBILE APPLICATION


Mobile Apps is a software applicationdesigned to

run onSmartphone,Tabletand otherMobile


devices.
Benefits;
i. Fast and easy to use
ii. Rich data capture in real time
iii. Volume of information - Custom branding
iv. Advertising - provide a form of advertising

that you can carry in your pocket


v. Reduce problem solving time
vi. Interactivity/Gaming

TOP APPLICATIONS FOR MOBILE PHONES


1)SOCIAL NETWORKING
Facebook, Twitter, WeChat
2)CLOUD STORAGE
Dropbox, Instagram
3)ENTERTAINMENT
YouTube, iPlayer Radio
4)GAMING
Angry birds, Asphalt 8, AirAttack, Subway Suffers
5)EDUCATION & BOOK
iBooks, MyKamus

MOBILITY AND ANDROID

INTRODUCTION
Mobile technology consists of:

Mobility is the ability to move or be moved freely and easily.

Mobile Platform
1. Mobile Platform referred to asmobile Operating

System, that operates


asmartphone,tablet,PDA, or othermobile
device.

EXAMPLE OF MOBILE DEVICES: SMARTPHONE

Samsung Galaxy S6

HTC One A9

Apple iPhone 6s

EXAMPLE OF MOBILE
DEVICES: TABLET

Apple ipad
Pro

Microsoft Surface Pro


4

Samsung tab
4

Mobile Platform

Mobile App Development Approaches

Mobile App Development


Mobile Device;

ANDROID

Android Platform
1. A software stack for mobile devices:
OS kernel
System libraries
Application frameworks
Key apps
2. Android SDK for creating apps
Libraries & development tools

Android Architecture

Android Architecture
1. Linux Kernel

Standard Services

Android Specific
2. Libraries
3. Android Runtime

Core Java Libraries

Dalvik Virtual Machine


4. Applications
5. Application Framework

Linux
Kernel

Libraries

Android Runtime

TYPICAL WORKFLOW
App written in Java

Compiled to Java ByteCode files

DX converts Java ByteCode files to a single


Dex ByteCode file (Classess.dex)

Dalvik executed Dex ByteCode file

WHY DALVIK VIRTUAL


MACHINE?

Application Framework
1. Package Manager
2. Window Manager
3. View System
4. Resource Manager
5. Activity Manager
6. Content Providers
7. Location Manager
8. Notification Manager

1) Package Manager

2) Window Manager

3) View System

4) Resource Manager

String convert content based


on language setting

5) Activity Manager

6) Content Provider

7) Location Manager

8) Notification Manager

Applications

2) IOS PLATFORM

iOS (formerly known as iPhone OS) was released on June, 2007 by Apple Inc.
Below is the basic architecture of iOS:

The kernel in iOS is based on the same variant of the Mach kernel in Mac

OS X. On top of this kernel are layers of services that are used to


implement applications on the platform. These layers include the Core OS,
Core Services, Media services, and the Cocoa Touch layer.

1)

Core OS, Core Services: These provide fundamental low-level services


like file I/O and network sockets.

2)

Media: This layer provides services used to support 2D and 3D drawing,


as well as audio and video.

3)

Cocoa Touch: This layer provides the fundamental infrastructure used by


applications. Besides providing object-oriented programming support for
collections, file management and network operations, this layer also
provides access to the device users profile information, accelerometer,
and other hardware features.

3) WINDOWS PHONE 7
PLATFORM
Windows Phone 7 was launched in February, 2010 by Windows Inc.

it is Microsofts first mobile operating platform to focus on the consumer market instead of the

enterprise market

The architecture details of Window Phone 7 have not been released for the public by Microsoft yet.
Unique features:
1)

One significant distinguishing component of Windows Phone 7 is in the UI, dubbed the Metro UI
utilizing the Metro Design Language by Microsoft.

2)

The Metro UI utilizes simple, clean and modern as its design language, and revolves around
having easily accessible and glance-able information.

3)

Two concepts that Metro uses to achieve these goals are live tiles and hubs. Any application can
be pinned to Start as a live tile, and applications can choose to animate or update the live
tiles with key information pertaining to the app (e.g. the number of unread e-mails for an E-mail
app).

This allows the user to see at a glance at all times if there are items that are in need of his

attention.
The second are Hubs, of which functions of a similar nature are grouped together.
The People hub for example, not only acts as an address book across the users phone, mail,

exchange server accounts, but also integrates with Facebook and shows Facebook statuses and
updates for the users contacts.

MOBILE APP DEVELOPMENT


APPROACHES
Three types of approach:
1)

Native mobile app development

2)

Mobile web app development

3)

Hybrid app development

1) NATIVE MOBILE APP


DEVELOPMENT

Native mobile apps are developed using the native language of the mobile

operating platform.

These apps have access to all the device capabilities and functionalities as

they use the native SDK for the app development.

2) MOBILE WEB APP


DEVELOPMENT

Mobile web apps are developed using mobile web framework technologies like

HTML5, CSS3, and Java Scripts.

These Apps are executed on the Web servers and accessible via Mobile Web

browsers and are highly portable across multiple mobile platforms.

Despite the fact that some of the device specific functions and offline stores

can be accessed through HTML5, there are several constraints due to the
dependencies of the sandbox nature of specific platforms and the extent of
adoption of HTML5 specifications by native browser components that are still
evolving.

3) HYBRID APP DEVELOPMENT

As the name suggests, Hybrid app development platforms use combination of

both web based and native app development.

Applications are built using web technologies like HTML5, CSS3, and Java Scripts

and involve the native APIs for access to device specific capabilities.

These apps are resident on the devices as they are packaged within the browser

control of the platform and compiled using the native SDK.

This type of app provides better portability across platforms as compared to

native apps and they rely on the platform provider for hybrid platform
development.

Some of the hybrid platforms also provide flexibility to extend and customize the

platform by adding additional wrapper plug-ins so that the apps can leverage
plug-in extensions to access more specific native device capabilities to a limited
extent.

OVERALL COMPARISON OF
APPROACH

DESIGN ISSUES & CONSIDERATIONS

Design Issues
1. Operating system issues
2. Screen size and orientation issues
3. Connectivity issues
4. Battery issues
5. Hardware issues

APP DESIGN ISSUES


Designing for the specific device your app will run on is extremely important!.
Applications that work well on a traditional computer may be complete disasters if ported to a

mobile platform without redesigning the logic to fit the devices capabilities.

Additionally, the capabilities of the device enable you to design an application that can do

different things than an application on a traditional computer.

Apps are cheap and easy to obtain. If yours doesnt work well, there is likely to be an acceptable

alternative. A well-designed app can be a delight to use.

A poorly designed app will not be used for long, if at all.


Issues includes:
1)

Operating system design

2)

Screen Size and Orientation Issues

3)

Connectivity Issues

4)

Battery Issues

5)

Hardware Issues

1) OPERATING SYSTEM
DESIGN ISSUES

The primary technical difference between mobile device operating systems and

operating systems used on laptop and desktop computers is that the mobile
operating system is not a true multitasking system.

On mobile devices, only one app can be active at a time. When another app is

started, or the app is interrupted by another app (for example, a phone call), the
app thatwas running gets put in the background. It remains in the background
until the user specifically accesses it again. If it remains in the background too
long, or if available memory gets too low, the operating system may kill it.

This back-and-forth between different states is called the apps life cycle. Both

Android and iOS apps have a life cycle.

The life cycle is based on the users interaction with the app and the operating

systems need for memory and processing resources. As users interact with the
device, they may switch between apps or different views within a single app.

When this happens the app goes through different states, requiring the developer

to handle this switch so that users dont lose data or get unnecessarily
interrupted in the task they were performing

2) SCREEN SIZE AND ORIENTATION ISSUES

The mobile device has significantly less area to design the interaction that your users can

experience with your app.

Poor interface design is the easiest way to get bad reviews for your app. Mobile devices are

also used in different situations than traditional computing devices are. App users are often
multitasking (walking, talking with friends, and so on). The app design must allow users to
switch to your app and do what they want to do right away, before they are distracted again.
If users cant easily figure out how to use the app, no amount of help will satisfy them. This is
no different from traditional development. However, the very limited screen real estate makes
it a significant challenge. In addition, the focus among app developers has been on very good
user interface design, so the competition is fierce for apps that work really well.

In response to the limited screen size, both iOS and Android have the capability to scroll to

interface elements not on the screen. Scrolling can be both horizontal and vertical. However,
both scrolling capabilities should be used judiciously, especially horizontal scrolling.

Scrolling down a list has become a natural action on both traditional computers and mobile

devices. However, horizontal scrolling has not. Horizontal scrolling should be reserved for use
for elements that start on the main screen and extend off the screen. Users wont naturally
think to horizontally scroll to look for items they cant find on the main screen. Even vertical
scrolling should be limited. Lists are obvious choices for vertical scrolling, but other types of
interface elements should be limited. Additionally, when scrolling, you must also fix certain
elements so that the user can perform needed operations without scrolling back through the
entire contents of the screen.

3) CONNECTIVITY ISSUES
One of the most important aspects of mobile devices is that they are able to

communicate with other devices and the Internet. This enables the capability to
create very powerful and useful apps. However, this also poses design problems.
The devices capability to connect can be lost, or the connection speed may be very
slow.

Additionally, these problems can arise if the device moves even a few feet.

Compounding the problem is that users may not recognize or even understand that
there is a connectivity problem while they are using your app.

Apple requires that all apps submitted to the app store include a user warning when

the network connection is lost, but this doesnt address slow speeds, and is not
required by Android at all.

The primary issue that the app developer has to be concerned with is blocking the

user from working with your app. When the app gets or sends data, it can take a
significant amount of time. Users are unlikely to be happy waiting for this action to
complete before doing other tasks. This means you have to plan for uploading and
downloading data asynchronously, which means you have to make it run outside
the main thread of the app.

4) BATTERY ISSUES
They rely on batteries for their power, and batteries can be drained. Your job as

a developer is to not drain those batteries unnecessarily. This is not just a


courtesy issue. If every time your app is used the users device quickly becomes
a brick, it will be noticed. An app that quickly drains power will not get used, will
get bad reviews, and eventually will not get downloaded at all.

The primary power draw for devices is the display. You cannot do much about

that except to make sure that your code is efficient and doesnt take an
unnecessary amount of time to complete the work that the user wants to do.
Also, you should make sure that users can pick up where they left off if the app
is interrupted so the screen doesnt need to be on so long.

After the screen, the primary power drains are the sensors. Global Positioning

System (GPS), camera, communication, and other sensors are all big power
draws. Fortunately, it is within your power to control these things. You control
access to device hardware within your app and should turn on these capabilities
only just before the user needs them. You should also turn them off as soon as
the user completes the task that requires these items.

5) HARDWARE ISSUES
A very cool aspect of mobile computing is the set of hardware components available on the

device. Many devices have the capability to locate the device within a few meters using the
GPS, have sensors that can capture device orientation, have lights that can be turned on and
off, have cameras, and have other hardware components that allow the device to interact with
the environment.

The first issue to be aware of is availability of the component. Different manufacturers make

Android devices, and some include devices that others do not. iOS devices are generally more
homogeneous, but differences still exist. Because of this, it is very important to consider how
important the component is to the primary functionality of your app. For example, for a device
to get a GPS signal, the device has to have the capability to get the satellite signal required for
operation. If the user is indoors, the GPS may not work.

A second issue to be aware of is time delays. To access a hardware component you must use

the components Application Program Interface (API). The component may take some time to
turn on and respond with the information you need. If this delay is significant, it may impact
the user experience in such a way that your app is viewed negatively.

A final important issue with the use of hardware devices is accuracy. There are several aspects

of this issue. First, the accuracy of the component can differ among manufacturers. Consider
what the minimal level of accuracy is needed for effective use of your app, and design for
that.Be sure to give the user options if the required level of accuracy is not available. Second,
accuracy often takes time. For example, to find the location of the device within a few hundred
meters is often very quick.

DEVICE DIFFERENCES
Android devices (phones and tablets) and iOS phones and tablets each have a

unique set of hardware and software capabilities that make the way the user
interacts with the device different for each. Again, to fully capture the devices
capabilities and not degrade the user experience, you must design for those
unique characteristics.

Comparisons between:
1)

Android

2)

iOS

1) ANDROID

Android devices originally used four hardware buttons to support the users use

of the device. These buttons were the Home button, the Menu button, the
Search button, and the Back button.

However, more recent Android devices (running Android 3.0, API 11 and

greater) have replaced these buttons with virtual buttons at the bottom of the
screen and an action bar at the top of the screen.

2) IOS
The primary hardware button of concern on iOS devices is the Home button.

This button immediately moves any app presently running to the background.
The viewWillDisappear:, applicationWillResignActive:, and
applicationDidEnterBackground: methods will all be called. Plan your app so that
this action will not cause problems.

Both Android and iOS have a button that puts the device to sleep or reboots it.

This action also must be handled. Fortunately, the same methods that put the
app in the background for other actions are executed so, typically, no additional
programming is required to prepare for this.

ANDROID VS IOS VS WINDOW MOBILE

MONETIZING APPLICATIONS
&
INCOME POSSIBILITIES

Monetization
1. Paid application
2. Ad-supported applications
3. In-application purchases
4. Understanding the economics of

application stores

App Monetization is ability to


generate money

MONETIZATION STRATEGIES
App developers create programs for a variety of reasons community service, agenda-

advancement, love of technology. But for most, the motivation behind the release of an app is
the same as the majority of publicly-available products: to make money.

But where creators of tangible products follow for the most part traditional paths of

revenue generation, app entrepreneurs often have to be a little more creative to claim big pay
days.

Less than a decade after the explosion of themobile app marketplace, a small number of

monetization methods have emergedas the strategies most likely to achieve success among
consumers.

Type of strategies:
1)

In-app Advertising

2)

Freemium

3)

In-app purchases

4)

Paid application

5)

Subscription

1) IN-APP ADVERTISING
In-app ads are perhaps the most popular, as well as the fastest-growing, of the free-to-download

monetization strategies. The most common in-app ads are usually simple banner ads that live on
the bottom or the top of the users screen during their app experience. As the app monetization
industry matures, more engaging and visually appealing ads are appearing on users phones
ranging from full-screen ads to native ads to video ads.

Even though it seems easy, it is very important for developers to strike a balance when using in-

app advertising. Too many advertisements can annoy users, especially if the ads unnecessarily
interrupt their app experience. Too little advertisements will not make the developer any money.

In-app ads would work best for your app if:


1)

You dont want to worry about collecting money directly from users.

2)

In-app purchases will not fit naturally into your app

3)

You collect/are willing to collect basic demographic data about your users

4)

You have a high amount of users, your users start new app sessions frequently, or your users
have long app sessions.

2) FREEMIUM
Another popular strategy, freemium apps are offered as free-to-download but the user has the

option to pay money to unlock new features once they have used the app for a while. Some apps
which have a freemium strategy also combine it with in-app advertising. The free version of the
app is ad-supported, but the user can then pay a small price to get rid of the ads.

Freemium apps are popular because it lets the user test the app before deciding if they want to

purchase. The problem with freemium apps, however, is that some developers do not put enough
features into the free version of the app. A lack of features in the free version will discourage users
from paying later. Devs really have to walk the line between offering enough features to get users
engaged and making sure the freemium-level features are exciting enough to get users to pay.

Freemium would work best for your app if:


1)

You would like a little extra revenue on top of in-app ads

2)

You have a gaming app

3)

Your freemium features will provide real value to the user

4)

You have a strong, free-to-play version as a base

5)

You have a high amount of users or long app sessions

3) IN-APP PURCHASES

Not to be confused with Freemium, apps with in-app purchases give their users the

opportunity to spend money on real-world or virtual goods. Offering real-world (physical)


goods is mostly limited to retail or services app, but non-retail apps can choose to offer
virtual goods which the user can then use freely within the app itself. These virtual goods
usually take the form of credits, in-app currency, or fun accessories or add-ons.

In-app purchases are a strong and stable monetization strategy, but there are some

drawbacks. First, most of your users will not make an in-app purchase. This means that the
user should be able to use every part of your app without needing to buy anything. In order
to convince users to buy in-app goods, you need to really demonstrate how or why the inapp purchases will benefit them.

In-App Purchases would work best for your app if:


1)

You have a retail app, a services app, or a gaming app

2)

You will make enough revenue to offset the percentage of revenue that Apple and Google
take from in-app goods sales

3)

An in-app store would fit naturally into your app

4)

The in-app goods provide real value to the user

5)

You have a high amount of users with long session times

4) PAID APPLICATION
The simplest monetization strategy is to charge users for the initial download of

an app. Paid apps are usually (relatively) inexpensive, and can benefit
consumers by providing full user experiences free of ads.

Developers of paid apps can dedicate all their time and efforts to the UX

components of their software, without worrying about making room for ads or
deciding which features to hold back in order to pull inrevenue via upgrades
and in-app purchases.

Unfortunately for advocates of paid apps, consumers have made it abundantly

clear that they prefer free or freemium apps and its not even close. Demand
for free mobile software has led to a dearth of paid apps, with approximately 90
percent of programs on Apples App Store available free-of-charge (at least
initially) in 2013.

5) SUBSCRIPTION
Typicallyused for content-driven apps like news and blog providers,

subscription-based apps use paywalls to charge consumers for access to


offerings like articles, videos, and podcasts.

Many subscription-based apps offer limited numbers of posts for free each

month, then require payments before any further content can be accessed.
Subscription apps are usually purchased in weekly, monthly, or yearly
intervals, and target users likely to become loyal consumers of the type of
content provided by the program.

Subscription apps provide steady streams of revenue for developers, but

also require the constant addition of new and relevant material in addition
to the normal upkeep associated with mobile software.

Monetization Strategies

You might also like