BFeigin Mobile Application Development
BFeigin Mobile Application Development
IN THE BEGINNING
IBM Simon
WHAT IS A SMARTPHONE
Semi-Smart:
making calls
Offers a standardized platform for development Able to execute arbitrary 3rd party applications
QUICK FACTS
Today
Cell phones in use today ~ 1.2 billion Smartphones account for 14% ~ 170 Million
Projected
2012
300%
MOBILE DEVELOPMENT
ME Symbian
UIQ S60
Mobile
distribution Adobe Flash Light BREW OpenMoko Palm OS (Garnet OS, Cobalt OS) Palm webOS
Mojo
WHY?
Different
Phones for consumer or phone for business V-Cast vs Palm Hardware made money Tried to maintain control over content and services. Wanted to charge 3rd party developers for the privilege of using their platform.
Digital signing Distribution mechanisms.
Money
/ GUI
Phone
What resources are available to your program What types of boundaries or constraints are put on applications How can code be considered safe
OTHER ISSUES
Distribution
Development
Porting
Environment
Java ME BREW *
Core
Operating System
Symbian LiMo
Rich
Operating System
Android iPhone
VIRTUAL ENVIRONMENTS
JAVA PLATFORM
KVM / CLDC
Specially
designed mobile virtual machine Original Ran with 128k Memory footprint Paired down to bare bones
Yank
out features
But
Each phone implementation can add them back Takes a profile to complete the stack
LCDUI-
2D drawing library typically used for sprite based 2d games Optional packages
Pluggable Architecture
Attempted
Fell
short of expectations
Phone specific plug-ins Applications could be blocked without specific certificates. Currently paired down version of java 1.3
Version 3.0 just released Offers support for several new features
Only
by QUALCOMM
to Java ME
Start
Java
SYMBIAN: AT A GLANCE
Good
Huge
Bad
Market Share
Strange
flavor of C++
45%
Robust
and well vetted platform Very open Low overhead eventbased programming
Resource
UIQ VS S60
Rival UIQ
Sony Ericsson Touch screen phones Developed and owned by Nokia Current industry leader Will become standard in late 2009
S60
Both
Developed by Nokia IDE based on Eclipse platform Provides a set of tools for debugging SDK independent Visual studio implementation Similar feature set
Carbide.vs
applications are treated as dlls and have a single entry point Main: Application Class Uses MVC style organization
and TRAP vs try/catch Try Catch has large overhead Use TRAP Macro Cleanup is an issue
Void Ctest::FooL() { CBar* v1= new (Eleave) Cbar; CleanupStack::PushL(v1); //Do dangerious things EvilMethodL(); CleanupStack::PopAndDestroy(); };
caging
Capabilities
24, 2008:
Nokia outright purchased the Symbian OS Symbian Foundation Formed Provide a royalty-free open platform and accelerate innovation Combine Symbian OS, S60, UIQ Move code base to open source in next two years
Goals
http://www.youtube.com/watch?v=UxGa6kyPOjk&feature=player_embedded http://www.youtube.com/watch?v=gAg_MOFNfFc&feature=player_embedded
NUMBERS
SDK
Includes both pay and free Assuming 10% paid downloads lowest price of $.99/app $99 Million
17%
Market share just in front of Blackberry Still well behind Symbian but growing very fast
iPHONE DEVELOPMENT
Objective-C
No
Java VM or other 3rd party plugins An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise. No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apples Published APIs and built-in interpreter(s). iPhone SDK EULA
Cocoa Touch Layer Media Layer Core Services Layer Core OS Layer Xcode Interface Builder iPhone Simulator On phone application development
IDE
for graphical, event-driven applications Pallet of GUI widgets to use in your views. Drag and drop widgets onto views Links between objects can be created graphically
Produces
Nib Files
{ NSString *string =[... Alloc]; [string release]; return string; //?? } { NSString *string =[... Alloc]; [string autorelease]; return string; }
Dont Subclass
Method
Managed
Memory
Auto release
Survived
All applications must be delivered through the iTunes App Store Requires apple approval and testing
$99 App Store $299 Enterprise
OS 3.0
Video
47% growth/month over first four months iPhone 88% Currently only on HTC Dream(G1) Really cool concept but will it penetrate the market
WHAT IS ANDROID
Full
Stack
Fully User
Source and Ideology Can establish preferred applications Apps provide functionality that can be used by others
Application
Register-based Java virtual machine Runs .dex files Similar to a JAR Used a cross compiler tool dx Optimized for multiple instances
Why
Its own Linux process Its own JVM Its own file system
Component
based architecture
Manifest
visual interface for one task a user will attempt Each activity gets a window to draw in. Similar to a controller, takes view objects to display in the window
Application
process
No UI
Example:
Once
bound can communicate through predefined interface Media Player: start, stop..
Receivers
Event listeners
No UI
Content
Providers
the target object, the target method, and a URI of data to act on Activates components
Intent
Box
Without explicit permission cant get outside Each application can control what gets exposed Permissions are declared at install time and cant change
App
signing
True
Net
Books?
Still far away Android doesnt support XServer Tech demo already complete.
ON THE HORIZON
LiMo
LiMo
believes that the growth of the mobile industry depends on the existence of a broadly accepted operating system. SDKs
Major
Players:
Palm
has extended the standard web development environment through a JavaScript framework that gives standardized UI widgets, and access to selected device hardware and services. Video
QUESTIONS
Can
the development space ever be consolidated? How big a roll does a centralized distribution mechanism play?
Does the safety of the App Store warrant having to pay $99 to develop something?
REFERENCES
iphone
vs. Symbian vs. Android vs. Limo vs. Ovi : We cannot compare an ecosystem with an operating system
http://opengardensblog.futuretext.com/archives/2008/06/iphone_vs_symbi_1.html
Developing
http://www.isecpartners.com/files/iSEC_Securing_Android_Apps.pdf
Architectural
http://www.ibm.com/developerworks/architecture/library/wi-arch23.html
AdMob
http://metrics.admob.com/wp-content/uploads/2009/04/admob-mobile-metrics-
march-09.pdf
What
is Android of LiMo
http://developer.android.com/guide/basics/what-is-android.html
Overview
http://www.limofoundation.org/images/stories/pdf/090211%20limo%20overview
%20v3.pdf
REFERENCES
iPhone
http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/
Using
http://developer.symbian.com/main/documentation/books/books_files/pdf/Getting_Started_final.pdf
Smartphone
NUmbers
http://www.boygeniusreport.com/2009/04/19/samsungs-says-smartphones-will-make-up-29-percent-of-the-market-
in-2012/
UIQ
Symbian
key.PressResource.Foundation_second_update_release_FINAL-20080909
http://www.sonyericsson.com/cws/companyandpress/pressreleases/pressrelease/pressreleaseoverview/
Obj-C
memory
http://www.macdevcenter.com/pub/a/mac/2001/07/27/cocoa.html?page=3
Dalvik
http://www.betaversion.org/~stefano/linotype/news/110/
Android
Tech Demo
http://venturebeat.com/2009/01/01/android-netbooks-on-their-way-likely-by-2010/