SlideShare une entreprise Scribd logo
1  sur  35
Cross platform
                          mobile apps
                      with javascript/html5
                                  Emiel van Liere
                         Mobile Development Team Leader
                                      Hyves
                                 (emiel@hyves.nl)



Friday, March 9, 12                                       1
Friday, March 9, 12   2
Friday, March 9, 12   3
Friday, March 9, 12   4
Friday, March 9, 12   5
Friday, March 9, 12        6

overview of all our apps
Hybrid?




Friday, March 9, 12             7
Hybrid?
                Application that can be installed on a device and has
                access to native components (camera, push notifications)
                but most -if not all- of the logic and UI is implemented
                with html, css and javascript




Friday, March 9, 12                                                        8
Hybrid

                      • Hyves: camera, image library, photo upload,
                        push notifications, (dialogs, keyboard)
                      • Hyves: UI and logic implemented with html
                        and javascript
                      • Linkedin, Facebook: native UI controllers

                                            9
Friday, March 9, 12                                                   9
Why?




Friday, March 9, 12                                                      10

- already have native apps for ios, android, blackberry so why hybrid?
But why?

                      • Cross platform development: build once, run
                        anywhere
                      • Release when you want
                      • Mobile website for “free”
                      • Easier to get developers

                                                 11
Friday, March 9, 12                                                     11

-   xplatform example: predictions, lays campaign
-   release: AGILE no more appstore approval, easy bugfixes
-   app is actually a bundled website, nice for notifications in email
-   hyves: lots of experience with web
How we did it




Friday, March 9, 12                   12
How we did it

                      • Rolled our own Javascript framework
                        (http://code.google.com/p/hyves-hybrid/)
                      • Design pattern library in CSS
                      • Phonegap for native functionality

                                           13
Friday, March 9, 12                                                13

- framework: open source
- design pattern library: show
- phonegap
Framework




Friday, March 9, 12               14
Framework

                      • jQuery (and a little bit of jQuery mobile)
                      • Client-side templates with jq templates
                      • Sass for css (http://sass-lang.com/)
                      • Build script in Python with Google Closure
                        Compiler, JSLint etc


                                           15
Friday, March 9, 12                                                  15
Design pattern library




Friday, March 9, 12                            16

- mention cross platform compatibility
- widgets
- building blocks for making UI
Phonegap




Friday, March 9, 12                           17

- phonegap: third pillar of dev environment
- ideally: assembly line
- develop own plugins, many available
Code reuse




                      Over 90% of js/html/css is shared between
                      mobile and tablet


Friday, March 9, 12                                               18

- shared between mobile platforms and tablet
Example:
                      mobile vs tablet




Friday, March 9, 12                      19
Performance




Friday, March 9, 12                 20
Performance:
                               load times
                      • Minimize number of requests:
                       • Minify Javascript
                       • JS, html templates, css in one .js file
                       • Base64 encode images and include in css
                       • Load features on demand
                                          21
Friday, March 9, 12                                                21
Modules




                      result: inbox.{md5}.{i18n}.js


Friday, March 9, 12                                                               22

- resulting javascript module contains code, templates, (base64) images and css
- we build modules per language (nl_NL, en_US)
First request




Friday, March 9, 12                      23

- empty cache, no localstorage
- still too big, working on it
Performance: caching

                      • “Everything you thought you knew about
                        caching is wrong!”
                       • Doesn’t work on mobile
                       • Use localstorage
                       • Use cache manifest (wisely...)

                                                24
Friday, March 9, 12                                                                  24

-   quote from souders? I can’t remember... but it applies to mobile of course :-)
-   doesnt work consistently
-   doesnt work for homescreen apps
-   max cache
-   cache manifest is powerful but also dangerous, so we don’t use it (yet...)
Local storage




Friday, March 9, 12                                 25

- store our stringified js modules in localstorage
Performance: UI

                      • Kill the 300ms click delay (jq mobile, zepto)
                      • IOS: native scrolling with    -webkit-overflow-

                        scrolling: touch   (or iscroll on IOS4)
                      • Blackberry: kill your darlings

                                                26
Friday, March 9, 12                                                       26

- don’t wait for the doubleclick and save 300ms
- “scrolls like butter”
- decapitated smiley
Leverage GPU

                      • -webkit-transform: translate3d(x,y,z)
                      • Verify on Safari or IOS simulator:
                        CA_COLOR_OPAQUE=1 /Developer/Platforms/
                        iPhoneSimulator.platform/Developer/Applications/
                        iPhone Simulator.app/Contents/MacOS/iPhone
                        Simulator




                                              27
Friday, March 9, 12                                                        27

- kick hardware acceleration
GPU?




Friday, March 9, 12                         28

- left: cpu rendered spinner
- right: gpu rendered spinner => fast!!
Debugging:
                       weinre




Friday, March 9, 12                29
Debugging:
                         iWebinspector




Friday, March 9, 12                      30

- this one is great for ios
Debugging:
                      Charles Proxy



                      Decrypts https:// W00t!!



Friday, March 9, 12                              31
Debugging:
                       Ripple




Friday, March 9, 12                32
Testing

                      • Selenium, Jasmine
                      • Jenkins
                      • By hand (eat-your-own-dogfood)

                                               33
Friday, March 9, 12                                                           33

- selenium on a grid (about 30 vm’s, fast!!)
- jasmine for testing native functionality on actual device or on simulator
Deployment


                      • Build script generates tarball with
                        versioned JS files (about 4mb)
                      • Copy tarball to static servers & unpack


                                            34
Friday, March 9, 12                                               34

- actually the easiest of everything :-)
?




                      (emiel@hyves.nl)


                             35
Friday, March 9, 12                      35

Contenu connexe

En vedette

Anti-Slavery Almanac of 1847
Anti-Slavery Almanac of 1847Anti-Slavery Almanac of 1847
Anti-Slavery Almanac of 1847S7w5Xb
 
BVK 25 Jahre - Jubiläumsbroschüre
BVK 25 Jahre - JubiläumsbroschüreBVK 25 Jahre - Jubiläumsbroschüre
BVK 25 Jahre - JubiläumsbroschüreBVK
 
G. Bigliardi, S. Cappelli, Open Source per i Beni Culturali: il progetto di ...
G. Bigliardi, S. Cappelli, Open Source per i Beni Culturali:  il progetto di ...G. Bigliardi, S. Cappelli, Open Source per i Beni Culturali:  il progetto di ...
G. Bigliardi, S. Cappelli, Open Source per i Beni Culturali: il progetto di ...Progetto Open Téchne
 
Thomas Rau
Thomas RauThomas Rau
Thomas Rauvuvu1311
 
Control de consumo energético
Control de consumo energéticoControl de consumo energético
Control de consumo energéticoN-NOVA
 
Bloom Senior Living Brand Idea
Bloom Senior Living Brand Idea Bloom Senior Living Brand Idea
Bloom Senior Living Brand Idea Stephen Gaither
 
Alx92x Spare Parts List
Alx92x Spare Parts ListAlx92x Spare Parts List
Alx92x Spare Parts Listpatphibbs
 
Community Programs - Social Media Week 2014
Community Programs - Social Media Week 2014Community Programs - Social Media Week 2014
Community Programs - Social Media Week 2014XING AG
 
Professional Networking for the IT Geek
Professional Networking for the IT GeekProfessional Networking for the IT Geek
Professional Networking for the IT GeekHDI Orange County
 
Un oído en el pueblo y el otro en el evangelio
Un oído en el pueblo y el otro en el evangelioUn oído en el pueblo y el otro en el evangelio
Un oído en el pueblo y el otro en el evangelioJuan Jose Gravet
 
Socialbar Stuttgart-Statement-08062010
Socialbar Stuttgart-Statement-08062010Socialbar Stuttgart-Statement-08062010
Socialbar Stuttgart-Statement-08062010npovernetzt
 
Trabajo de los silos
Trabajo de los silosTrabajo de los silos
Trabajo de los silosHypnos Stan
 
Bppt outlook energi indonesia 2013
Bppt   outlook energi indonesia 2013Bppt   outlook energi indonesia 2013
Bppt outlook energi indonesia 2013Rattapong Rattahayo
 
Hoja de informacion 9 big ant
Hoja de informacion 9 big antHoja de informacion 9 big ant
Hoja de informacion 9 big antcristianfx
 

En vedette (19)

Anti-Slavery Almanac of 1847
Anti-Slavery Almanac of 1847Anti-Slavery Almanac of 1847
Anti-Slavery Almanac of 1847
 
BVK 25 Jahre - Jubiläumsbroschüre
BVK 25 Jahre - JubiläumsbroschüreBVK 25 Jahre - Jubiläumsbroschüre
BVK 25 Jahre - Jubiläumsbroschüre
 
G. Bigliardi, S. Cappelli, Open Source per i Beni Culturali: il progetto di ...
G. Bigliardi, S. Cappelli, Open Source per i Beni Culturali:  il progetto di ...G. Bigliardi, S. Cappelli, Open Source per i Beni Culturali:  il progetto di ...
G. Bigliardi, S. Cappelli, Open Source per i Beni Culturali: il progetto di ...
 
Curriculum nuevo1
Curriculum nuevo1Curriculum nuevo1
Curriculum nuevo1
 
Thomas Rau
Thomas RauThomas Rau
Thomas Rau
 
Control de consumo energético
Control de consumo energéticoControl de consumo energético
Control de consumo energético
 
Bloom Senior Living Brand Idea
Bloom Senior Living Brand Idea Bloom Senior Living Brand Idea
Bloom Senior Living Brand Idea
 
Alx92x Spare Parts List
Alx92x Spare Parts ListAlx92x Spare Parts List
Alx92x Spare Parts List
 
CV_Oscar_English_short
CV_Oscar_English_shortCV_Oscar_English_short
CV_Oscar_English_short
 
Community Programs - Social Media Week 2014
Community Programs - Social Media Week 2014Community Programs - Social Media Week 2014
Community Programs - Social Media Week 2014
 
Professional Networking for the IT Geek
Professional Networking for the IT GeekProfessional Networking for the IT Geek
Professional Networking for the IT Geek
 
Un oído en el pueblo y el otro en el evangelio
Un oído en el pueblo y el otro en el evangelioUn oído en el pueblo y el otro en el evangelio
Un oído en el pueblo y el otro en el evangelio
 
Socialbar Stuttgart-Statement-08062010
Socialbar Stuttgart-Statement-08062010Socialbar Stuttgart-Statement-08062010
Socialbar Stuttgart-Statement-08062010
 
Trabajo de los silos
Trabajo de los silosTrabajo de los silos
Trabajo de los silos
 
Bppt outlook energi indonesia 2013
Bppt   outlook energi indonesia 2013Bppt   outlook energi indonesia 2013
Bppt outlook energi indonesia 2013
 
documento icas
documento icasdocumento icas
documento icas
 
Identitätsorientiertes Kommunikationsmanagement, prmagazin 2011
Identitätsorientiertes Kommunikationsmanagement, prmagazin 2011Identitätsorientiertes Kommunikationsmanagement, prmagazin 2011
Identitätsorientiertes Kommunikationsmanagement, prmagazin 2011
 
1. mitocondria sirtuinas-rapamicina y envejecimento
1. mitocondria sirtuinas-rapamicina y envejecimento 1. mitocondria sirtuinas-rapamicina y envejecimento
1. mitocondria sirtuinas-rapamicina y envejecimento
 
Hoja de informacion 9 big ant
Hoja de informacion 9 big antHoja de informacion 9 big ant
Hoja de informacion 9 big ant
 

Similaire à Hyves: Mobile app development with HTML5 and Javascript

Cross-platform tools for mobile application development
Cross-platform tools for mobile application developmentCross-platform tools for mobile application development
Cross-platform tools for mobile application developmentbertouttier
 
WebSphere User Group UK: Larger Applications with Worklight
WebSphere User Group UK: Larger Applications with WorklightWebSphere User Group UK: Larger Applications with Worklight
WebSphere User Group UK: Larger Applications with WorklightAndrew Ferrier
 
Building Mobile Websites with Joomla
Building Mobile Websites with JoomlaBuilding Mobile Websites with Joomla
Building Mobile Websites with JoomlaTom Deryckere
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleIT Arena
 
Cloud4all Architecture Overview
Cloud4all Architecture OverviewCloud4all Architecture Overview
Cloud4all Architecture Overviewicchp2012
 
Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019PhuocNT (Fresher.VN)
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009Tom Deryckere
 
Cloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 SlidesCloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 SlidesRyan Koop
 
Cloud Camp Chicago Dec 2012 - All presentations
Cloud Camp Chicago Dec 2012 - All presentationsCloud Camp Chicago Dec 2012 - All presentations
Cloud Camp Chicago Dec 2012 - All presentationsCloudCamp Chicago
 
Building businesspost.ie using Node.js
Building businesspost.ie using Node.jsBuilding businesspost.ie using Node.js
Building businesspost.ie using Node.jsRichard Rodger
 
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012Patrick Chanezon
 
CloudFoundry and MongoDb, a marriage made in heaven
CloudFoundry and MongoDb, a marriage made in heavenCloudFoundry and MongoDb, a marriage made in heaven
CloudFoundry and MongoDb, a marriage made in heavenPatrick Chanezon
 
Hybrid Mobile Development
Hybrid Mobile DevelopmentHybrid Mobile Development
Hybrid Mobile DevelopmentShai Raiten
 
Building Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on AzureBuilding Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on AzureBrian Lyttle
 
Responsive Web Design & Workflow
Responsive Web Design & WorkflowResponsive Web Design & Workflow
Responsive Web Design & Workflowhouhr
 
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdfAstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdfFarHanWasif1
 

Similaire à Hyves: Mobile app development with HTML5 and Javascript (20)

Cross-platform tools for mobile application development
Cross-platform tools for mobile application developmentCross-platform tools for mobile application development
Cross-platform tools for mobile application development
 
WebSphere User Group UK: Larger Applications with Worklight
WebSphere User Group UK: Larger Applications with WorklightWebSphere User Group UK: Larger Applications with Worklight
WebSphere User Group UK: Larger Applications with Worklight
 
Building Mobile Websites with Joomla
Building Mobile Websites with JoomlaBuilding Mobile Websites with Joomla
Building Mobile Websites with Joomla
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
Cloud4all Architecture Overview
Cloud4all Architecture OverviewCloud4all Architecture Overview
Cloud4all Architecture Overview
 
Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009
 
Cloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 SlidesCloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 Slides
 
Cloud Camp Chicago Dec 2012 - All presentations
Cloud Camp Chicago Dec 2012 - All presentationsCloud Camp Chicago Dec 2012 - All presentations
Cloud Camp Chicago Dec 2012 - All presentations
 
Building businesspost.ie using Node.js
Building businesspost.ie using Node.jsBuilding businesspost.ie using Node.js
Building businesspost.ie using Node.js
 
NATO IST Symposium 2013
NATO IST Symposium 2013NATO IST Symposium 2013
NATO IST Symposium 2013
 
Cloud foundry and openstackcloud
Cloud foundry and openstackcloudCloud foundry and openstackcloud
Cloud foundry and openstackcloud
 
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
 
CloudFoundry and MongoDb, a marriage made in heaven
CloudFoundry and MongoDb, a marriage made in heavenCloudFoundry and MongoDb, a marriage made in heaven
CloudFoundry and MongoDb, a marriage made in heaven
 
GraalVM
GraalVMGraalVM
GraalVM
 
Hybrid Mobile Development
Hybrid Mobile DevelopmentHybrid Mobile Development
Hybrid Mobile Development
 
Building Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on AzureBuilding Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on Azure
 
Responsive Web Design & Workflow
Responsive Web Design & WorkflowResponsive Web Design & Workflow
Responsive Web Design & Workflow
 
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdfAstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
 
Html5 tx - preso
Html5 tx - presoHtml5 tx - preso
Html5 tx - preso
 

Plus de nlwebperf

MeasureWorks - eCommerce Live - Designing Time & Conversion
MeasureWorks -  eCommerce Live - Designing Time & ConversionMeasureWorks -  eCommerce Live - Designing Time & Conversion
MeasureWorks - eCommerce Live - Designing Time & Conversionnlwebperf
 
Aaron Peters aug2012
Aaron Peters aug2012Aaron Peters aug2012
Aaron Peters aug2012nlwebperf
 
Jinspired june2012
Jinspired june2012Jinspired june2012
Jinspired june2012nlwebperf
 
Usabilla june2012
Usabilla june2012Usabilla june2012
Usabilla june2012nlwebperf
 
Steve Souders
Steve SoudersSteve Souders
Steve Soudersnlwebperf
 
Nimbuzz march2012
Nimbuzz march2012Nimbuzz march2012
Nimbuzz march2012nlwebperf
 
Aspects of Modern APM Solutions
Aspects of Modern APM SolutionsAspects of Modern APM Solutions
Aspects of Modern APM Solutionsnlwebperf
 
Nimsoft Web performance monitoring
Nimsoft Web performance monitoringNimsoft Web performance monitoring
Nimsoft Web performance monitoringnlwebperf
 
NLCMG - Performance is good, Understanding performance is better
NLCMG - Performance is good, Understanding performance is better NLCMG - Performance is good, Understanding performance is better
NLCMG - Performance is good, Understanding performance is better nlwebperf
 
2deHands.be - Tuning a Big Classifieds Site
2deHands.be - Tuning a Big Classifieds Site2deHands.be - Tuning a Big Classifieds Site
2deHands.be - Tuning a Big Classifieds Sitenlwebperf
 

Plus de nlwebperf (11)

MeasureWorks - eCommerce Live - Designing Time & Conversion
MeasureWorks -  eCommerce Live - Designing Time & ConversionMeasureWorks -  eCommerce Live - Designing Time & Conversion
MeasureWorks - eCommerce Live - Designing Time & Conversion
 
Aaron Peters aug2012
Aaron Peters aug2012Aaron Peters aug2012
Aaron Peters aug2012
 
Fashiolista
FashiolistaFashiolista
Fashiolista
 
Jinspired june2012
Jinspired june2012Jinspired june2012
Jinspired june2012
 
Usabilla june2012
Usabilla june2012Usabilla june2012
Usabilla june2012
 
Steve Souders
Steve SoudersSteve Souders
Steve Souders
 
Nimbuzz march2012
Nimbuzz march2012Nimbuzz march2012
Nimbuzz march2012
 
Aspects of Modern APM Solutions
Aspects of Modern APM SolutionsAspects of Modern APM Solutions
Aspects of Modern APM Solutions
 
Nimsoft Web performance monitoring
Nimsoft Web performance monitoringNimsoft Web performance monitoring
Nimsoft Web performance monitoring
 
NLCMG - Performance is good, Understanding performance is better
NLCMG - Performance is good, Understanding performance is better NLCMG - Performance is good, Understanding performance is better
NLCMG - Performance is good, Understanding performance is better
 
2deHands.be - Tuning a Big Classifieds Site
2deHands.be - Tuning a Big Classifieds Site2deHands.be - Tuning a Big Classifieds Site
2deHands.be - Tuning a Big Classifieds Site
 

Dernier

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
 
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
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 
[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
 
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
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
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
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Dernier (20)

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
 
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...
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
[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
 
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
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Hyves: Mobile app development with HTML5 and Javascript

  • 1. Cross platform mobile apps with javascript/html5 Emiel van Liere Mobile Development Team Leader Hyves (emiel@hyves.nl) Friday, March 9, 12 1
  • 6. Friday, March 9, 12 6 overview of all our apps
  • 8. Hybrid? Application that can be installed on a device and has access to native components (camera, push notifications) but most -if not all- of the logic and UI is implemented with html, css and javascript Friday, March 9, 12 8
  • 9. Hybrid • Hyves: camera, image library, photo upload, push notifications, (dialogs, keyboard) • Hyves: UI and logic implemented with html and javascript • Linkedin, Facebook: native UI controllers 9 Friday, March 9, 12 9
  • 10. Why? Friday, March 9, 12 10 - already have native apps for ios, android, blackberry so why hybrid?
  • 11. But why? • Cross platform development: build once, run anywhere • Release when you want • Mobile website for “free” • Easier to get developers 11 Friday, March 9, 12 11 - xplatform example: predictions, lays campaign - release: AGILE no more appstore approval, easy bugfixes - app is actually a bundled website, nice for notifications in email - hyves: lots of experience with web
  • 12. How we did it Friday, March 9, 12 12
  • 13. How we did it • Rolled our own Javascript framework (http://code.google.com/p/hyves-hybrid/) • Design pattern library in CSS • Phonegap for native functionality 13 Friday, March 9, 12 13 - framework: open source - design pattern library: show - phonegap
  • 15. Framework • jQuery (and a little bit of jQuery mobile) • Client-side templates with jq templates • Sass for css (http://sass-lang.com/) • Build script in Python with Google Closure Compiler, JSLint etc 15 Friday, March 9, 12 15
  • 16. Design pattern library Friday, March 9, 12 16 - mention cross platform compatibility - widgets - building blocks for making UI
  • 17. Phonegap Friday, March 9, 12 17 - phonegap: third pillar of dev environment - ideally: assembly line - develop own plugins, many available
  • 18. Code reuse Over 90% of js/html/css is shared between mobile and tablet Friday, March 9, 12 18 - shared between mobile platforms and tablet
  • 19. Example: mobile vs tablet Friday, March 9, 12 19
  • 21. Performance: load times • Minimize number of requests: • Minify Javascript • JS, html templates, css in one .js file • Base64 encode images and include in css • Load features on demand 21 Friday, March 9, 12 21
  • 22. Modules result: inbox.{md5}.{i18n}.js Friday, March 9, 12 22 - resulting javascript module contains code, templates, (base64) images and css - we build modules per language (nl_NL, en_US)
  • 23. First request Friday, March 9, 12 23 - empty cache, no localstorage - still too big, working on it
  • 24. Performance: caching • “Everything you thought you knew about caching is wrong!” • Doesn’t work on mobile • Use localstorage • Use cache manifest (wisely...) 24 Friday, March 9, 12 24 - quote from souders? I can’t remember... but it applies to mobile of course :-) - doesnt work consistently - doesnt work for homescreen apps - max cache - cache manifest is powerful but also dangerous, so we don’t use it (yet...)
  • 25. Local storage Friday, March 9, 12 25 - store our stringified js modules in localstorage
  • 26. Performance: UI • Kill the 300ms click delay (jq mobile, zepto) • IOS: native scrolling with -webkit-overflow- scrolling: touch (or iscroll on IOS4) • Blackberry: kill your darlings 26 Friday, March 9, 12 26 - don’t wait for the doubleclick and save 300ms - “scrolls like butter” - decapitated smiley
  • 27. Leverage GPU • -webkit-transform: translate3d(x,y,z) • Verify on Safari or IOS simulator: CA_COLOR_OPAQUE=1 /Developer/Platforms/ iPhoneSimulator.platform/Developer/Applications/ iPhone Simulator.app/Contents/MacOS/iPhone Simulator 27 Friday, March 9, 12 27 - kick hardware acceleration
  • 28. GPU? Friday, March 9, 12 28 - left: cpu rendered spinner - right: gpu rendered spinner => fast!!
  • 29. Debugging: weinre Friday, March 9, 12 29
  • 30. Debugging: iWebinspector Friday, March 9, 12 30 - this one is great for ios
  • 31. Debugging: Charles Proxy Decrypts https:// W00t!! Friday, March 9, 12 31
  • 32. Debugging: Ripple Friday, March 9, 12 32
  • 33. Testing • Selenium, Jasmine • Jenkins • By hand (eat-your-own-dogfood) 33 Friday, March 9, 12 33 - selenium on a grid (about 30 vm’s, fast!!) - jasmine for testing native functionality on actual device or on simulator
  • 34. Deployment • Build script generates tarball with versioned JS files (about 4mb) • Copy tarball to static servers & unpack 34 Friday, March 9, 12 34 - actually the easiest of everything :-)
  • 35. ? (emiel@hyves.nl) 35 Friday, March 9, 12 35