SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Write Once, Run on
                            Any Handset
                             You know, more or less...




Tuesday, June 29, 2010
Agenda
                    •    Introduction
                    •    The multi-handset approaches
                         •   Multiple separate native apps
                         •   A Web app
                         •   Multi-handset frameworks
                             •   Rhodes
                             •   PhoneGap
                             •   Appcelerator
                    •    Summary and Q&A



Tuesday, June 29, 2010
Speakers


                    • Aaron Mulder, CTO, Chariot Solutions
                    • Kevin Griffin, Architect, Chariot Solutions


Tuesday, June 29, 2010
Overall Goal
                    • Build a mobile app that supports as many
                         handsets as possible
                         • Generally targeting smartphones
                    • Limit the time spent fooling with different
                         platforms
                    • But don’t sacrifice functionality

Tuesday, June 29, 2010
Multiple Native Apps



Tuesday, June 29, 2010
Best Case / Worst Case
                    • Let’s imagine we build a separate native app
                         for each device
                         • Using the API and SDK for each device,
                           distribute apps in the platform’s app store
                           or whatever
                         • Using a single backend, and similar
                           screens and architecture for each app


Tuesday, June 29, 2010
Best Case
                    • Can easily use the native look and feel for
                         each device
                    • Can take advantage of many slick API
                         features (graphics, animation, XML)
                    • Easy to work around handset limitations
                    • Really responsive, and high-performance 3D
                    • Great user interaction: touch, drag, shake...
Tuesday, June 29, 2010
Worst Case
                    •    iPhone: Objective C
                    •    Android: Java (custom blend of Java SE, Java ME, etc.)
                    •    BlackBerry: Java ME plus RIM APIs
                    •    Palm: WebOS, Mojo framework (HTML &
                         JavaScript)
                    •    Symbian: (C++, JavaME, .NET, Python, Qt, etc)
                    •    Nokia: Web Runtime (WRT) -- HTML & JavaScript
                    •    Windows Phone 7 Series: (.NET)


Tuesday, June 29, 2010
Verdict
                    •    Benefits include responsiveness, and the look
                         and feel that users are accustomed to
                    •    Drawbacks include the huge numbers of SDKs
                         and development platforms
                         •   At a minimum, need both Mac and Windows
                             for developers!
                    •    Mandatory to coordinate up front to share
                         back end, app architecture and screen flow, etc.


Tuesday, June 29, 2010
Web App



Tuesday, June 29, 2010
I’m all about portable...
                    • Most Best smartphones use WebKit
                         browsers
                         • iPhone, Android, Palm WebOS, Nokia
                           WRT, BlackBerry 5 (next)
                         • HTML 5 and CSS 3
                         • But, not Windows Phone (mobile IE)

Tuesday, June 29, 2010
CSS/JavaScript the key
                    • There are CSS and JavaScript libraries to:
                     • Make your app look native on a particular
                           platform (iUI, jQTouch)
                         • Access handset features (like GPS) on a
                           particular platform
                    • Plus you can use them to reformat screens
                         for different display sizes...


Tuesday, June 29, 2010
But...

                    • At the present time can’t get a native look
                         and feel for every platform
                    • Relies on a solid WiFi/3G connection, and
                         still not as performant
                    • Detecting the specific device is up to you
                         (with the help of WURFL, MobileFu, etc.)



Tuesday, June 29, 2010
The Good and the Bad
                    •    Some success stories
                         •   GMail on mobile
                         •   iSepta
                         •   Did you try phillyemergingtech.com ?
                    •    Some sites with issues
                         •   Links in break when redirected to mobile site
                         •   Broken flipping between mobile and ‘full’ site


Tuesday, June 29, 2010
Verdict
                    • Only basic Web technologies needed, and
                         they have decent functionality
                    • Can use any back-end technology you want
                         (Java, Ruby, .NET, whatever)
                    • In the end, may still need customizations for
                         each style of handset (screen size, etc.)
                    • And separate “mobile” Web sites can have
                         their own usability issues


Tuesday, June 29, 2010
Multiple-Handset
                          Frameworks



Tuesday, June 29, 2010
Common Elements
                    • You write code in some single environment
                    • A project is generated for each platform
                         and needs to be built/run
                         • With varying degrees of automation
                    • You get a native app, with some framework
                         code and some of your code
                    • Debugging options are limited
Tuesday, June 29, 2010
Differentiators
                    • What language(s) do you code in?
                    • How many platforms are well-supported?
                    • What native features are supported?
                    • What’s the look and feel?
                    • How easy is the development process?
                    • Is there any cost?
Tuesday, June 29, 2010
RhoMobile



Tuesday, June 29, 2010
Highlights
                    • 3 Components
                     • Rhodes -- multi-handset development
                     • RhoSync -- integration
                     • RhoHub -- hosted IDE/build system
                    • Commercial with varying costs (except for
                         open source mobile apps)


Tuesday, June 29, 2010
Rhodes Technology
                    • Write your app logic in Ruby
                    • Includes MVC Web framework and an
                         ORM layer
                    • Screens in HTML & JavaScript
                    • Packages a Ruby interpreter with your app
                         on the phone


Tuesday, June 29, 2010
Extras
                    •    RhoSync
                         •   Easily pull information from existing back end
                             sources into a Rhodes app
                         •   Write adapter logic in Ruby
                    •    RhoHub
                         •   Online development/build environment (need
                             no SDK on local machine)
                         •   Hosted RhoSync adapters


Tuesday, June 29, 2010
Build Process
                    • Run command-line scripts to create project
                      • Creates an XCode project for iPhone
                      • Creates an APK for Android
                      • Creates Visual Studio project WM.
                      • Creates a (Windows) SDK proj. for
                         Blackberry
                    • Then build that project like a native one
Tuesday, June 29, 2010
Result
                    •    Typically not the native look and feel
                         •   Though you can create some elements like a
                             tab bar with the Rhodes API
                         •   And you can use libraries like iUI
                    •    Can access a variety of native features
                         depending on the platform
                    •    Best for iPhone, Android and Blackberry
                         (Windows Phone 7 under discussion)


Tuesday, June 29, 2010
Verdict
                    •    Great if you have Ruby skills
                    •    Only framework with integrated Web-MVC
                         and ORM option
                    •    Great if you want easy sync to existing apps or
                         data stores
                    •    RhoHub can be nice to develop for multiple
                         phones from one machine
                    •    But not free to develop non-OSS apps


Tuesday, June 29, 2010
PhoneGap



Tuesday, June 29, 2010
Highlights
                    • Build apps using only HTML & JavaScript, yet
                         still get the native app experience
                    • Excellent build scripts to create the native
                         projects
                         • iPhone, Android, Palm, BlackBerry, plus
                           Windows Phone, Symbian
                    • Exposes native phone features via a
                         JavaScript API


Tuesday, June 29, 2010
Technology
                    • All the power of HTML5/CSS3
                     • Plus SVG for fancy graphics?
                    • Prefers XUI (like JQuery), but what the
                         heck, you could put any JS stuff in there
                         • Best to use JSON for talking to a server
                    • Runs locally on phone -- performs OK and
                         no issues with cross-domain JavaScript


Tuesday, June 29, 2010
Disadvantages
                    •    Uses phone’s features for a database, etc.
                         •   Not really standard beyond ‘local storage’
                    •    All your validation/logic/etc. is in JavaScript...
                         hopefully not embedded in every page (see
                         ‘before Web MVC’)
                    •    Debugging options are pretty limited
                         •   Maybe run in Firebug, if not using native
                             phone features


Tuesday, June 29, 2010
Result
                    •    Minimal funny skills required to develop for many phone
                         platforms (HTML & JS)
                         •   But still need to drive XCode,Visual Studio, Java compiler,
                             etc. -- especially if you want to extend the PhoneGap API
                    •    Similar look and feel issues as regular Web apps
                    •    Great for something that could be a regular Web app, but
                         would be just a little bit better with native features & app
                         store
                    •    Great handset support (and lowest cost) of all these
                         frameworks



Tuesday, June 29, 2010
Titanium



Tuesday, June 29, 2010
Highlights
                    • Also uses HTML, CSS, & JavaScript
                    • But has a JavaScript API for native widgets
                         to get a native look and feel
                    • Great tooling builds native executables
                         under the covers
                    • Limited platform support (iPhone, Android,
                         and BlackBerry coming) (iPad just added!)


Tuesday, June 29, 2010
Technology & Issues
                    • Pretty much the same starting point as
                         PhoneGap (including limited debugging)
                    • Uses “Titanium” runtime (also a desktop
                         version available)
                         • Can’t run in a browser
                         • Titanium API has some nice features that
                           give you a few more options


Tuesday, June 29, 2010
Results
                    • More native look and feel, despite using
                         only Web technologies
                    • Very easy development process (e.g. click
                         “Run in iPhone Simulator” button)
                         • Don’t even need to know XCode
                    • Still the native app experience
                     • All Web stuff runs locally, like PhoneGap
Tuesday, June 29, 2010
Verdict
                    • Best multi-platform development
                         experience
                         • If you’re OK with the cost and the
                           limited number of platforms supported
                    • Nice to have the native UI option
                    • Still best for Web 2.0 ninjas
                     • If JavaScript isn’t your thing, then...?
Tuesday, June 29, 2010
Wrap-up



Tuesday, June 29, 2010
Decisions, Decisions
                    • If no native features, maybe a Web app is the
                         way to go (esp. with HTML5 features)
                         • Or PhoneGap if you want the app store
                           experience
                    • If maximum performance or native features
                         are key, maybe you need multiple native apps
                    • Titanium is easiest framework to use, but
                         with fewer supported platforms


Tuesday, June 29, 2010
Architecture Issues
                    • Do you want code in Ruby, HTML/CSS/JS,
                         or the native languages?
                    • Do you want code living on the handset or
                         on a Web server?
                         • Remember: old releases may never die
                    • Do you favor an MVC Web framework?
                    • Does your back end support JSON?
Tuesday, June 29, 2010
Q&A
                         ammulder@chariotsolutions.com
                          kgriffin@chariotsolutions.com




Tuesday, June 29, 2010

Weitere ähnliche Inhalte

Was ist angesagt?

ITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp
 
Mobile-izing Your Organization with Drupal: Acquia webinar
Mobile-izing Your Organization with Drupal: Acquia webinarMobile-izing Your Organization with Drupal: Acquia webinar
Mobile-izing Your Organization with Drupal: Acquia webinarTom Deryckere
 
Multitasking in iOS - The Junction
Multitasking in iOS - The JunctionMultitasking in iOS - The Junction
Multitasking in iOS - The JunctionOri Goshen
 
Accessible Web Content & Intellectual Disabilities
Accessible Web Content & Intellectual DisabilitiesAccessible Web Content & Intellectual Disabilities
Accessible Web Content & Intellectual DisabilitiesInteractive Accessibility
 

Was ist angesagt? (7)

ITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile apps
 
Mobile-izing Your Organization with Drupal: Acquia webinar
Mobile-izing Your Organization with Drupal: Acquia webinarMobile-izing Your Organization with Drupal: Acquia webinar
Mobile-izing Your Organization with Drupal: Acquia webinar
 
Multitasking in iOS - The Junction
Multitasking in iOS - The JunctionMultitasking in iOS - The Junction
Multitasking in iOS - The Junction
 
Accessible Web Content & Intellectual Disabilities
Accessible Web Content & Intellectual DisabilitiesAccessible Web Content & Intellectual Disabilities
Accessible Web Content & Intellectual Disabilities
 
iOS Ecosystem
iOS EcosystemiOS Ecosystem
iOS Ecosystem
 
Introduction to Android
Introduction to AndroidIntroduction to Android
Introduction to Android
 
Catalog of mobile device innovations - 9.2012
Catalog of mobile device innovations - 9.2012Catalog of mobile device innovations - 9.2012
Catalog of mobile device innovations - 9.2012
 

Ähnlich wie Multi Handset Development - ETE 2010

Nuxeo World Session: Mobile ECM Apps with Nuxeo EP
Nuxeo World Session: Mobile ECM Apps with Nuxeo EPNuxeo World Session: Mobile ECM Apps with Nuxeo EP
Nuxeo World Session: Mobile ECM Apps with Nuxeo EPNuxeo
 
Android Workshop at @majug by @derwildemomo and @elektrojunge
Android Workshop at @majug by @derwildemomo and @elektrojungeAndroid Workshop at @majug by @derwildemomo and @elektrojunge
Android Workshop at @majug by @derwildemomo and @elektrojungeBenny Reimold
 
Никита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS developmentНикита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS developmentDataArt
 
Mobile application development strategies
Mobile application development strategiesMobile application development strategies
Mobile application development strategiesInterop
 
Qa extreme 2011 eran kinsbruner
Qa extreme 2011 eran kinsbrunerQa extreme 2011 eran kinsbruner
Qa extreme 2011 eran kinsbrunerEran Kinsbrunner
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile DevelopmentIntergen
 
1319571 634635606205391250
1319571 6346356062053912501319571 634635606205391250
1319571 634635606205391250MadNor Exe
 
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Bala Subra
 
Mobile CMS - CMSExpo 2010
Mobile CMS - CMSExpo 2010Mobile CMS - CMSExpo 2010
Mobile CMS - CMSExpo 2010Tom Deryckere
 
developementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxdevelopementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxPoooi2
 
Current state of mobile development february 2013
Current state of mobile development february 2013Current state of mobile development february 2013
Current state of mobile development february 201359offers
 
Android : Evolution or Revolution
Android : Evolution or RevolutionAndroid : Evolution or Revolution
Android : Evolution or RevolutionSanjiv Malik
 
Introduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIntroduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIndyMobileNetDev
 
IT6601 Mobile Computing Unit V
IT6601 Mobile Computing Unit VIT6601 Mobile Computing Unit V
IT6601 Mobile Computing Unit Vpkaviya
 

Ähnlich wie Multi Handset Development - ETE 2010 (20)

Nuxeo World Session: Mobile ECM Apps with Nuxeo EP
Nuxeo World Session: Mobile ECM Apps with Nuxeo EPNuxeo World Session: Mobile ECM Apps with Nuxeo EP
Nuxeo World Session: Mobile ECM Apps with Nuxeo EP
 
Mobile application fragmentation
Mobile application fragmentationMobile application fragmentation
Mobile application fragmentation
 
Android Workshop at @majug by @derwildemomo and @elektrojunge
Android Workshop at @majug by @derwildemomo and @elektrojungeAndroid Workshop at @majug by @derwildemomo and @elektrojunge
Android Workshop at @majug by @derwildemomo and @elektrojunge
 
Никита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS developmentНикита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS development
 
Mobile application development strategies
Mobile application development strategiesMobile application development strategies
Mobile application development strategies
 
Qa extreme 2011 eran kinsbruner
Qa extreme 2011 eran kinsbrunerQa extreme 2011 eran kinsbruner
Qa extreme 2011 eran kinsbruner
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
 
1319571 634635606205391250
1319571 6346356062053912501319571 634635606205391250
1319571 634635606205391250
 
Android
AndroidAndroid
Android
 
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
 
Mobile CMS - CMSExpo 2010
Mobile CMS - CMSExpo 2010Mobile CMS - CMSExpo 2010
Mobile CMS - CMSExpo 2010
 
developementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxdevelopementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptx
 
Android
Android Android
Android
 
Why Flutter.pdf
Why Flutter.pdfWhy Flutter.pdf
Why Flutter.pdf
 
Current state of mobile development february 2013
Current state of mobile development february 2013Current state of mobile development february 2013
Current state of mobile development february 2013
 
Android : Evolution or Revolution
Android : Evolution or RevolutionAndroid : Evolution or Revolution
Android : Evolution or Revolution
 
Introduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIntroduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual Studio
 
Android basic
Android basicAndroid basic
Android basic
 
IT6601 Mobile Computing Unit V
IT6601 Mobile Computing Unit VIT6601 Mobile Computing Unit V
IT6601 Mobile Computing Unit V
 

Kürzlich hochgeladen

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 

Kürzlich hochgeladen (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 

Multi Handset Development - ETE 2010

  • 1. Write Once, Run on Any Handset You know, more or less... Tuesday, June 29, 2010
  • 2. Agenda • Introduction • The multi-handset approaches • Multiple separate native apps • A Web app • Multi-handset frameworks • Rhodes • PhoneGap • Appcelerator • Summary and Q&A Tuesday, June 29, 2010
  • 3. Speakers • Aaron Mulder, CTO, Chariot Solutions • Kevin Griffin, Architect, Chariot Solutions Tuesday, June 29, 2010
  • 4. Overall Goal • Build a mobile app that supports as many handsets as possible • Generally targeting smartphones • Limit the time spent fooling with different platforms • But don’t sacrifice functionality Tuesday, June 29, 2010
  • 6. Best Case / Worst Case • Let’s imagine we build a separate native app for each device • Using the API and SDK for each device, distribute apps in the platform’s app store or whatever • Using a single backend, and similar screens and architecture for each app Tuesday, June 29, 2010
  • 7. Best Case • Can easily use the native look and feel for each device • Can take advantage of many slick API features (graphics, animation, XML) • Easy to work around handset limitations • Really responsive, and high-performance 3D • Great user interaction: touch, drag, shake... Tuesday, June 29, 2010
  • 8. Worst Case • iPhone: Objective C • Android: Java (custom blend of Java SE, Java ME, etc.) • BlackBerry: Java ME plus RIM APIs • Palm: WebOS, Mojo framework (HTML & JavaScript) • Symbian: (C++, JavaME, .NET, Python, Qt, etc) • Nokia: Web Runtime (WRT) -- HTML & JavaScript • Windows Phone 7 Series: (.NET) Tuesday, June 29, 2010
  • 9. Verdict • Benefits include responsiveness, and the look and feel that users are accustomed to • Drawbacks include the huge numbers of SDKs and development platforms • At a minimum, need both Mac and Windows for developers! • Mandatory to coordinate up front to share back end, app architecture and screen flow, etc. Tuesday, June 29, 2010
  • 11. I’m all about portable... • Most Best smartphones use WebKit browsers • iPhone, Android, Palm WebOS, Nokia WRT, BlackBerry 5 (next) • HTML 5 and CSS 3 • But, not Windows Phone (mobile IE) Tuesday, June 29, 2010
  • 12. CSS/JavaScript the key • There are CSS and JavaScript libraries to: • Make your app look native on a particular platform (iUI, jQTouch) • Access handset features (like GPS) on a particular platform • Plus you can use them to reformat screens for different display sizes... Tuesday, June 29, 2010
  • 13. But... • At the present time can’t get a native look and feel for every platform • Relies on a solid WiFi/3G connection, and still not as performant • Detecting the specific device is up to you (with the help of WURFL, MobileFu, etc.) Tuesday, June 29, 2010
  • 14. The Good and the Bad • Some success stories • GMail on mobile • iSepta • Did you try phillyemergingtech.com ? • Some sites with issues • Links in break when redirected to mobile site • Broken flipping between mobile and ‘full’ site Tuesday, June 29, 2010
  • 15. Verdict • Only basic Web technologies needed, and they have decent functionality • Can use any back-end technology you want (Java, Ruby, .NET, whatever) • In the end, may still need customizations for each style of handset (screen size, etc.) • And separate “mobile” Web sites can have their own usability issues Tuesday, June 29, 2010
  • 16. Multiple-Handset Frameworks Tuesday, June 29, 2010
  • 17. Common Elements • You write code in some single environment • A project is generated for each platform and needs to be built/run • With varying degrees of automation • You get a native app, with some framework code and some of your code • Debugging options are limited Tuesday, June 29, 2010
  • 18. Differentiators • What language(s) do you code in? • How many platforms are well-supported? • What native features are supported? • What’s the look and feel? • How easy is the development process? • Is there any cost? Tuesday, June 29, 2010
  • 20. Highlights • 3 Components • Rhodes -- multi-handset development • RhoSync -- integration • RhoHub -- hosted IDE/build system • Commercial with varying costs (except for open source mobile apps) Tuesday, June 29, 2010
  • 21. Rhodes Technology • Write your app logic in Ruby • Includes MVC Web framework and an ORM layer • Screens in HTML & JavaScript • Packages a Ruby interpreter with your app on the phone Tuesday, June 29, 2010
  • 22. Extras • RhoSync • Easily pull information from existing back end sources into a Rhodes app • Write adapter logic in Ruby • RhoHub • Online development/build environment (need no SDK on local machine) • Hosted RhoSync adapters Tuesday, June 29, 2010
  • 23. Build Process • Run command-line scripts to create project • Creates an XCode project for iPhone • Creates an APK for Android • Creates Visual Studio project WM. • Creates a (Windows) SDK proj. for Blackberry • Then build that project like a native one Tuesday, June 29, 2010
  • 24. Result • Typically not the native look and feel • Though you can create some elements like a tab bar with the Rhodes API • And you can use libraries like iUI • Can access a variety of native features depending on the platform • Best for iPhone, Android and Blackberry (Windows Phone 7 under discussion) Tuesday, June 29, 2010
  • 25. Verdict • Great if you have Ruby skills • Only framework with integrated Web-MVC and ORM option • Great if you want easy sync to existing apps or data stores • RhoHub can be nice to develop for multiple phones from one machine • But not free to develop non-OSS apps Tuesday, June 29, 2010
  • 27. Highlights • Build apps using only HTML & JavaScript, yet still get the native app experience • Excellent build scripts to create the native projects • iPhone, Android, Palm, BlackBerry, plus Windows Phone, Symbian • Exposes native phone features via a JavaScript API Tuesday, June 29, 2010
  • 28. Technology • All the power of HTML5/CSS3 • Plus SVG for fancy graphics? • Prefers XUI (like JQuery), but what the heck, you could put any JS stuff in there • Best to use JSON for talking to a server • Runs locally on phone -- performs OK and no issues with cross-domain JavaScript Tuesday, June 29, 2010
  • 29. Disadvantages • Uses phone’s features for a database, etc. • Not really standard beyond ‘local storage’ • All your validation/logic/etc. is in JavaScript... hopefully not embedded in every page (see ‘before Web MVC’) • Debugging options are pretty limited • Maybe run in Firebug, if not using native phone features Tuesday, June 29, 2010
  • 30. Result • Minimal funny skills required to develop for many phone platforms (HTML & JS) • But still need to drive XCode,Visual Studio, Java compiler, etc. -- especially if you want to extend the PhoneGap API • Similar look and feel issues as regular Web apps • Great for something that could be a regular Web app, but would be just a little bit better with native features & app store • Great handset support (and lowest cost) of all these frameworks Tuesday, June 29, 2010
  • 32. Highlights • Also uses HTML, CSS, & JavaScript • But has a JavaScript API for native widgets to get a native look and feel • Great tooling builds native executables under the covers • Limited platform support (iPhone, Android, and BlackBerry coming) (iPad just added!) Tuesday, June 29, 2010
  • 33. Technology & Issues • Pretty much the same starting point as PhoneGap (including limited debugging) • Uses “Titanium” runtime (also a desktop version available) • Can’t run in a browser • Titanium API has some nice features that give you a few more options Tuesday, June 29, 2010
  • 34. Results • More native look and feel, despite using only Web technologies • Very easy development process (e.g. click “Run in iPhone Simulator” button) • Don’t even need to know XCode • Still the native app experience • All Web stuff runs locally, like PhoneGap Tuesday, June 29, 2010
  • 35. Verdict • Best multi-platform development experience • If you’re OK with the cost and the limited number of platforms supported • Nice to have the native UI option • Still best for Web 2.0 ninjas • If JavaScript isn’t your thing, then...? Tuesday, June 29, 2010
  • 37. Decisions, Decisions • If no native features, maybe a Web app is the way to go (esp. with HTML5 features) • Or PhoneGap if you want the app store experience • If maximum performance or native features are key, maybe you need multiple native apps • Titanium is easiest framework to use, but with fewer supported platforms Tuesday, June 29, 2010
  • 38. Architecture Issues • Do you want code in Ruby, HTML/CSS/JS, or the native languages? • Do you want code living on the handset or on a Web server? • Remember: old releases may never die • Do you favor an MVC Web framework? • Does your back end support JSON? Tuesday, June 29, 2010
  • 39. Q&A ammulder@chariotsolutions.com kgriffin@chariotsolutions.com Tuesday, June 29, 2010