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

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
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
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Último (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
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...
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

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