SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
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/

Contenu connexe

Tendances

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
 

Tendances (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
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Plus 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
 

Plus 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
 

Dernier

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

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/