SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

Destacado

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
 

Destacado (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 a 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 a 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
 

Más 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
 

Más 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
 

Último

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
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
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 

Último (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
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
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

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