SlideShare a Scribd company logo
Beyond the BlackBerry Smartphone: Using PhoneGap and Other Strategies to Deploy Applications Across Multiple Devices November 10th, 2009 JJ Rohrer President Elegant Technologies, LLC eleganttechnologies.com/blog/etr
Agenda Cross Platform Problem Space Vendors, Options, Strategies Case Study - Web, PhoneGap, & Widgets  Recommendations
Intro About Me MBA + MS/CS = Trouble Experimenting  iPhone WebApp + Staff Pick = Big Head iPhone Native Android BlackBerry Storm N60 Palm Pre Need Better Way So - Let’s look at cross-platform strategies
Cross Platform Problem Space
Cross Platform Problem Space Cross Platform Desktop Development as Bad Model Cross Browser Web 2.0 Development as Bad Model Cross Platform for Mobile is New(ish) Beast
Cross Platform Problem Space Cross Platform Desktop Development as Bad Model Usually... Big framework J2ME, Adobe Air, GTK Non-native UI Swing, TCL/TK Common Language Output C/C++, Java, Ruby as executable Trades efficiency in execution for code commonality Bad Paradigm for Mobile because... Not efficient Can’t reach all platforms
Cross Platform Problem Space Cross Browser Web 2.0 Development as Bad Model Big framework JQuery, Yahoo toolkit, Adobe Air Minimal compatibility with mobile web browsers Non-native UI A common web UI will look out of place on all devices WebApps are bad for mobile because... Breaks “App” paradigm Loses device specific functionality Push, contacts, accelerometers, etc.
Cross Platform Problem Space Cross Platform for Mobile is New(ish) Beast Small is beautiful Limited memory, screen, cpu Real UI Differences between platforms Different Look & Feel (Mac vs. PC) Whole Different Metaphors! (Tabs vs. Cards) Different icon sizes, orientations, buttons, etc. Real Language Differences Java is fairly common, but not ubiquitous Android’s OS is way different than iPhone & BlackBerry iPhone only has ObjectiveC, C/C++, & JS in Webview
Vendors, Options, Strategies
Vendors, Options, Strategies Cross Platform for Mobile is New(ish) Beast Titanium (Appcelerator) Rhomobile J2ME Polish Pure WebApp Web, PhoneGap, Widgets Flash 10.1
Vendors, Options, Strategies Capabilities Matrix Cost BB iPhone Palm WebOS S60 Android Win  Mobile Safari Chrome Firefox IE 7 Comments Titanium ( Appcelerator) $$ X X Rhomobile $$ X X X X X +Ruby J2ME Polish $$ X X X J2ME w/ macros Pure WebApp - x X x x X x X X X X - Limited access to native Web, PhoneGap, Widget - x X X X X X X X X X - Immature + Unlimited customization Flash 10.1 (pre-beta) $$ X X X X X X X X X X + Adaptive strategies
Case Study - Web, PhoneGap, & Widgets
Write Once - Run Many Keep it simple Real-World use Start with PhoneGap, or derivative Case Study - Web, PhoneGap, & Widgets  Objectives
Case Study - Web, PhoneGap, & Widgets  What is PhoneGap? Open Source Wraps a web view with native code You write your app in HTML + JavaScript Provides conduits to device features
PhoneGap has its own JavaScript API Each platform shares some common JavaScript, plus some custom JavaScript Native code creates a web view and creates conduits between that web view and the device’s features. Contacts GPS, etc. Developer writes a single web page Initial testing in desktop browser Final testing on the device  Case Study - Web, PhoneGap, & Widgets  How Does it Work
Case Study - Web, PhoneGap, & Widgets  App - Quadratic Equation Solver Quadratic Equation: ax^2 + bx + c = 0 Easy JavaScript No persistence No native device dependencies (GPS, contacts, etc.). Meaningful on the web, and on mobile devices Nice control point -  Is there a market for something this simple? It shouldn’t get any easier than this
Case Study - Web, PhoneGap, & Widgets  Safari
Case Study - Web, PhoneGap, & Widgets  Safari to Devices
Case Study - Web, PhoneGap, & Widgets  Android PhoneGap
Case Study - Web, PhoneGap, & Widgets  Nokia S60 Widget
Case Study - Web, PhoneGap, & Widgets  Palm Pre (Web OS) ~Widget
Case Study - Web, PhoneGap, & Widgets  iPhone PhoneGap
Case Study - Web, PhoneGap, & Widgets  BlackBerry Widget
Approach works for lots of the platforms This app is currently on iPhone, Android, Ovi app stores Unexpected Benefit Created a little web-based app emulator as sales tool Used Dashcode as WYSIWYG editor Writing ‘Fixer’ code to change Dashcode implementation with cross-platform implementation Case Study - Web, PhoneGap, & Widgets  What Went Well
Case Study - Web, PhoneGap, & Widgets  What Went Badly Not 100% cross platform yet - but close. Learning the common ground of HTML between browsers Very difficult to work with older browsers. Common Storage Model (cookies vs. SQL vs. other) Asynchronous disconnect Difficult to program when one device handles something, like storage, synchronously, but another handles it asynchronously Lack of means to call soft numeric keypad, numlock, etc. Track ball vs. keypad vs. tapping  = impedance mismatch
Case Study - Web, PhoneGap, & Widgets  What Was Unexpected Accessing Device Features (GPS, Contacts, etc) is almost a solved issue JavaScript compatibility is a huge challenge Layout compatibility is also a huge challenge Different HTML capability Different Screen sizes Build scripts made it tolerable Nearly every device has a variations on themes Icon image (various sizes) Title Version
Recommendations
Recommendations What to Know... Know your final platforms / devices Desktop Browser, BlackBerry, Android, Etc. Know which technologies you need Contacts, GPS, High Speed Graphics, etc. Know input modes Numeric Keypad, QWERTY, Trackball, Rockers, etc. Know your aptitude towards making custom extensions Do you need support, or can you hack your own extensions? Know your budget Can you buy your way out of difficulty?
Recommendations What to Do... It depends... Budget Platform Access  Native  Technology Responds to Money Responds to Hacking Titanium ( Appcelerator) $$ x X X Rhomobile $$ x X X J2ME Polish $$ x X x Pure WebApp X Web, PhoneGap, Widget X x X Flash 10.1 (pre-beta) $$ X X
Conclusion
Conclusion Know what you are getting yourself into Be ready to make trade-offs Keep watching the technologies for new developments
Thank You 10 November, 2009 JJ Rohrer Elegant Technologies, LLC eleganttechnologies.com/blog/etr [email_address]
Extra: Widget vs. PhoneGap Widgets are web wrappers written by the device maker This is like PhoneGap, except that device specific Not common API Usually very complete, robust, documented

More Related Content

What's hot (11)

Lecture16
Lecture16Lecture16
Lecture16
Châu Thanh Chương
 
Wrangling Apps in the Smartphone Wild West
Wrangling Apps in the Smartphone Wild WestWrangling Apps in the Smartphone Wild West
Wrangling Apps in the Smartphone Wild West
Ginsburg Design
 
Ibm worklight - going from xpages mobile to native mobile applications
Ibm worklight - going from xpages mobile to native mobile applicationsIbm worklight - going from xpages mobile to native mobile applications
Ibm worklight - going from xpages mobile to native mobile applications
Mark Roden
 
Using Your Mobile Device to Create Amazing Content ATDTK19
Using Your Mobile Device to Create Amazing Content ATDTK19Using Your Mobile Device to Create Amazing Content ATDTK19
Using Your Mobile Device to Create Amazing Content ATDTK19
Nick Floro
 
Singapore Mobile 2.0 & Ux Trends 2009: Scott Weiss
Singapore Mobile 2.0 & Ux Trends 2009: Scott WeissSingapore Mobile 2.0 & Ux Trends 2009: Scott Weiss
Singapore Mobile 2.0 & Ux Trends 2009: Scott Weiss
YOGESH TADWALKAR
 
Synapseindia android app sharing app inventor for android
Synapseindia android app sharing app inventor for androidSynapseindia android app sharing app inventor for android
Synapseindia android app sharing app inventor for android
Synapseindiappsdevelopment
 
Building Mobile Apps for Business
Building Mobile Apps for BusinessBuilding Mobile Apps for Business
Building Mobile Apps for Business
danhermes
 
“Second Screen” Apps Using the Connect SDK
“Second Screen” Apps Using the Connect SDK“Second Screen” Apps Using the Connect SDK
“Second Screen” Apps Using the Connect SDK
reeder29
 
Building Windows 10 Universal Apps with Speech and Cortana
Building Windows 10 Universal Apps with Speech and CortanaBuilding Windows 10 Universal Apps with Speech and Cortana
Building Windows 10 Universal Apps with Speech and Cortana
Nick Landry
 
Prezi vs microsoft_power_point[1]
Prezi vs microsoft_power_point[1]Prezi vs microsoft_power_point[1]
Prezi vs microsoft_power_point[1]
Brandon1111
 
Native v s hybrid
Native v s hybridNative v s hybrid
Native v s hybrid
Kelly Ston
 
Wrangling Apps in the Smartphone Wild West
Wrangling Apps in the Smartphone Wild WestWrangling Apps in the Smartphone Wild West
Wrangling Apps in the Smartphone Wild West
Ginsburg Design
 
Ibm worklight - going from xpages mobile to native mobile applications
Ibm worklight - going from xpages mobile to native mobile applicationsIbm worklight - going from xpages mobile to native mobile applications
Ibm worklight - going from xpages mobile to native mobile applications
Mark Roden
 
Using Your Mobile Device to Create Amazing Content ATDTK19
Using Your Mobile Device to Create Amazing Content ATDTK19Using Your Mobile Device to Create Amazing Content ATDTK19
Using Your Mobile Device to Create Amazing Content ATDTK19
Nick Floro
 
Singapore Mobile 2.0 & Ux Trends 2009: Scott Weiss
Singapore Mobile 2.0 & Ux Trends 2009: Scott WeissSingapore Mobile 2.0 & Ux Trends 2009: Scott Weiss
Singapore Mobile 2.0 & Ux Trends 2009: Scott Weiss
YOGESH TADWALKAR
 
Synapseindia android app sharing app inventor for android
Synapseindia android app sharing app inventor for androidSynapseindia android app sharing app inventor for android
Synapseindia android app sharing app inventor for android
Synapseindiappsdevelopment
 
Building Mobile Apps for Business
Building Mobile Apps for BusinessBuilding Mobile Apps for Business
Building Mobile Apps for Business
danhermes
 
“Second Screen” Apps Using the Connect SDK
“Second Screen” Apps Using the Connect SDK“Second Screen” Apps Using the Connect SDK
“Second Screen” Apps Using the Connect SDK
reeder29
 
Building Windows 10 Universal Apps with Speech and Cortana
Building Windows 10 Universal Apps with Speech and CortanaBuilding Windows 10 Universal Apps with Speech and Cortana
Building Windows 10 Universal Apps with Speech and Cortana
Nick Landry
 
Prezi vs microsoft_power_point[1]
Prezi vs microsoft_power_point[1]Prezi vs microsoft_power_point[1]
Prezi vs microsoft_power_point[1]
Brandon1111
 
Native v s hybrid
Native v s hybridNative v s hybrid
Native v s hybrid
Kelly Ston
 

Similar to Cross Platform Development Strategies with vendor review and PhoneGap case study (20)

HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
Nathan Smith
 
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationOpen Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
Tom Deryckere
 
DevChatt 2011 - PhoneGap: For Fun and Science
DevChatt 2011 - PhoneGap: For Fun and ScienceDevChatt 2011 - PhoneGap: For Fun and Science
DevChatt 2011 - PhoneGap: For Fun and Science
Cameron Kilgore
 
Multi-platform Mobile apps with Phonegap
Multi-platform Mobile apps with PhonegapMulti-platform Mobile apps with Phonegap
Multi-platform Mobile apps with Phonegap
Gautam Chaudhary
 
Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9
Marco Tabor
 
Modern mobile development overview
Modern mobile development overviewModern mobile development overview
Modern mobile development overview
Dima Maleev
 
Rhodes vs Phonegap
Rhodes vs PhonegapRhodes vs Phonegap
Rhodes vs Phonegap
Ankit Shandilya
 
Cross platform-mobile-applications
Cross platform-mobile-applicationsCross platform-mobile-applications
Cross platform-mobile-applications
mailalamin
 
Smartphone App Dev Is Cool
Smartphone App Dev Is CoolSmartphone App Dev Is Cool
Smartphone App Dev Is Cool
Wilfred Mutua Mworia
 
I like i phone and android but know .net
I like i phone and android but know .netI like i phone and android but know .net
I like i phone and android but know .net
Chris Love
 
Mobile and Tablet App Development and Market Share
Mobile and Tablet App Development and Market ShareMobile and Tablet App Development and Market Share
Mobile and Tablet App Development and Market Share
Jeremy Callinan
 
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
Christian Heindel
 
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchJQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
Steve Drucker
 
PhoneGap
PhoneGapPhoneGap
PhoneGap
Doncho Minkov
 
Apps vs. Sites vs. Content - a vendor-agnostic view on building stuff for the...
Apps vs. Sites vs. Content - a vendor-agnostic view on building stuff for the...Apps vs. Sites vs. Content - a vendor-agnostic view on building stuff for the...
Apps vs. Sites vs. Content - a vendor-agnostic view on building stuff for the...
Kai Koenig
 
Developers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th editionDevelopers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th edition
Marco Tabor
 
The Future of Software Development Based on Cloud & Mobile Computing
The Future of Software Development Based on Cloud & Mobile ComputingThe Future of Software Development Based on Cloud & Mobile Computing
The Future of Software Development Based on Cloud & Mobile Computing
Software Park Thailand
 
An introduction to Titanium
An introduction to TitaniumAn introduction to Titanium
An introduction to Titanium
Graham Weldon
 
Mobile and tablet app dev
Mobile and tablet app devMobile and tablet app dev
Mobile and tablet app dev
Jeremy Callinan
 
Bridging the gap
Bridging the gapBridging the gap
Bridging the gap
Anoop Sankar
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
Nathan Smith
 
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationOpen Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
Tom Deryckere
 
DevChatt 2011 - PhoneGap: For Fun and Science
DevChatt 2011 - PhoneGap: For Fun and ScienceDevChatt 2011 - PhoneGap: For Fun and Science
DevChatt 2011 - PhoneGap: For Fun and Science
Cameron Kilgore
 
Multi-platform Mobile apps with Phonegap
Multi-platform Mobile apps with PhonegapMulti-platform Mobile apps with Phonegap
Multi-platform Mobile apps with Phonegap
Gautam Chaudhary
 
Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9
Marco Tabor
 
Modern mobile development overview
Modern mobile development overviewModern mobile development overview
Modern mobile development overview
Dima Maleev
 
Cross platform-mobile-applications
Cross platform-mobile-applicationsCross platform-mobile-applications
Cross platform-mobile-applications
mailalamin
 
I like i phone and android but know .net
I like i phone and android but know .netI like i phone and android but know .net
I like i phone and android but know .net
Chris Love
 
Mobile and Tablet App Development and Market Share
Mobile and Tablet App Development and Market ShareMobile and Tablet App Development and Market Share
Mobile and Tablet App Development and Market Share
Jeremy Callinan
 
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
Christian Heindel
 
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchJQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
Steve Drucker
 
Apps vs. Sites vs. Content - a vendor-agnostic view on building stuff for the...
Apps vs. Sites vs. Content - a vendor-agnostic view on building stuff for the...Apps vs. Sites vs. Content - a vendor-agnostic view on building stuff for the...
Apps vs. Sites vs. Content - a vendor-agnostic view on building stuff for the...
Kai Koenig
 
Developers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th editionDevelopers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th edition
Marco Tabor
 
The Future of Software Development Based on Cloud & Mobile Computing
The Future of Software Development Based on Cloud & Mobile ComputingThe Future of Software Development Based on Cloud & Mobile Computing
The Future of Software Development Based on Cloud & Mobile Computing
Software Park Thailand
 
An introduction to Titanium
An introduction to TitaniumAn introduction to Titanium
An introduction to Titanium
Graham Weldon
 
Mobile and tablet app dev
Mobile and tablet app devMobile and tablet app dev
Mobile and tablet app dev
Jeremy Callinan
 

Recently uploaded (20)

Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 

Cross Platform Development Strategies with vendor review and PhoneGap case study

  • 1. Beyond the BlackBerry Smartphone: Using PhoneGap and Other Strategies to Deploy Applications Across Multiple Devices November 10th, 2009 JJ Rohrer President Elegant Technologies, LLC eleganttechnologies.com/blog/etr
  • 2. Agenda Cross Platform Problem Space Vendors, Options, Strategies Case Study - Web, PhoneGap, & Widgets Recommendations
  • 3. Intro About Me MBA + MS/CS = Trouble Experimenting iPhone WebApp + Staff Pick = Big Head iPhone Native Android BlackBerry Storm N60 Palm Pre Need Better Way So - Let’s look at cross-platform strategies
  • 5. Cross Platform Problem Space Cross Platform Desktop Development as Bad Model Cross Browser Web 2.0 Development as Bad Model Cross Platform for Mobile is New(ish) Beast
  • 6. Cross Platform Problem Space Cross Platform Desktop Development as Bad Model Usually... Big framework J2ME, Adobe Air, GTK Non-native UI Swing, TCL/TK Common Language Output C/C++, Java, Ruby as executable Trades efficiency in execution for code commonality Bad Paradigm for Mobile because... Not efficient Can’t reach all platforms
  • 7. Cross Platform Problem Space Cross Browser Web 2.0 Development as Bad Model Big framework JQuery, Yahoo toolkit, Adobe Air Minimal compatibility with mobile web browsers Non-native UI A common web UI will look out of place on all devices WebApps are bad for mobile because... Breaks “App” paradigm Loses device specific functionality Push, contacts, accelerometers, etc.
  • 8. Cross Platform Problem Space Cross Platform for Mobile is New(ish) Beast Small is beautiful Limited memory, screen, cpu Real UI Differences between platforms Different Look & Feel (Mac vs. PC) Whole Different Metaphors! (Tabs vs. Cards) Different icon sizes, orientations, buttons, etc. Real Language Differences Java is fairly common, but not ubiquitous Android’s OS is way different than iPhone & BlackBerry iPhone only has ObjectiveC, C/C++, & JS in Webview
  • 10. Vendors, Options, Strategies Cross Platform for Mobile is New(ish) Beast Titanium (Appcelerator) Rhomobile J2ME Polish Pure WebApp Web, PhoneGap, Widgets Flash 10.1
  • 11. Vendors, Options, Strategies Capabilities Matrix Cost BB iPhone Palm WebOS S60 Android Win Mobile Safari Chrome Firefox IE 7 Comments Titanium ( Appcelerator) $$ X X Rhomobile $$ X X X X X +Ruby J2ME Polish $$ X X X J2ME w/ macros Pure WebApp - x X x x X x X X X X - Limited access to native Web, PhoneGap, Widget - x X X X X X X X X X - Immature + Unlimited customization Flash 10.1 (pre-beta) $$ X X X X X X X X X X + Adaptive strategies
  • 12. Case Study - Web, PhoneGap, & Widgets
  • 13. Write Once - Run Many Keep it simple Real-World use Start with PhoneGap, or derivative Case Study - Web, PhoneGap, & Widgets Objectives
  • 14. Case Study - Web, PhoneGap, & Widgets What is PhoneGap? Open Source Wraps a web view with native code You write your app in HTML + JavaScript Provides conduits to device features
  • 15. PhoneGap has its own JavaScript API Each platform shares some common JavaScript, plus some custom JavaScript Native code creates a web view and creates conduits between that web view and the device’s features. Contacts GPS, etc. Developer writes a single web page Initial testing in desktop browser Final testing on the device Case Study - Web, PhoneGap, & Widgets How Does it Work
  • 16. Case Study - Web, PhoneGap, & Widgets App - Quadratic Equation Solver Quadratic Equation: ax^2 + bx + c = 0 Easy JavaScript No persistence No native device dependencies (GPS, contacts, etc.). Meaningful on the web, and on mobile devices Nice control point - Is there a market for something this simple? It shouldn’t get any easier than this
  • 17. Case Study - Web, PhoneGap, & Widgets Safari
  • 18. Case Study - Web, PhoneGap, & Widgets Safari to Devices
  • 19. Case Study - Web, PhoneGap, & Widgets Android PhoneGap
  • 20. Case Study - Web, PhoneGap, & Widgets Nokia S60 Widget
  • 21. Case Study - Web, PhoneGap, & Widgets Palm Pre (Web OS) ~Widget
  • 22. Case Study - Web, PhoneGap, & Widgets iPhone PhoneGap
  • 23. Case Study - Web, PhoneGap, & Widgets BlackBerry Widget
  • 24. Approach works for lots of the platforms This app is currently on iPhone, Android, Ovi app stores Unexpected Benefit Created a little web-based app emulator as sales tool Used Dashcode as WYSIWYG editor Writing ‘Fixer’ code to change Dashcode implementation with cross-platform implementation Case Study - Web, PhoneGap, & Widgets What Went Well
  • 25. Case Study - Web, PhoneGap, & Widgets What Went Badly Not 100% cross platform yet - but close. Learning the common ground of HTML between browsers Very difficult to work with older browsers. Common Storage Model (cookies vs. SQL vs. other) Asynchronous disconnect Difficult to program when one device handles something, like storage, synchronously, but another handles it asynchronously Lack of means to call soft numeric keypad, numlock, etc. Track ball vs. keypad vs. tapping = impedance mismatch
  • 26. Case Study - Web, PhoneGap, & Widgets What Was Unexpected Accessing Device Features (GPS, Contacts, etc) is almost a solved issue JavaScript compatibility is a huge challenge Layout compatibility is also a huge challenge Different HTML capability Different Screen sizes Build scripts made it tolerable Nearly every device has a variations on themes Icon image (various sizes) Title Version
  • 28. Recommendations What to Know... Know your final platforms / devices Desktop Browser, BlackBerry, Android, Etc. Know which technologies you need Contacts, GPS, High Speed Graphics, etc. Know input modes Numeric Keypad, QWERTY, Trackball, Rockers, etc. Know your aptitude towards making custom extensions Do you need support, or can you hack your own extensions? Know your budget Can you buy your way out of difficulty?
  • 29. Recommendations What to Do... It depends... Budget Platform Access Native Technology Responds to Money Responds to Hacking Titanium ( Appcelerator) $$ x X X Rhomobile $$ x X X J2ME Polish $$ x X x Pure WebApp X Web, PhoneGap, Widget X x X Flash 10.1 (pre-beta) $$ X X
  • 31. Conclusion Know what you are getting yourself into Be ready to make trade-offs Keep watching the technologies for new developments
  • 32. Thank You 10 November, 2009 JJ Rohrer Elegant Technologies, LLC eleganttechnologies.com/blog/etr [email_address]
  • 33. Extra: Widget vs. PhoneGap Widgets are web wrappers written by the device maker This is like PhoneGap, except that device specific Not common API Usually very complete, robust, documented