1
Max Katz, Exadel
Mobile Development Choices:Native Apps vs Web Apps
Who is this guy?
Senior Systems Engineer, RIA strategist at Exadel
Working, teaching, consulting on JSF, RichFaces since inception
Presented at JavaOne, TheServerSide Java Symposium, JSF Days and other conferences
Author ofPractical RichFaces
(Apress)
Co-authorRichFaces Dzone
Refcard
Leading a number of projects:
Tiggr: Web-based application for creating, collaborating, and sharing Web and mobile prototypes Check it out at: http://gotiggr.com
exadel.org:Exadel Flamingo – enterprise framework
for connecting Flex/JavaFX to Java EE, Seam and Spring
Exadel Fiji – wraps any Flash/JavaFX widget as JSF component
Exadel jsf4birt – wraps BIRT report as JSF component
Exadel JavaFX Plug-in for Eclipse – JavaFX Eclipse tooling
You can find me at:blog: http://mkblog.exadel.com
twitter: http://twitter.com/maxkatz
ExadelProducts and services company
Founded in 1998, headquarters in Concord, CA
350+ employees
Open source with JBoss
Source: Flickr photo by markhillary: http://www.flickr.com/photos/markhillary/514555513/
How did it all start?
Source: http://www.flickr.com/photos/victor_sween/351930091/
Mobile devices are very powerful today, and
getting more powerful with each new model.
Many high-end phones now ship with
1Ghz processor
Large, high-resolution screens
High-resolution camera and HD video recorder
WiFi, 3G/4G, GPS
Source: http://www.flickr.com/photos/samchurchill/4468099718/
HTC EVO 4G
Sources: http://blackberry.com, http://samsung.com, http://www.flickr.com/photos/3gstore/4745626595/
The number of smartphones is growing at phenomenal rate.
How many of you have a smartphone?
Over 4 billion phones in the
world(that's half the
population)
Source: http://www.flickr.com/photos/wwworks/2222523486/
Forecast for total smartphone
sales in 2010: 250,000,000+
Source: http://www.gartner.com/it/page.jsp?id=1434613Source: http://www.flickr.com/photos/wwworks/2222523486/
By 2013 mobile devices will overtake PCs as the preferred way
of accessing the Internet.
Source: http://www.mobilecommercedaily.com/why-a-mobile-strategy-for-retailers-matters-more-than-ever
Smartphone?
Source: http://www.flickr.com/photos/sanberdoo/510894918/
There are 2 options to deliver applications:
Native apps or Web apps
That looks like what we have on PCs. Right?
Mobile platforms
Developer skills
Time to market
Performance
Market approval
Perception
Cost
Risk
Installation and update
Porting to new platforms
Integration with device services
Off-line
Integration with enterprise
Mobile frameworks
Source: Flickr photo by sridgway: http://www.flickr.com/photos/stephanridgway/4468403556/
What qualifies Exadel?
What mobile platforms are available today?
Platforms: WebWeb browser
Android: multiple browsers
(Android, Firefox, Opera)
iOS: Safari
Modern mobile devices have powerful browsers
More powerful than on some PCs
HTML5 support
What developer skills are needed?Source:http://www.flickr.com/photos/worldeconomicforum/2889019945/
Objective-C Java
Java
JavaC++HTML/JavaScript
.NET
Developer Skills: Web
HTML, JavaScript, CSS
Well known technology stack
Web developers are more likely to pick up mobile Web development
then specific native platform
Time to Market
Source: Flickr photo by jpctalbot: http://www.flickr.com/photos/laserstars/908946494/
Performance
Source: Flickr photo by mckaysavage: http://www.flickr.com/photos/mckaysavage/843953060/
Market Approval
“Steve” can't say no!
What about perception?
Source: http://www.flickr.com/photos/h-k-d/3662450210/
Source: http://www.flickr.com/photos/bsuter/1254095605/
Cost
Risk?
Source: http://www.flickr.com/photos/ladyann/2898038133/
Installation and Update
Source: http://www.flickr.com/photos/okubax/3967919035/Source: http://www.flickr.com/photos/jocke66/4597865558/
Just enter the URL or hit Refresh
Porting to New Platforms
Porting to New Platforms: Native
Porting to New Platforms: Web
Update look and feel, layout
Adapt UI for the target platform
Integration with device services
Integration with device services: Native
Integration with device services:ContactsCalendarOther applications
Integration with device hardware:CameraGPSAccelerometer
Take advantage of platform's API
Integration with phone services: Web
Very limited, if any.
Location-based services is available from browser API
Running in Off-line Mode: Native
HTML5
Connecting to enterprise
Connecting to Enterprise: Native
Existing infrastructure is reused
Might need service layer to communicate between client
(mobile) and server
HTTP, REST, SOAP
Framework like Flamingo
Connecting to Enterprise: Web
Pretty much existing infrastructure can be reused
Mobile Frameworks
Mobile Frameworks: Native
Objective-C Java Java
HTML/JavaScript .NETJavaC++
Mobile Frameworks: Web
jQuery MobilePhoneGapSenchaAppcelerator
But, can adapt any existing framework for mobile Web
Source: http://www.flickr.com/photos/drachmann/327122302/
Anything I missed?
Some other things to consider
Does everything need a native app?
Probably not.
“App overload”
Do you want users to download an app for anything they do on mobile
devices?
Flick photo by Arts Comments: http://www.flickr.com/photos/artcomments/382732967/
History repeats itself?
Go native if:GamesAccess to device featuresHigh performanceOff-lineSpecialized apps with rich graphicsTargeting just one platform
For everything else, go with Web; and if supporting multipleplatforms is important
Source: http://www.flickr.com/photos/pagedooley/4114167117/
There is no right answer.
Flickr photo by faungg: http://www.flickr.com/photos/44534236@N00/3255156612/
Thank you!
Don't hesitate to contact with me with any questions, including RichFaces.
email: [email protected]
blog: http://mkblog.exadel.com
twitter: http://twitter.com/maxkatz
prototypes: http://gotiggr.com
open source: http://exadel.org