Professional Documents
Culture Documents
APPLICATION
DEVELOPMENT
TOPIC 1
LEARNING OUTCOMES
1.
2.
3.
ABOUT MOBILE?
Flexible Screens
Waterproof Phone
Double Screens
Phone to TV Application
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
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
3) Cost
4)
Most of desktop
Connectivit application did not need
y
an internet connection
5) Speed
Most of mobile
application must have
an internet
connection
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
Solitaire
Comes stock
on Microsoft in
Accessories doesnt need
Internet
http://m.facebo
ok.com
worldofsolitair
e.com;
games.com;
Opened in
mobile
browser
INTRODUCTION
Mobile technology consists of:
Mobile Platform
1. Mobile Platform referred to asmobile Operating
Samsung Galaxy S6
HTC One A9
Apple iPhone 6s
EXAMPLE OF MOBILE
DEVICES: TABLET
Apple ipad
Pro
Samsung tab
4
Mobile Platform
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
Linux
Kernel
Libraries
Android Runtime
TYPICAL WORKFLOW
App written in Java
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
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
1)
2)
3)
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.
2)
3)
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
Mobile web apps are developed using mobile web framework technologies like
These Apps are executed on the Web servers and accessible via Mobile Web
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.
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
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
1. Operating system issues
2. Screen size and orientation issues
3. Connectivity issues
4. Battery issues
5. Hardware issues
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
Apps are cheap and easy to obtain. If yours doesnt work well, there is likely to be an acceptable
2)
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
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
The mobile device has significantly less area to design the interaction that your users can
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
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.
MONETIZING APPLICATIONS
&
INCOME POSSIBILITIES
Monetization
1. Paid application
2. Ad-supported applications
3. In-application purchases
4. Understanding the economics of
application stores
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.
You dont want to worry about collecting money directly from users.
2)
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.
2)
3)
4)
5)
3) IN-APP PURCHASES
Not to be confused with Freemium, apps with in-app purchases give their users the
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.
2)
You will make enough revenue to offset the percentage of revenue that Apple and Google
take from in-app goods sales
3)
4)
5)
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.
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,
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.
also require the constant addition of new and relevant material in addition
to the normal upkeep associated with mobile software.
Monetization Strategies