SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
Cross-Platform Mobile
Development with PhoneGap
by: Vince Bullinger
Mobile March
3/20/2014
About Me
● Vince Bullinger (“vbullinger” everywhere)
● Married (5/08), live in St. Paul, WPI grad (‘04)
● Daughter Zina born 7/4/2011
● Been a consultant/developer since 2005
● Always looking to improve skills
or 11:45AM-12:45PM - Robert Half, US Bancorp Center, Mpls
Agenda
● Compare native, X-platform development
● Why should I care about X-platform?
● PhoneGap vs Xamarin, Appcelerator
● Getting started with PhoneGap
● PhoneGap protips, tools
X-Platform Pros
● Write once, run on multiple major platforms
● One team/IDE/Skillset
● Can save a LOT of money
● Usually in more well-known languages
○ Easy to find talent
○ More support (varying)
○ Reuse code from other projects
X-Platform Cons
● Doesn’t always perform as well (varying)
○ Not specialized for particular device (duh)
○ Doesn’t always provide native experience
● Varying device feature support
○ Some device features may not be supported
○ Can vary by device
○ Can vary by framework
● May take a while to catch up to native updates
● Different appearances/capabilities/OSes
UI Differences
Source:
Apple
Source: javatechig.com
Different Capabilities
● Devices have different:
○ Hardware
○ Features
○ Screen ratios
○ Sizes
○ Screen resolutions
● Use feature detection
● Have fallback functionality
OS-Specific Considerations
● Multi-tasking
● Security
● Database
Test Psychotically
● Have a real, defined testing strategy
● Iterative, frequent
● QA knowledgeable on each device
● Test on actual device, not just emulator
Why Should I Care?
● Want to pick best mobile strategies
● Developers don’t want to code native*
○ 36% want HTML5
○ 32% want cross-platform
○ 15% want native only
* Survey by KendoUI
Cross-Platform Relevance
“The market for cross-platform mobile
development tools exceeds $1.6 billion
right now, and is expected to reach $8.2
billion by 2016.”
- Smiths Points Analytics
Native or X-Platform?
● Choose native when:
○ Need 100% native experience all the time
○ Accessing all device features
○ Only targeting one platform
○ Money is no issue
● Choose cross-platform when:
○ Don’t need to access obscure device features
○ You’re ready for some serious testing strategies
○ Have a restricted budget
PhoneGap
• Free, open-source framework
• Build “native” apps for multiple platforms
• Built using HTML, CSS, JavaScript
– Large communities :)
• API allows access to device features
– Accelerometer
– Camera
– Microphone
– File system
– A few more
How PhoneGap Works
PhoneGap Cons
• API support varies
• HTML, CSS, JavaScript only
• Not really native apps…
• Serious apps obviously not native
• Big apps can have slow startup
• Shouldn’t be used for complicated apps
– Shell that connects to web server for real work
– Won’t be consistent if using all native functionality
When To Use?
● Your web developers can PhoneGap now
● Small budget
● Uncomplicated app
● First foray into mobile development
● It is not best for large/complicated apps
○ Your app probably doesn’t fall under those categories
● Won’t have native look and feel
○ Not native apps
○ Localized mobile website with basic device API
• C# code
– Lambdas
– Generics
– LINQ
– All your other stuff...
• Compiles to native binary
– IL + JIT (Android)
– ARM binary + AOT (iOS)
Xamarin
How Xamarin Works
Quasi stolen from http://xamarin.com/how-it-works
Xamarin Cons
● Still need separate UIs
○ Good thing?
○ Needs to be a factor in architecture
decisions
● Separate device APIs
○ Xamarin.Mobile
■ Contacts
■ Camera
■ Geolocation
● Basic Xamarin Studio is free, useless
When to Use?
● Want as close to native as possible
● .Net shop
● Got some money to spend
Titanium
• Build apps using JavaScript
– Like PhoneGap
• Compiles to 100% real app
– Like Xamarin
– Unlike PhoneGap
• Cross-platform UIs
– Unlike Xamarin
• Robust JavaScript access to native APIs
• Titanium Studio is free
How Titanium Works
+
+
Titanium Cons
Making UIs Identical
• Don’t do it
• It’s dumb
• Rely on native look and feel
When to Use?
● Your team is/can be strong w/web development
● Familiar with Eclipse
● PhoneGap won’t do
○ Too complicated
○ Not enough device support
○ Need high-quality app with native look and feel
● Enough money to open pocket book
● Ready to sacrifice a bit of UI control
○ Rely on native look and feel
○ Lowest common denominator
PhoneGap History
● Started at 2008 iPhoneDevCamp by Nitobi
○ quickly added Android, Blackberry support
● ‘09 Web 2.0 Expo Launchpad Peoples' Choice
● Adobe acquires Nitobi in 2011
● PhoneGap now part of Cordova
○ PhoneGap: open source
○ Cordova: proprietary
● PhoneGap’s aim:
○ Fulfill W3C specifications
○ Until browsers do
Getting Started
● IDEs
● APIs
● Emulating
● Building
IDEs
● Whatever you want!
● IDEs usually have plugins
● Have a Mac? Use XCode
● IBM Worklight - Eclipse plugin
○ Mobile websites, hybrid or native apps
○ Very PhoneGap-friendly
● AppBuilder (formerly Icenium)
○ Most PhoneGap-centric IDE
○ Part of Telerik Platform
○ Visual Studio plugin
DEMO
PhoneGap APIs
● navigator.*
○ accelerometer
○ compass
○ contacts
○ device.capture.capture[Audio|Image|Video]
○ geolocation
○ network
● window.requestFileSystem
● alert - native!
● Almost always asynchronous
Emulation
DEMO
Building PhoneGap Native Apps
Building PhoneGap Native Apps
Building PhoneGap Native Apps
Building PhoneGap Native Apps
● Download SDK for every device
● I’ll check back in next week
… or...
● Let PhoneGap build service compile it
Building PhoneGap Native Apps
DEMO
● Create web apps optimized for mobile
○ Touch optimized (buttons)
○ Uses responsive layout (inputs/labels)
○ Elements automatically adapt to device sizes
○ Supports range of platforms, devices
● Progressive enhancement
○ Always display basic content
○ Show richer display to powerful browsers
● Themeable - themeroller.jquerymobile.com
jQuery Mobile
● Ajaxified navigation
○ Hijacks links
○ Get linked url behind scenes
○ Append to DOM
○ Then smoothly transition
○ Supports back button, prefetching, caching
● jQuery Mobile alternatives
○ Sencha Touch
○ Dojo Mobile
○ Kendo UI
jQuery Mobile
Demo
References
● This presentation: bit.ly/PhoneGapMM
● Speaker rate: http://bit.ly/1j71KDY
● http://phonegap.com
● http://xamarin.com
● http://appcelerator.com
● http://jquerymobile.com/
● http://www.phonegapessentials.com/
● http://build.phonegap.com
● http://techmasters-tc.com/

Más contenido relacionado

La actualidad más candente

Multi-platform Mobile apps with Phonegap
Multi-platform Mobile apps with PhonegapMulti-platform Mobile apps with Phonegap
Multi-platform Mobile apps with PhonegapGautam Chaudhary
 
Cross Platform Mobile App Development
Cross Platform Mobile App DevelopmentCross Platform Mobile App Development
Cross Platform Mobile App DevelopmentAnnmarie Lanesey
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapQuang Minh Dao
 
Building Mobile Application Using PhoneGap
Building Mobile Application Using PhoneGapBuilding Mobile Application Using PhoneGap
Building Mobile Application Using PhoneGapRajashekar Bhagavatula
 
Cross-platform App Development Company
Cross-platform App Development CompanyCross-platform App Development Company
Cross-platform App Development CompanyThe NineHertz
 
Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020Devathon
 
iOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group MeetingiOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group MeetingJim Tochterman
 
Rapid Prototyping with Cordova aka Phonegap
Rapid Prototyping with Cordova aka PhonegapRapid Prototyping with Cordova aka Phonegap
Rapid Prototyping with Cordova aka PhonegapJosue Bustos
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Developmenttechugo
 
Flutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaFlutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaEdureka!
 
Native v s hybrid
Native v s hybridNative v s hybrid
Native v s hybridKelly Ston
 
Mobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross PlatformMobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross PlatformDamodar Puthiya
 
Mobile application development strategy and execution
Mobile application development   strategy and executionMobile application development   strategy and execution
Mobile application development strategy and executionInnoTech
 
BlackBerry WebWorks
BlackBerry WebWorksBlackBerry WebWorks
BlackBerry WebWorksJosue Bustos
 
DroidCon 2011: Developing HTML5 and hybrid Android apps using Phonegap
DroidCon 2011: Developing HTML5 and hybrid Android apps using PhonegapDroidCon 2011: Developing HTML5 and hybrid Android apps using Phonegap
DroidCon 2011: Developing HTML5 and hybrid Android apps using PhonegapAyushman Jain
 
Cross Platform Development with Xamarin
Cross Platform Development with XamarinCross Platform Development with Xamarin
Cross Platform Development with XamarinXpand IT
 

La actualidad más candente (20)

Multi-platform Mobile apps with Phonegap
Multi-platform Mobile apps with PhonegapMulti-platform Mobile apps with Phonegap
Multi-platform Mobile apps with Phonegap
 
flutter.school #HelloWorld
flutter.school #HelloWorldflutter.school #HelloWorld
flutter.school #HelloWorld
 
Cross Platform Mobile App Development
Cross Platform Mobile App DevelopmentCross Platform Mobile App Development
Cross Platform Mobile App Development
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
Building Mobile Application Using PhoneGap
Building Mobile Application Using PhoneGapBuilding Mobile Application Using PhoneGap
Building Mobile Application Using PhoneGap
 
Cross-platform App Development Company
Cross-platform App Development CompanyCross-platform App Development Company
Cross-platform App Development Company
 
Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020
 
iOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group MeetingiOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group Meeting
 
Flutter rev cx
Flutter rev cxFlutter rev cx
Flutter rev cx
 
Rapid Prototyping with Cordova aka Phonegap
Rapid Prototyping with Cordova aka PhonegapRapid Prototyping with Cordova aka Phonegap
Rapid Prototyping with Cordova aka Phonegap
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Development
 
Flutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaFlutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | Edureka
 
Presentation
PresentationPresentation
Presentation
 
Native v s hybrid
Native v s hybridNative v s hybrid
Native v s hybrid
 
Mobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross PlatformMobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross Platform
 
Mobile application development strategy and execution
Mobile application development   strategy and executionMobile application development   strategy and execution
Mobile application development strategy and execution
 
BlackBerry WebWorks
BlackBerry WebWorksBlackBerry WebWorks
BlackBerry WebWorks
 
DroidCon 2011: Developing HTML5 and hybrid Android apps using Phonegap
DroidCon 2011: Developing HTML5 and hybrid Android apps using PhonegapDroidCon 2011: Developing HTML5 and hybrid Android apps using Phonegap
DroidCon 2011: Developing HTML5 and hybrid Android apps using Phonegap
 
Cross Platform Development with Xamarin
Cross Platform Development with XamarinCross Platform Development with Xamarin
Cross Platform Development with Xamarin
 
All About Phonegap
All About Phonegap All About Phonegap
All About Phonegap
 

Destacado

Cross-Platform Mobile Development with Titanium
Cross-Platform Mobile Development with TitaniumCross-Platform Mobile Development with Titanium
Cross-Platform Mobile Development with TitaniumVance Lucas
 
Mobile Cross Platform Development - AIR - PhoneGap - Hybrid vs Native
Mobile Cross Platform Development - AIR - PhoneGap - Hybrid vs NativeMobile Cross Platform Development - AIR - PhoneGap - Hybrid vs Native
Mobile Cross Platform Development - AIR - PhoneGap - Hybrid vs NativeLaurent Jayr
 
Developing and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual StudioDeveloping and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual StudioXamarin
 
Cross platform mobile development
Cross platform mobile developmentCross platform mobile development
Cross platform mobile developmentPeter Friese
 
Introduction to Xamarin.Forms
Introduction to Xamarin.FormsIntroduction to Xamarin.Forms
Introduction to Xamarin.FormsXamarin
 
Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4Xamarin
 

Destacado (7)

Cross-Platform Mobile Development with Titanium
Cross-Platform Mobile Development with TitaniumCross-Platform Mobile Development with Titanium
Cross-Platform Mobile Development with Titanium
 
Mobile Cross Platform Development - AIR - PhoneGap - Hybrid vs Native
Mobile Cross Platform Development - AIR - PhoneGap - Hybrid vs NativeMobile Cross Platform Development - AIR - PhoneGap - Hybrid vs Native
Mobile Cross Platform Development - AIR - PhoneGap - Hybrid vs Native
 
Developing and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual StudioDeveloping and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual Studio
 
Xamarin.Forms
Xamarin.FormsXamarin.Forms
Xamarin.Forms
 
Cross platform mobile development
Cross platform mobile developmentCross platform mobile development
Cross platform mobile development
 
Introduction to Xamarin.Forms
Introduction to Xamarin.FormsIntroduction to Xamarin.Forms
Introduction to Xamarin.Forms
 
Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4
 

Similar a Cross-Platform Mobile Development with PhoneGap-Vince Bullinger

2011 code camp
2011 code camp2011 code camp
2011 code campimranq2
 
Apache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application DevelopmentApache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application Developmentthedumbterminal
 
Comparing multi-platform mobile apps frameworks
Comparing multi-platform mobile apps frameworksComparing multi-platform mobile apps frameworks
Comparing multi-platform mobile apps frameworksAmandine Tihon
 
Mobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-TechnicalMobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-TechnicalJames Quick
 
Native vs HTML
Native vs HTMLNative vs HTML
Native vs HTMLludlola
 
uMobile, I’m Mobile, We’re All Mobile!!
uMobile, I’m Mobile, We’re All Mobile!!uMobile, I’m Mobile, We’re All Mobile!!
uMobile, I’m Mobile, We’re All Mobile!!Aaron Grant
 
Mobeers waterloo-2011
Mobeers waterloo-2011Mobeers waterloo-2011
Mobeers waterloo-2011Brian LeRoux
 
Cross platform mobile application development
Cross platform mobile application developmentCross platform mobile application development
Cross platform mobile application developmentwebprogr.com
 
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
 
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
 
Phonegap - Girl Geek Sydney
Phonegap - Girl Geek SydneyPhonegap - Girl Geek Sydney
Phonegap - Girl Geek SydneyGeorgi Knox
 
Creating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing ToolkitCreating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing ToolkitChad Udell
 
Post Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development PlatformsPost Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development PlatformsBarcoding, Inc.
 
Mobile Development: HTML5 Vs. Native
Mobile Development: HTML5 Vs. NativeMobile Development: HTML5 Vs. Native
Mobile Development: HTML5 Vs. NativeSynerzip
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapNick Landry
 
Mobile Joomla Stragies & Techniques
Mobile Joomla Stragies & TechniquesMobile Joomla Stragies & Techniques
Mobile Joomla Stragies & TechniquesCory Webb
 
PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010alunny
 

Similar a Cross-Platform Mobile Development with PhoneGap-Vince Bullinger (20)

2011 code camp
2011 code camp2011 code camp
2011 code camp
 
Apache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application DevelopmentApache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application Development
 
Getting started with PhoneGap
Getting started with PhoneGapGetting started with PhoneGap
Getting started with PhoneGap
 
Comparing multi-platform mobile apps frameworks
Comparing multi-platform mobile apps frameworksComparing multi-platform mobile apps frameworks
Comparing multi-platform mobile apps frameworks
 
Mobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-TechnicalMobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-Technical
 
Phone gap
Phone gapPhone gap
Phone gap
 
Native vs HTML
Native vs HTMLNative vs HTML
Native vs HTML
 
uMobile, I’m Mobile, We’re All Mobile!!
uMobile, I’m Mobile, We’re All Mobile!!uMobile, I’m Mobile, We’re All Mobile!!
uMobile, I’m Mobile, We’re All Mobile!!
 
Future of Mobile
Future of MobileFuture of Mobile
Future of Mobile
 
Mobeers waterloo-2011
Mobeers waterloo-2011Mobeers waterloo-2011
Mobeers waterloo-2011
 
Cross platform mobile application development
Cross platform mobile application developmentCross platform mobile application development
Cross platform mobile application development
 
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
 
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...
 
Phonegap - Girl Geek Sydney
Phonegap - Girl Geek SydneyPhonegap - Girl Geek Sydney
Phonegap - Girl Geek Sydney
 
Creating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing ToolkitCreating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing Toolkit
 
Post Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development PlatformsPost Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development Platforms
 
Mobile Development: HTML5 Vs. Native
Mobile Development: HTML5 Vs. NativeMobile Development: HTML5 Vs. Native
Mobile Development: HTML5 Vs. Native
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
 
Mobile Joomla Stragies & Techniques
Mobile Joomla Stragies & TechniquesMobile Joomla Stragies & Techniques
Mobile Joomla Stragies & Techniques
 
PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010
 

Más de Mobile March

You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...
You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...
You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...Mobile March
 
Building Wearables-Kristina Durivage
Building Wearables-Kristina DurivageBuilding Wearables-Kristina Durivage
Building Wearables-Kristina DurivageMobile March
 
The Blossoming Internet of Things Zach Supalla-Spark
The Blossoming Internet of Things Zach Supalla-SparkThe Blossoming Internet of Things Zach Supalla-Spark
The Blossoming Internet of Things Zach Supalla-SparkMobile March
 
LiveCode Cross-Platform Development-Joel Gerdeen
LiveCode Cross-Platform Development-Joel GerdeenLiveCode Cross-Platform Development-Joel Gerdeen
LiveCode Cross-Platform Development-Joel GerdeenMobile March
 
The Mobile Evolution‚ Systems vs. Apps - Matthew David
The Mobile Evolution‚ Systems vs. Apps - Matthew DavidThe Mobile Evolution‚ Systems vs. Apps - Matthew David
The Mobile Evolution‚ Systems vs. Apps - Matthew DavidMobile March
 
Unity-Beyond Games! - Josh Ruis
Unity-Beyond Games! - Josh RuisUnity-Beyond Games! - Josh Ruis
Unity-Beyond Games! - Josh RuisMobile March
 
IP for Mobile Startups -Ernest Grumbles
IP for Mobile Startups -Ernest GrumblesIP for Mobile Startups -Ernest Grumbles
IP for Mobile Startups -Ernest GrumblesMobile March
 
Using Chipmunk Physics to create a iOS Game - Scott Lembcke
Using Chipmunk Physics to create a iOS Game - Scott LembckeUsing Chipmunk Physics to create a iOS Game - Scott Lembcke
Using Chipmunk Physics to create a iOS Game - Scott LembckeMobile March
 
Using Mobile to Achieve Truly Integrated Marketing - Curt Prins
Using Mobile to Achieve Truly Integrated Marketing - Curt PrinsUsing Mobile to Achieve Truly Integrated Marketing - Curt Prins
Using Mobile to Achieve Truly Integrated Marketing - Curt PrinsMobile March
 
Introduction to Core Data - Jason Shapiro
Introduction to Core Data - Jason ShapiroIntroduction to Core Data - Jason Shapiro
Introduction to Core Data - Jason ShapiroMobile March
 
Developing Custom iOs Applications for Enterprise
Developing Custom iOs Applications for EnterpriseDeveloping Custom iOs Applications for Enterprise
Developing Custom iOs Applications for EnterpriseMobile March
 
Product Management for Your App
Product Management for Your AppProduct Management for Your App
Product Management for Your AppMobile March
 
Dueling Banjos: Inter-app Communication
Dueling Banjos: Inter-app Communication Dueling Banjos: Inter-app Communication
Dueling Banjos: Inter-app Communication Mobile March
 
Guy Thier Keynote Presentation
Guy Thier Keynote PresentationGuy Thier Keynote Presentation
Guy Thier Keynote PresentationMobile March
 
Mobile March Olson presentation 2012
Mobile March Olson presentation 2012Mobile March Olson presentation 2012
Mobile March Olson presentation 2012Mobile March
 
Bannin mobile march_2012_public
Bannin mobile march_2012_publicBannin mobile march_2012_public
Bannin mobile march_2012_publicMobile March
 
Beginningi os part1-bobmccune
Beginningi os part1-bobmccuneBeginningi os part1-bobmccune
Beginningi os part1-bobmccuneMobile March
 
Mobile march2012 android101-pt2
Mobile march2012 android101-pt2Mobile march2012 android101-pt2
Mobile march2012 android101-pt2Mobile March
 
Mobile march2012 android101-pt1
Mobile march2012 android101-pt1Mobile march2012 android101-pt1
Mobile march2012 android101-pt1Mobile March
 

Más de Mobile March (20)

You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...
You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...
You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...
 
Building Wearables-Kristina Durivage
Building Wearables-Kristina DurivageBuilding Wearables-Kristina Durivage
Building Wearables-Kristina Durivage
 
The Blossoming Internet of Things Zach Supalla-Spark
The Blossoming Internet of Things Zach Supalla-SparkThe Blossoming Internet of Things Zach Supalla-Spark
The Blossoming Internet of Things Zach Supalla-Spark
 
LiveCode Cross-Platform Development-Joel Gerdeen
LiveCode Cross-Platform Development-Joel GerdeenLiveCode Cross-Platform Development-Joel Gerdeen
LiveCode Cross-Platform Development-Joel Gerdeen
 
The Mobile Evolution‚ Systems vs. Apps - Matthew David
The Mobile Evolution‚ Systems vs. Apps - Matthew DavidThe Mobile Evolution‚ Systems vs. Apps - Matthew David
The Mobile Evolution‚ Systems vs. Apps - Matthew David
 
Unity-Beyond Games! - Josh Ruis
Unity-Beyond Games! - Josh RuisUnity-Beyond Games! - Josh Ruis
Unity-Beyond Games! - Josh Ruis
 
IP for Mobile Startups -Ernest Grumbles
IP for Mobile Startups -Ernest GrumblesIP for Mobile Startups -Ernest Grumbles
IP for Mobile Startups -Ernest Grumbles
 
Using Chipmunk Physics to create a iOS Game - Scott Lembcke
Using Chipmunk Physics to create a iOS Game - Scott LembckeUsing Chipmunk Physics to create a iOS Game - Scott Lembcke
Using Chipmunk Physics to create a iOS Game - Scott Lembcke
 
Using Mobile to Achieve Truly Integrated Marketing - Curt Prins
Using Mobile to Achieve Truly Integrated Marketing - Curt PrinsUsing Mobile to Achieve Truly Integrated Marketing - Curt Prins
Using Mobile to Achieve Truly Integrated Marketing - Curt Prins
 
Introduction to Core Data - Jason Shapiro
Introduction to Core Data - Jason ShapiroIntroduction to Core Data - Jason Shapiro
Introduction to Core Data - Jason Shapiro
 
Developing Custom iOs Applications for Enterprise
Developing Custom iOs Applications for EnterpriseDeveloping Custom iOs Applications for Enterprise
Developing Custom iOs Applications for Enterprise
 
Product Management for Your App
Product Management for Your AppProduct Management for Your App
Product Management for Your App
 
Robotium Tutorial
Robotium TutorialRobotium Tutorial
Robotium Tutorial
 
Dueling Banjos: Inter-app Communication
Dueling Banjos: Inter-app Communication Dueling Banjos: Inter-app Communication
Dueling Banjos: Inter-app Communication
 
Guy Thier Keynote Presentation
Guy Thier Keynote PresentationGuy Thier Keynote Presentation
Guy Thier Keynote Presentation
 
Mobile March Olson presentation 2012
Mobile March Olson presentation 2012Mobile March Olson presentation 2012
Mobile March Olson presentation 2012
 
Bannin mobile march_2012_public
Bannin mobile march_2012_publicBannin mobile march_2012_public
Bannin mobile march_2012_public
 
Beginningi os part1-bobmccune
Beginningi os part1-bobmccuneBeginningi os part1-bobmccune
Beginningi os part1-bobmccune
 
Mobile march2012 android101-pt2
Mobile march2012 android101-pt2Mobile march2012 android101-pt2
Mobile march2012 android101-pt2
 
Mobile march2012 android101-pt1
Mobile march2012 android101-pt1Mobile march2012 android101-pt1
Mobile march2012 android101-pt1
 

Último

Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Último (20)

Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Cross-Platform Mobile Development with PhoneGap-Vince Bullinger

  • 1. Cross-Platform Mobile Development with PhoneGap by: Vince Bullinger Mobile March 3/20/2014
  • 2. About Me ● Vince Bullinger (“vbullinger” everywhere) ● Married (5/08), live in St. Paul, WPI grad (‘04) ● Daughter Zina born 7/4/2011 ● Been a consultant/developer since 2005 ● Always looking to improve skills
  • 3. or 11:45AM-12:45PM - Robert Half, US Bancorp Center, Mpls
  • 4. Agenda ● Compare native, X-platform development ● Why should I care about X-platform? ● PhoneGap vs Xamarin, Appcelerator ● Getting started with PhoneGap ● PhoneGap protips, tools
  • 5. X-Platform Pros ● Write once, run on multiple major platforms ● One team/IDE/Skillset ● Can save a LOT of money ● Usually in more well-known languages ○ Easy to find talent ○ More support (varying) ○ Reuse code from other projects
  • 6. X-Platform Cons ● Doesn’t always perform as well (varying) ○ Not specialized for particular device (duh) ○ Doesn’t always provide native experience ● Varying device feature support ○ Some device features may not be supported ○ Can vary by device ○ Can vary by framework ● May take a while to catch up to native updates ● Different appearances/capabilities/OSes
  • 8. Different Capabilities ● Devices have different: ○ Hardware ○ Features ○ Screen ratios ○ Sizes ○ Screen resolutions ● Use feature detection ● Have fallback functionality
  • 10. Test Psychotically ● Have a real, defined testing strategy ● Iterative, frequent ● QA knowledgeable on each device ● Test on actual device, not just emulator
  • 11. Why Should I Care? ● Want to pick best mobile strategies ● Developers don’t want to code native* ○ 36% want HTML5 ○ 32% want cross-platform ○ 15% want native only * Survey by KendoUI
  • 12. Cross-Platform Relevance “The market for cross-platform mobile development tools exceeds $1.6 billion right now, and is expected to reach $8.2 billion by 2016.” - Smiths Points Analytics
  • 13. Native or X-Platform? ● Choose native when: ○ Need 100% native experience all the time ○ Accessing all device features ○ Only targeting one platform ○ Money is no issue ● Choose cross-platform when: ○ Don’t need to access obscure device features ○ You’re ready for some serious testing strategies ○ Have a restricted budget
  • 14. PhoneGap • Free, open-source framework • Build “native” apps for multiple platforms • Built using HTML, CSS, JavaScript – Large communities :) • API allows access to device features – Accelerometer – Camera – Microphone – File system – A few more
  • 16. PhoneGap Cons • API support varies • HTML, CSS, JavaScript only • Not really native apps… • Serious apps obviously not native • Big apps can have slow startup • Shouldn’t be used for complicated apps – Shell that connects to web server for real work – Won’t be consistent if using all native functionality
  • 17. When To Use? ● Your web developers can PhoneGap now ● Small budget ● Uncomplicated app ● First foray into mobile development ● It is not best for large/complicated apps ○ Your app probably doesn’t fall under those categories ● Won’t have native look and feel ○ Not native apps ○ Localized mobile website with basic device API
  • 18. • C# code – Lambdas – Generics – LINQ – All your other stuff... • Compiles to native binary – IL + JIT (Android) – ARM binary + AOT (iOS) Xamarin
  • 19. How Xamarin Works Quasi stolen from http://xamarin.com/how-it-works
  • 20. Xamarin Cons ● Still need separate UIs ○ Good thing? ○ Needs to be a factor in architecture decisions ● Separate device APIs ○ Xamarin.Mobile ■ Contacts ■ Camera ■ Geolocation ● Basic Xamarin Studio is free, useless
  • 21. When to Use? ● Want as close to native as possible ● .Net shop ● Got some money to spend
  • 22. Titanium • Build apps using JavaScript – Like PhoneGap • Compiles to 100% real app – Like Xamarin – Unlike PhoneGap • Cross-platform UIs – Unlike Xamarin • Robust JavaScript access to native APIs • Titanium Studio is free
  • 25. Making UIs Identical • Don’t do it • It’s dumb • Rely on native look and feel
  • 26. When to Use? ● Your team is/can be strong w/web development ● Familiar with Eclipse ● PhoneGap won’t do ○ Too complicated ○ Not enough device support ○ Need high-quality app with native look and feel ● Enough money to open pocket book ● Ready to sacrifice a bit of UI control ○ Rely on native look and feel ○ Lowest common denominator
  • 27. PhoneGap History ● Started at 2008 iPhoneDevCamp by Nitobi ○ quickly added Android, Blackberry support ● ‘09 Web 2.0 Expo Launchpad Peoples' Choice ● Adobe acquires Nitobi in 2011 ● PhoneGap now part of Cordova ○ PhoneGap: open source ○ Cordova: proprietary ● PhoneGap’s aim: ○ Fulfill W3C specifications ○ Until browsers do
  • 28. Getting Started ● IDEs ● APIs ● Emulating ● Building
  • 29. IDEs ● Whatever you want! ● IDEs usually have plugins ● Have a Mac? Use XCode ● IBM Worklight - Eclipse plugin ○ Mobile websites, hybrid or native apps ○ Very PhoneGap-friendly ● AppBuilder (formerly Icenium) ○ Most PhoneGap-centric IDE ○ Part of Telerik Platform ○ Visual Studio plugin
  • 30.
  • 31. DEMO
  • 32. PhoneGap APIs ● navigator.* ○ accelerometer ○ compass ○ contacts ○ device.capture.capture[Audio|Image|Video] ○ geolocation ○ network ● window.requestFileSystem ● alert - native! ● Almost always asynchronous
  • 33.
  • 35. DEMO
  • 39. Building PhoneGap Native Apps ● Download SDK for every device ● I’ll check back in next week … or...
  • 40. ● Let PhoneGap build service compile it Building PhoneGap Native Apps
  • 41. DEMO
  • 42. ● Create web apps optimized for mobile ○ Touch optimized (buttons) ○ Uses responsive layout (inputs/labels) ○ Elements automatically adapt to device sizes ○ Supports range of platforms, devices ● Progressive enhancement ○ Always display basic content ○ Show richer display to powerful browsers ● Themeable - themeroller.jquerymobile.com jQuery Mobile
  • 43. ● Ajaxified navigation ○ Hijacks links ○ Get linked url behind scenes ○ Append to DOM ○ Then smoothly transition ○ Supports back button, prefetching, caching ● jQuery Mobile alternatives ○ Sencha Touch ○ Dojo Mobile ○ Kendo UI jQuery Mobile
  • 44. Demo
  • 45. References ● This presentation: bit.ly/PhoneGapMM ● Speaker rate: http://bit.ly/1j71KDY ● http://phonegap.com ● http://xamarin.com ● http://appcelerator.com ● http://jquerymobile.com/ ● http://www.phonegapessentials.com/ ● http://build.phonegap.com ● http://techmasters-tc.com/