SlideShare a Scribd company logo
1 of 24
Developing cross-platform mobile
  applications with PhoneGap


         @ColinEberhardt
Overview

Why cross-platform?
Introduction to PhoneGap
 PhoneGap APIs, History of PhoneGap WP7
A simple PhoneGap application
 How PhoneGap works
A more complex application
 KnockoutJS – MVVM, Property Finder
 iOS ‘view’
Is PhoneGap a viable approach?
Why cross platform?




                      http://bit.ly/gartner-wp7-share
Rewrite for each platform
What is PhoneGap?




                           Phone APIs
              HTML /
             JavaScript
             Application




                           Phone APIs
PhoneGap APIs


  Accelerometer   Events
  Compass         File
  Camera          Geolocation
  Capture         Media
  Connection      Notification
  Contacts        Storage
  Device
PhoneGap for Windows Phone 7

PhoneGap, first stable release, Feb 2009
Matt Lacey, August 2010, initial implementation
PhoneGap for WP7 beta, Sept 2011
Mango roll-out, Oct 2011
Adobe acquires Nitobi, Oct 2011
Property Finder enters Marketplace, Nov 2011
  http://bit.ly/property-finder
WP7 fully supported, Jan 2012
Our first PhoneGap app


PhoneGap application template
  Overview of the various files
   ‘www’ folder - HTML / JS / image assets
   GapSourceDictionary.xml
   Regular WP7 Silverlight files


Simple modification
  Read accelerometer data
How does it work?

                   PhoneGap                 PhoneGap C#
                   JavaScript                   code            Accelerometer

acc.getCurrentPosition()


                           window.external.Notify()
                                                      getAcceleration()



                                                      DispatchResult()


                                 ScriptNotify()
Applications styles

Multi-page applications
  Separate HTML pages
  JavaScript re-loaded between each page
  No state transferred from page-to-page
  Back-button handling required
   http://bit.ly/wp7-multipage-phonegap


Single-page applications
  Page updates as application state changes
   ‘think’ GMail
Twitter Search


       http://knockoutjs.com/

       Demo running FireFox
       Back-button handling
Native look and feel

CSS Styling
  Does not support pressed state


Disable pinch / tap zoom
  Requires some ‘hacking’
  http://bit.ly/suppress-pinch


Gray highlight
  You’re stuck with it!
The WP7 IE9 browser

Pros
 Much better than the pre-mango!
 http://bit.ly/ie9-mobile-features
   Canvas, video, audio
   Many CSS3 features
Cons
 A lack of touch events
 The ‘gray link’ issue
   http://bit.ly/stackoverflow-gray-highlight
Property Finder (video)




The first HTML5-based WP7 app (I think!)
Uncovered a few PhoneGap issues!
Cross platform?


Knockout JS enables the use of MVVM
The ‘view’ code is currently WP7 specific
For iOS use a different view
  http://jquerymobile.com/
Property Finder iOS
PhoneGap Build
Property Finder iOS (video)
Is PhoneGap a viable approach?

Set-up cost is low
  PhoneGap build removes the need for a Mac
  Browser-based testing


Browser specific JavaScript / CSS code
  Often handled by existing JavaScript libraries
  More required if you want to have a native ‘feel’
   Currently most people roll-out an iOS look to Android


WP7 IE9 browser is _almost_ good enough
  Webkit browsers also have major flaws – overflow:scroll
Is PhoneGap a viable approach?




  Create an application with its own identity
The JavaScript advantage

JavaScript is ubiquitous
  Re-use code for a Windows 8 Metro App
  Re-use code for web-app


JavaScript is relatively future proof

Offline applications
  Uses the HTML5 app-cache
   The FT iPad application is a good example
  Frees you from the marketplace
Would I use it? Or go native?



 It depends!
   Project budget
   Number of platforms targeted
   Richness of content being delivered
   Willingness to depart from native UIs
PhoneGap alternatives

MonoTouch
  C# with bindings to native controls
  http://xamarin.com/monotouch


Appcelerator Titanium
  Previously ran JavaScript in browser, now compiles to
  native
  http://www.appcelerator.com/


Adobe Mobile Air
  AS3 running within the Air runtime
  http://www.adobe.com/products/air.html
Questions?




Image credit: Lattice by ColinBroug
(http://www.sxc.hu/photo/1359433)

More Related Content

What's hot

快快樂樂利用 PhoneGap 打造屬於自己的 App
快快樂樂利用 PhoneGap 打造屬於自己的 App快快樂樂利用 PhoneGap 打造屬於自己的 App
快快樂樂利用 PhoneGap 打造屬於自己的 App
ericpi Bi
 
Georges Chitiga - Introduction to Phonegap - HTML5 & JS to native mobile app
Georges Chitiga - Introduction to Phonegap - HTML5 & JS to native mobile appGeorges Chitiga - Introduction to Phonegap - HTML5 & JS to native mobile app
Georges Chitiga - Introduction to Phonegap - HTML5 & JS to native mobile app
Codecamp Romania
 
N2Y4 Mobile Challenge May 2009 San Jose
N2Y4 Mobile Challenge May 2009   San JoseN2Y4 Mobile Challenge May 2009   San Jose
N2Y4 Mobile Challenge May 2009 San Jose
Adhearsion Foundation
 
Kendo UI 101
Kendo UI 101Kendo UI 101
Kendo UI 101
Sam Basu
 
Developing for Windows Phone 7
Developing for Windows Phone 7Developing for Windows Phone 7
Developing for Windows Phone 7
Gergely Orosz
 
10min mobile-app
10min mobile-app10min mobile-app
10min mobile-app
easychen
 

What's hot (20)

PhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JSPhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JS
 
(2015년 상반기) HTML5 및 Hybrid app 최신 동향
(2015년 상반기) HTML5 및 Hybrid app 최신 동향(2015년 상반기) HTML5 및 Hybrid app 최신 동향
(2015년 상반기) HTML5 및 Hybrid app 최신 동향
 
Mobile web application development
Mobile web application developmentMobile web application development
Mobile web application development
 
快快樂樂利用 PhoneGap 打造屬於自己的 App
快快樂樂利用 PhoneGap 打造屬於自己的 App快快樂樂利用 PhoneGap 打造屬於自己的 App
快快樂樂利用 PhoneGap 打造屬於自己的 App
 
Georges Chitiga - Introduction to Phonegap - HTML5 & JS to native mobile app
Georges Chitiga - Introduction to Phonegap - HTML5 & JS to native mobile appGeorges Chitiga - Introduction to Phonegap - HTML5 & JS to native mobile app
Georges Chitiga - Introduction to Phonegap - HTML5 & JS to native mobile app
 
Phonegap/Cordova vs Native Application
Phonegap/Cordova vs Native ApplicationPhonegap/Cordova vs Native Application
Phonegap/Cordova vs Native Application
 
N2Y4 Mobile Challenge May 2009 San Jose
N2Y4 Mobile Challenge May 2009   San JoseN2Y4 Mobile Challenge May 2009   San Jose
N2Y4 Mobile Challenge May 2009 San Jose
 
Apache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application DevelopmentApache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application Development
 
BayJax: Expanding Yahoo! Axis across 3 screens
BayJax: Expanding Yahoo! Axis across 3 screensBayJax: Expanding Yahoo! Axis across 3 screens
BayJax: Expanding Yahoo! Axis across 3 screens
 
Maintainable design
Maintainable designMaintainable design
Maintainable design
 
PhoneGap Day US 2013 - Chrome Packaged Apps
PhoneGap Day US 2013 - Chrome Packaged AppsPhoneGap Day US 2013 - Chrome Packaged Apps
PhoneGap Day US 2013 - Chrome Packaged Apps
 
Vue storefront London PWA meetup
Vue storefront London PWA meetupVue storefront London PWA meetup
Vue storefront London PWA meetup
 
Making HTML5 Work Everywhere
Making HTML5 Work EverywhereMaking HTML5 Work Everywhere
Making HTML5 Work Everywhere
 
Introduction to jQueryMobile
Introduction to jQueryMobileIntroduction to jQueryMobile
Introduction to jQueryMobile
 
HTML5 and jQuery Mobile
HTML5 and jQuery MobileHTML5 and jQuery Mobile
HTML5 and jQuery Mobile
 
Kendo UI 101
Kendo UI 101Kendo UI 101
Kendo UI 101
 
PhoneGap - What It Actually Is
PhoneGap - What It Actually IsPhoneGap - What It Actually Is
PhoneGap - What It Actually Is
 
Performance optimization of vue.js apps with modern js
Performance optimization of vue.js apps with modern jsPerformance optimization of vue.js apps with modern js
Performance optimization of vue.js apps with modern js
 
Developing for Windows Phone 7
Developing for Windows Phone 7Developing for Windows Phone 7
Developing for Windows Phone 7
 
10min mobile-app
10min mobile-app10min mobile-app
10min mobile-app
 

Viewers also liked (6)

ReactiveCocoa and Swift, Better Together
ReactiveCocoa and Swift, Better TogetherReactiveCocoa and Swift, Better Together
ReactiveCocoa and Swift, Better Together
 
Cross platform mobile applications - Touch Tour Chennai
Cross platform mobile applications - Touch Tour ChennaiCross platform mobile applications - Touch Tour Chennai
Cross platform mobile applications - Touch Tour Chennai
 
Reactive cocoa made Simple with Swift
Reactive cocoa made Simple with SwiftReactive cocoa made Simple with Swift
Reactive cocoa made Simple with Swift
 
Building Cross Platform Mobile Applications
Building Cross Platform Mobile ApplicationsBuilding Cross Platform Mobile Applications
Building Cross Platform Mobile Applications
 
Web server
Web serverWeb server
Web server
 
Web servers
Web serversWeb servers
Web servers
 

Similar to Developing cross platform mobile applications with phone gap for windows phone

PhoneGap/PhoneGap Build - Amsterdam Adobe Camp
PhoneGap/PhoneGap Build - Amsterdam Adobe CampPhoneGap/PhoneGap Build - Amsterdam Adobe Camp
PhoneGap/PhoneGap Build - Amsterdam Adobe Camp
Mihai Corlan
 
Brian Le Roux Presentation Introducing Phone Gap
Brian Le Roux Presentation Introducing Phone GapBrian Le Roux Presentation Introducing Phone Gap
Brian Le Roux Presentation Introducing Phone Gap
Ajax Experience 2009
 
Building Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery Mobile
Building Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery MobileBuilding Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery Mobile
Building Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery Mobile
Jon Cortez
 
Getting started with PhoneGap
Getting started with PhoneGapGetting started with PhoneGap
Getting started with PhoneGap
Mihai Corlan
 
Build Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGapBuild Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGap
Allan Huang
 
Building Native Mobile Applications with PhoneGap
Building Native Mobile Applications with PhoneGapBuilding Native Mobile Applications with PhoneGap
Building Native Mobile Applications with PhoneGap
Simon MacDonald
 

Similar to Developing cross platform mobile applications with phone gap for windows phone (20)

PhoneGap
PhoneGapPhoneGap
PhoneGap
 
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
 
PhoneGap/PhoneGap Build - Amsterdam Adobe Camp
PhoneGap/PhoneGap Build - Amsterdam Adobe CampPhoneGap/PhoneGap Build - Amsterdam Adobe Camp
PhoneGap/PhoneGap Build - Amsterdam Adobe Camp
 
Brian Le Roux Presentation Introducing Phone Gap
Brian Le Roux Presentation Introducing Phone GapBrian Le Roux Presentation Introducing Phone Gap
Brian Le Roux Presentation Introducing Phone Gap
 
Intro to PhoneGap
Intro to PhoneGapIntro to PhoneGap
Intro to PhoneGap
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive Summary
 
Building Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery Mobile
Building Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery MobileBuilding Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery Mobile
Building Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery Mobile
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGap
 
Mobile Drupal
Mobile DrupalMobile Drupal
Mobile Drupal
 
Getting started with PhoneGap
Getting started with PhoneGapGetting started with PhoneGap
Getting started with PhoneGap
 
FEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing MojitoFEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing Mojito
 
Build Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGapBuild Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGap
 
What is PhoneGap?
What is PhoneGap?What is PhoneGap?
What is PhoneGap?
 
Cross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case studyCross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case study
 
Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile Apps
 
Phone gap in android technology
Phone gap in android technologyPhone gap in android technology
Phone gap in android technology
 
Developing Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGapDeveloping Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGap
 
Hybrid mobile apps
Hybrid mobile appsHybrid mobile apps
Hybrid mobile apps
 
Building Native Mobile Applications with PhoneGap
Building Native Mobile Applications with PhoneGapBuilding Native Mobile Applications with PhoneGap
Building Native Mobile Applications with PhoneGap
 
Phonegap
PhonegapPhonegap
Phonegap
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

Developing cross platform mobile applications with phone gap for windows phone

  • 1. Developing cross-platform mobile applications with PhoneGap @ColinEberhardt
  • 2. Overview Why cross-platform? Introduction to PhoneGap PhoneGap APIs, History of PhoneGap WP7 A simple PhoneGap application How PhoneGap works A more complex application KnockoutJS – MVVM, Property Finder iOS ‘view’ Is PhoneGap a viable approach?
  • 3. Why cross platform? http://bit.ly/gartner-wp7-share
  • 4. Rewrite for each platform
  • 5. What is PhoneGap? Phone APIs HTML / JavaScript Application Phone APIs
  • 6. PhoneGap APIs Accelerometer Events Compass File Camera Geolocation Capture Media Connection Notification Contacts Storage Device
  • 7. PhoneGap for Windows Phone 7 PhoneGap, first stable release, Feb 2009 Matt Lacey, August 2010, initial implementation PhoneGap for WP7 beta, Sept 2011 Mango roll-out, Oct 2011 Adobe acquires Nitobi, Oct 2011 Property Finder enters Marketplace, Nov 2011 http://bit.ly/property-finder WP7 fully supported, Jan 2012
  • 8. Our first PhoneGap app PhoneGap application template Overview of the various files ‘www’ folder - HTML / JS / image assets GapSourceDictionary.xml Regular WP7 Silverlight files Simple modification Read accelerometer data
  • 9. How does it work? PhoneGap PhoneGap C# JavaScript code Accelerometer acc.getCurrentPosition() window.external.Notify() getAcceleration() DispatchResult() ScriptNotify()
  • 10. Applications styles Multi-page applications Separate HTML pages JavaScript re-loaded between each page No state transferred from page-to-page Back-button handling required http://bit.ly/wp7-multipage-phonegap Single-page applications Page updates as application state changes ‘think’ GMail
  • 11. Twitter Search http://knockoutjs.com/ Demo running FireFox Back-button handling
  • 12. Native look and feel CSS Styling Does not support pressed state Disable pinch / tap zoom Requires some ‘hacking’ http://bit.ly/suppress-pinch Gray highlight You’re stuck with it!
  • 13. The WP7 IE9 browser Pros Much better than the pre-mango! http://bit.ly/ie9-mobile-features Canvas, video, audio Many CSS3 features Cons A lack of touch events The ‘gray link’ issue http://bit.ly/stackoverflow-gray-highlight
  • 14. Property Finder (video) The first HTML5-based WP7 app (I think!) Uncovered a few PhoneGap issues!
  • 15. Cross platform? Knockout JS enables the use of MVVM The ‘view’ code is currently WP7 specific For iOS use a different view http://jquerymobile.com/
  • 19. Is PhoneGap a viable approach? Set-up cost is low PhoneGap build removes the need for a Mac Browser-based testing Browser specific JavaScript / CSS code Often handled by existing JavaScript libraries More required if you want to have a native ‘feel’ Currently most people roll-out an iOS look to Android WP7 IE9 browser is _almost_ good enough Webkit browsers also have major flaws – overflow:scroll
  • 20. Is PhoneGap a viable approach? Create an application with its own identity
  • 21. The JavaScript advantage JavaScript is ubiquitous Re-use code for a Windows 8 Metro App Re-use code for web-app JavaScript is relatively future proof Offline applications Uses the HTML5 app-cache The FT iPad application is a good example Frees you from the marketplace
  • 22. Would I use it? Or go native? It depends! Project budget Number of platforms targeted Richness of content being delivered Willingness to depart from native UIs
  • 23. PhoneGap alternatives MonoTouch C# with bindings to native controls http://xamarin.com/monotouch Appcelerator Titanium Previously ran JavaScript in browser, now compiles to native http://www.appcelerator.com/ Adobe Mobile Air AS3 running within the Air runtime http://www.adobe.com/products/air.html
  • 24. Questions? Image credit: Lattice by ColinBroug (http://www.sxc.hu/photo/1359433)

Editor's Notes

  1. SETUP:PhoneGapStarter app loaded into VS4WP7Emulator started, accelerometer simulator startedFireFox started, pointing to TwitterSearch index page, property finder iOS on other tabVS4Web started with index.html, app.js, twitterSearchViewModel.js, applicationViewModel.js, wp7.css loaded
  2. Why cross-platform? – market shareIntroduction to PhoneGap – basic architecture, history of WP7 version (Matt Lacey), current status, Nitobi / Apache / Callback CordovaDeveloping simple page-based applications – hello world, page navigation, tombstoning, pinch zoom, back-stackjQuery-MobileDeveloping complex applications – structuring our JavaScript, MVVM, Property Finder – how cross platform is this solution?Knockout-JSBack-stack handlingConclusionsIs this a viable approach? – IE9 issues, gray rectangle,MonoTouch / MonoDroid
  3. HTML5 / JavaScript applicationPhoneGap provides: + A packaging mechanism + APIs for features that are outside of the scope of HTML5
  4. Timeline me!
  5. Anatomy of a basic applicationLaunch itdescribe it …‘www’ folder – HTML5 assetsGapSourceDictionary.xaml – files to load into local storage (required because you cannot read XAP content)ManifestProcessor.js – generates the aboveApp, MainPage, icons …Make changes to read accelerometerAdd JavaScriptAdd HTMLDiscuss how the JavaScript API works.
  6. NOTE: This is quite specific to the WP7 implementation of PhoneGap
  7. Execute applicationWalkthroughShow folder structure – mirrors Silverlight applicationKnockout-JS view modelShow how to run within FireFoxBack-button handling
  8. Just play the vid!
  9. NOTE: Horrible code required for vertical scrolling!
  10. Create a UI that works across platforms