SlideShare a Scribd company logo
1 of 39
Download to read offline
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

More Related Content

What's hot

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
 

What's hot (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
 

Similar to 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
 

Similar to 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
 

Recently uploaded

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
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
 
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
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
[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
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
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
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
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
 
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
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 

Recently uploaded (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
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
 
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
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
[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
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
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
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
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
 
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
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 

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