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