SlideShare a Scribd company logo
1 of 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

More Related Content

Viewers also liked

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
 

Viewers also liked (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
 

Similar to 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
 

Similar to 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
 

More from 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
 

More from 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
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Recently uploaded (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

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