SlideShare une entreprise Scribd logo
1  sur  20
Building
native phone
apps using
HTML5
 Imran Qureshi
 VP Engineering
 CareAnyware Inc.
 (Largest SaaS provider for home healthcare agencies since 2002)
About Me
• Bachelors in Computer Science, 1994
• Built slideshow feature in MS PowerPoint (250M
  users)
   • Google “Imran Qureshi easter egg”
• Led effort to rewrite Hotmail in 2003 (50M
  users/day, 364 M/month)                          US Pop.
   • Google “Imran Qureshi Kahuna”             2000 = 281M
                                               2011 = 312M
• 11 patents
Fact or Fiction?
• HTML5 apps can only run when connected to the Interent
• You need a browser to view HTML5 apps
• HTML5 apps can run as native apps and be downloadable from the
  AppStore
• HTML5 apps can access native iOS or Android functionality like
  Camera, File system, GPS, Compass etc
• HTML5 apps look different than native apps
• I need a Mac to build apps for iOS
• I don’t need to know WML to support all mobile phones
• Javascript is slow because it is interpreted
• You need the latest browsers (IE9+) to run an HTML5 app
• Which of the following apps are written in HTML5:
  • Facebook
  • Netflix
  • Angry Birds
Technology Options
               Objective-C     .NET             Java   HTML5
iPhone/iPad    Yes             No*              No     Yes
Android        No              No*              Yes    Yes
Windows        No              Yes              No     Yes
Phone
Symbian        No              No               Yes    Yes
Blackberry     No              No               Yes    Yes
Mac            Yes             No*              Yes    Yes
Web            No              Yes              No**   Yes
Windows 8      No              No(Silverlight   No     Yes
Tablets                        only)


* Mono project has some limited functionality
** Few people have Java installed/enabled
Why use HTML5 to build native
apps?
• No need to learn Objective-C and different SDKs
  • “All of our developers are good at HTML. Only a few of them are
    really good at Objective-C and Android. We are able to make our
    Web developers the same as our client-side developers in some
    respects.” – Dave Fetterman, Facebook's Engineering Manager
• Write once, run everywhere. Easier to test (just use a browser)
• Facebook
  • Facebook CTO: Key high-level focuses for Facebook in 2011 from a
    technology perspective: HTML5 and mobile
  • Project Spartan will allow web apps to run inside Facebook on
    smartphones
• Windows 8 Tablets will run only HTML5 apps and Silverlight
• Huge ecosystem of HTML and jQuery tools/frameworks
Confusion
• People talk about native apps vs. web apps
  • Native apps – written in native code, work outside the browser
  • Web apps – written in HTML/JS, work only in browser



• Native HTML5 apps combine benefits of both
  • Written in HTML/JS but work as a separate app outside the
    browser
Quick Demo
Differences from normal web
• Screen size/look and feel    • Debug
  • jQueryMobile                 • Use Safari on PC
• Offline support                • iPad/iPhone Simulator
  • HTML5 offline web            • Firebug Lite
    pages/offline store        • Deploy/Manage betas
  • PhoneGap offline store       • TestFlight
• Wrap as native apps/access   • Notifications
  phone functions                • Twilio (SMS)
  • PhoneGap                     • Urban airship (iOS/Android)
  • PhoneGap Build             • Down-level
• Client-side code               • Detect phones: WURFL
  • Knockout (Model-View-        • Polyfills for non-HTML5
    ViewModel)                     browsers: modernizer.js
  • jQuery Templates
Architecture

 Your HTML/JS code


 PhoneGap Wrapper    Your native code

  Webkit browser
                           SDK
    runtime

             Native OS
jQuery Mobile
• Automatic scaling
• Multiple pages within one HTML document
• Themes to define OS specific look and feel
Offline support
• PhoneGap
  • Package HTML files as a native app
  • Hosts a “browser” inside a custom app shell




• Offline data
  • Use the HTML5 offline data API
  • OR use PhoneGap offline data API if you need more data
PhoneGap API
• Built-in access to:
  •   Accelerometer
  •   Camera
  •   Compass
  •   GPS
  •   Media
  •   Storage
• You can write native code plugins for additional behavior
  e.g., barcode reader
PhoneGap Build
• Upload files to PhoneGap and it generates native packages for all
  the phones (Also integrates with Git)
Client-side code
• Knockout.js
  • Client-side 2-way databinding
  • Keeps UI and a Javascript data model in sync




• jQuery Templates
  • Create complex HTML by binding to data
  • Similar to ASP.NET repeater except client-side
Debug
• Use Safari/Firefox on PC

• iPad/iPhone Simulator for screenshots

• Firebug Lite on device (just include js file in HTML page)
Deploy
• TestFlight to bypass AppStore during beta
• Over-the-air distribution of new releases
Downlevel
• Non-smartphones
  • Use WURFL to detect
  • Serve plain HTML pages
• Non-HTML5 web browsers
  • Polyfills using modernizer
Notifications
• Twilio web service to send/receive SMS

• Urban Airship web service to send/receive iOS/Android
  notifications
• OR call Apple/Android web services directly
Like this? We’re hiring!
Links
• This presentation and links to all the tools/frameworks
  available at:




    iqcode.wordpress.com

Contenu connexe

Tendances

Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderBuild Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderJeffrey T. Fritz
 
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
 
HTML5 - The Future in a Flash
HTML5 - The Future in a FlashHTML5 - The Future in a Flash
HTML5 - The Future in a FlashRick Snailum
 
Using HTML5 to Build Mobile Apps
Using HTML5 to Build Mobile AppsUsing HTML5 to Build Mobile Apps
Using HTML5 to Build Mobile AppsTodd Anglin
 
Synapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps developmentSynapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps developmentsaritasingh19866
 
Reasons for Flash: Flash Development in an HTML5 and App Store World
Reasons for Flash: Flash Development in an HTML5 and App Store WorldReasons for Flash: Flash Development in an HTML5 and App Store World
Reasons for Flash: Flash Development in an HTML5 and App Store WorldEffectiveUI
 
Tools For Mobile Web Design and App Creation
Tools For Mobile Web Design and App CreationTools For Mobile Web Design and App Creation
Tools For Mobile Web Design and App CreationCarli Spina
 
Firefox operating system
Firefox operating systemFirefox operating system
Firefox operating systemNishant Mehare
 
Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Jeff Haynie
 
Cross Platform HTML5 Mobile Development and the Firefox OS
Cross Platform HTML5 Mobile Development and the Firefox OSCross Platform HTML5 Mobile Development and the Firefox OS
Cross Platform HTML5 Mobile Development and the Firefox OSSMART DevNet
 
8 steps to a long term mobile strategy
8 steps to a long term mobile strategy 8 steps to a long term mobile strategy
8 steps to a long term mobile strategy Kony, Inc.
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?Reto Meier
 
Make Cross Platform Apps that Suck Less
Make Cross Platform Apps that Suck LessMake Cross Platform Apps that Suck Less
Make Cross Platform Apps that Suck Lessjhugman
 
Performance testing of mobile apps
Performance testing of mobile appsPerformance testing of mobile apps
Performance testing of mobile appsvodQA
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapQuang Minh Dao
 
Facebook and Mobile Apps on Azure
Facebook and Mobile Apps on AzureFacebook and Mobile Apps on Azure
Facebook and Mobile Apps on AzureTim Buntel
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for EngineersBrian LeRoux
 
How To Create One App For All Platforms using PhoneGap
How To Create One App For All Platforms using PhoneGapHow To Create One App For All Platforms using PhoneGap
How To Create One App For All Platforms using PhoneGapMobiDev
 

Tendances (20)

Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderBuild Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilder
 
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
 
HTML5 - The Future in a Flash
HTML5 - The Future in a FlashHTML5 - The Future in a Flash
HTML5 - The Future in a Flash
 
Using HTML5 to Build Mobile Apps
Using HTML5 to Build Mobile AppsUsing HTML5 to Build Mobile Apps
Using HTML5 to Build Mobile Apps
 
Synapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps developmentSynapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps development
 
Reasons for Flash: Flash Development in an HTML5 and App Store World
Reasons for Flash: Flash Development in an HTML5 and App Store WorldReasons for Flash: Flash Development in an HTML5 and App Store World
Reasons for Flash: Flash Development in an HTML5 and App Store World
 
Tools For Mobile Web Design and App Creation
Tools For Mobile Web Design and App CreationTools For Mobile Web Design and App Creation
Tools For Mobile Web Design and App Creation
 
Firefox operating system
Firefox operating systemFirefox operating system
Firefox operating system
 
Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0
 
Cross Platform HTML5 Mobile Development and the Firefox OS
Cross Platform HTML5 Mobile Development and the Firefox OSCross Platform HTML5 Mobile Development and the Firefox OS
Cross Platform HTML5 Mobile Development and the Firefox OS
 
8 steps to a long term mobile strategy
8 steps to a long term mobile strategy 8 steps to a long term mobile strategy
8 steps to a long term mobile strategy
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?
 
Make Cross Platform Apps that Suck Less
Make Cross Platform Apps that Suck LessMake Cross Platform Apps that Suck Less
Make Cross Platform Apps that Suck Less
 
Performance testing of mobile apps
Performance testing of mobile appsPerformance testing of mobile apps
Performance testing of mobile apps
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
Facebook and Mobile Apps on Azure
Facebook and Mobile Apps on AzureFacebook and Mobile Apps on Azure
Facebook and Mobile Apps on Azure
 
Phone gap
Phone gapPhone gap
Phone gap
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for Engineers
 
Cache me if you can
Cache me if you canCache me if you can
Cache me if you can
 
How To Create One App For All Platforms using PhoneGap
How To Create One App For All Platforms using PhoneGapHow To Create One App For All Platforms using PhoneGap
How To Create One App For All Platforms using PhoneGap
 

En vedette

Google ppt by amit
Google ppt by amitGoogle ppt by amit
Google ppt by amitDAVV
 
The Internet Presentation
The Internet Presentation The Internet Presentation
The Internet Presentation guest9e3d59
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionIn a Rocket
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanPost Planner
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting PersonalKirsty Hulse
 

En vedette (6)

Google ppt by amit
Google ppt by amitGoogle ppt by amit
Google ppt by amit
 
The Internet Presentation
The Internet Presentation The Internet Presentation
The Internet Presentation
 
How Google Works
How Google WorksHow Google Works
How Google Works
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media Plan
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 

Similaire à 2011 code camp

Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
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.
 
Synapse india reviews on mobile application development
Synapse india reviews on mobile application developmentSynapse india reviews on mobile application development
Synapse india reviews on mobile application developmentsaritasingh19866
 
Cross platform mobile application development
Cross platform mobile application developmentCross platform mobile application development
Cross platform mobile application developmentwebprogr.com
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​FDConf
 
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
 
I knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsI knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsAlius Petraška
 
Making the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGapMaking the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGapRoy Clarkson
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application developmentKunjan Thakkar
 
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha TouchBuilding Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha TouchAxel Buerkle
 
Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015Mike Melusky
 
Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Indiginox
 
Native vs HTML
Native vs HTMLNative vs HTML
Native vs HTMLludlola
 
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
 
Introduction to Phonegap
Introduction to PhonegapIntroduction to Phonegap
Introduction to PhonegapAndrei Firoiu
 
HTML5: Next Generation Web Development
HTML5: Next Generation Web DevelopmentHTML5: Next Generation Web Development
HTML5: Next Generation Web DevelopmentDipesh Mukerji
 
Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with IonicMaulik Bamania
 

Similaire à 2011 code camp (20)

Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
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
 
Synapse india reviews on mobile application development
Synapse india reviews on mobile application developmentSynapse india reviews on mobile application development
Synapse india reviews on mobile application development
 
Cross platform mobile application development
Cross platform mobile application developmentCross platform mobile application development
Cross platform mobile application development
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​
 
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
 
I knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsI knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile apps
 
Mobile app development
Mobile app development  Mobile app development
Mobile app development
 
Making the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGapMaking the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGap
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application development
 
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha TouchBuilding Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
 
Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015
 
Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?
 
Native vs HTML
Native vs HTMLNative vs HTML
Native vs HTML
 
Future of Mobile
Future of MobileFuture of Mobile
Future of Mobile
 
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
 
Introduction to Phonegap
Introduction to PhonegapIntroduction to Phonegap
Introduction to Phonegap
 
HTML5: Next Generation Web Development
HTML5: Next Generation Web DevelopmentHTML5: Next Generation Web Development
HTML5: Next Generation Web Development
 
Multiplatform
MultiplatformMultiplatform
Multiplatform
 
Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with Ionic
 

Dernier

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
[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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Dernier (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
[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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

2011 code camp

  • 1. Building native phone apps using HTML5 Imran Qureshi VP Engineering CareAnyware Inc. (Largest SaaS provider for home healthcare agencies since 2002)
  • 2. About Me • Bachelors in Computer Science, 1994 • Built slideshow feature in MS PowerPoint (250M users) • Google “Imran Qureshi easter egg” • Led effort to rewrite Hotmail in 2003 (50M users/day, 364 M/month) US Pop. • Google “Imran Qureshi Kahuna” 2000 = 281M 2011 = 312M • 11 patents
  • 3. Fact or Fiction? • HTML5 apps can only run when connected to the Interent • You need a browser to view HTML5 apps • HTML5 apps can run as native apps and be downloadable from the AppStore • HTML5 apps can access native iOS or Android functionality like Camera, File system, GPS, Compass etc • HTML5 apps look different than native apps • I need a Mac to build apps for iOS • I don’t need to know WML to support all mobile phones • Javascript is slow because it is interpreted • You need the latest browsers (IE9+) to run an HTML5 app • Which of the following apps are written in HTML5: • Facebook • Netflix • Angry Birds
  • 4. Technology Options Objective-C .NET Java HTML5 iPhone/iPad Yes No* No Yes Android No No* Yes Yes Windows No Yes No Yes Phone Symbian No No Yes Yes Blackberry No No Yes Yes Mac Yes No* Yes Yes Web No Yes No** Yes Windows 8 No No(Silverlight No Yes Tablets only) * Mono project has some limited functionality ** Few people have Java installed/enabled
  • 5. Why use HTML5 to build native apps? • No need to learn Objective-C and different SDKs • “All of our developers are good at HTML. Only a few of them are really good at Objective-C and Android. We are able to make our Web developers the same as our client-side developers in some respects.” – Dave Fetterman, Facebook's Engineering Manager • Write once, run everywhere. Easier to test (just use a browser) • Facebook • Facebook CTO: Key high-level focuses for Facebook in 2011 from a technology perspective: HTML5 and mobile • Project Spartan will allow web apps to run inside Facebook on smartphones • Windows 8 Tablets will run only HTML5 apps and Silverlight • Huge ecosystem of HTML and jQuery tools/frameworks
  • 6. Confusion • People talk about native apps vs. web apps • Native apps – written in native code, work outside the browser • Web apps – written in HTML/JS, work only in browser • Native HTML5 apps combine benefits of both • Written in HTML/JS but work as a separate app outside the browser
  • 8. Differences from normal web • Screen size/look and feel • Debug • jQueryMobile • Use Safari on PC • Offline support • iPad/iPhone Simulator • HTML5 offline web • Firebug Lite pages/offline store • Deploy/Manage betas • PhoneGap offline store • TestFlight • Wrap as native apps/access • Notifications phone functions • Twilio (SMS) • PhoneGap • Urban airship (iOS/Android) • PhoneGap Build • Down-level • Client-side code • Detect phones: WURFL • Knockout (Model-View- • Polyfills for non-HTML5 ViewModel) browsers: modernizer.js • jQuery Templates
  • 9. Architecture Your HTML/JS code PhoneGap Wrapper Your native code Webkit browser SDK runtime Native OS
  • 10. jQuery Mobile • Automatic scaling • Multiple pages within one HTML document • Themes to define OS specific look and feel
  • 11. Offline support • PhoneGap • Package HTML files as a native app • Hosts a “browser” inside a custom app shell • Offline data • Use the HTML5 offline data API • OR use PhoneGap offline data API if you need more data
  • 12. PhoneGap API • Built-in access to: • Accelerometer • Camera • Compass • GPS • Media • Storage • You can write native code plugins for additional behavior e.g., barcode reader
  • 13. PhoneGap Build • Upload files to PhoneGap and it generates native packages for all the phones (Also integrates with Git)
  • 14. Client-side code • Knockout.js • Client-side 2-way databinding • Keeps UI and a Javascript data model in sync • jQuery Templates • Create complex HTML by binding to data • Similar to ASP.NET repeater except client-side
  • 15. Debug • Use Safari/Firefox on PC • iPad/iPhone Simulator for screenshots • Firebug Lite on device (just include js file in HTML page)
  • 16. Deploy • TestFlight to bypass AppStore during beta • Over-the-air distribution of new releases
  • 17. Downlevel • Non-smartphones • Use WURFL to detect • Serve plain HTML pages • Non-HTML5 web browsers • Polyfills using modernizer
  • 18. Notifications • Twilio web service to send/receive SMS • Urban Airship web service to send/receive iOS/Android notifications • OR call Apple/Android web services directly
  • 20. Links • This presentation and links to all the tools/frameworks available at: iqcode.wordpress.com