SlideShare a Scribd company logo
1 of 27
Download to read offline
H1 Porting

             Workshop




      1
             October 8, 2009


Donnerstag, 15. Oktober 2009
Port my widget




                               you
                                  rw
                                     idg
                                        et




        2




Donnerstag, 15. Oktober 2009
Introduction

          • Who?
          • Stephane Boulanger

          • Stefan Kolb
                                 • What?
                                 • tips & tricks

                                 • help you port
                                 • get feedback


      3




Donnerstag, 15. Oktober 2009
Building cross platform widgets



      • is an effort!
      • W3C Widgets are standardized, yes
        but you are first movers!
      • learning about mobile

      • learn about the use cases
      • think cross platform

      • abstract and use frameworks/toolkits




Donnerstag, 15. Oktober 2009
Use cases




Donnerstag, 15. Oktober 2009
Mobile gotchas




     • bad tool support
     • (almost) no debugging tools

     • long turn around times
     • platform specialties




Donnerstag, 15. Oktober 2009
Mobile gotchas - best practices

     • test on desktop




Donnerstag, 15. Oktober 2009
Mobile gotchas - best practices

     • test on desktop
     • test on desktop - Opera

     • test on desktop - better tool support
     • try-catch a lot!

     • Don‘t be afraid of alert / widget.showNotification
     • Opera Dragonfly

     • simplify your CSS




Donnerstag, 15. Oktober 2009
Try-catch


                      function catchy(fn){
                        return function(){
                          try{
                            fn.apply(fn, arguments);
                          }catch(e){
                            var err = [];
                            for (var key in e){
                               if (!key || typeof key=="function")
                                 continue;
                              err.push(key + ": " + e[key]);
                            }
                            alert(err.join("n");
                          }
                        }
                      }




Donnerstag, 15. Oktober 2009
Try-catch


                      function catchy(fn){
                        return function(){
                          try{
                            fn.apply(fn, arguments);
                          }catch(e){
                            var err = [];
                            for (var key in e){
                               if (!key || typeof key=="function")
                                 continue;
                              err.push(key + ": " + e[key]);
                            }
                            alert(err.join("n");
                          }
                        }
                      }




Donnerstag, 15. Oktober 2009
Try catch (2)




   doSomething();

   node.addEventListener("click", function(){...}, false);




   catchy(doSomething());

   node.addEventListener("click", catchy(function(){...}), false);




Donnerstag, 15. Oktober 2009
Cross platform - problems




                       Resizing   Scaling

Donnerstag, 15. Oktober 2009
• config.xml defines height+width
                               • different screen sizes

                               • modes (docked, extended)
                               • adapt to actual screen size

   Resizing




Donnerstag, 15. Oktober 2009
Resizing (1)



                               var h = screen.availHeight;
                               var w = screen.availWidth;
                               window.resizeTo(h, w)




Donnerstag, 15. Oktober 2009
Resizing (2)
                               <widget>
                               !     <width>1000</width>
                               !     <height>1200</height>
                               </widget>


                               body, html {
                                 width: 100%;
                                 height: 100%;
                               }


          • let the device do the scaling
          • resize on the desktop



Donnerstag, 15. Oktober 2009
Resizing
                               1. window.resizeTo()
                               2. auto-scale




Donnerstag, 15. Oktober 2009
Scaling


Donnerstag, 15. Oktober 2009
0.7mm - 1cm




                               • fingers hardly scale
                               • make your widget scale

                               • don't use pixels!
                               • use relative sizes
                                                              Scaling


Donnerstag, 15. Oktober 2009
Scaling (1)
                    h1 {
                      font-size: 16px;
                      font-size: 1.5cm;
                    }

                    h2 {
                      font-size: 1.2cm;
                    }

                    button, .touchable {
                      font-size: 1cm;
                    }




Donnerstag, 15. Oktober 2009
understand




                               PPI
                               DPI          Scaling


Donnerstag, 15. Oktober 2009
166dpi - Nokia E52-1




         232dpi
         Nokia 5800 XpressMusic



                               265dpi - Samsung H1

                                                     Scaling


Donnerstag, 15. Oktober 2009
Scaling (2)
      body, html {
        font-size: 16px;
      }

       @media all and (min-resolution: 150dpi) {
         body, html {
           font-size: 20px;
         }
       }
       @media all and (min-resolution: 200dpi) {
         body, html {
           font-size: 25px;
         }
       }



Donnerstag, 15. Oktober 2009
@media all and (min-resolution: 250dpi) {
        body, html {
          font-size: 30px;
        }
      }

      h1 {
        font-size: 1.5em;
      }

      h2 {
        font-size: 1.3em;
      }




Donnerstag, 15. Oktober 2009
Scaling

       1. cm, mm, inch, ...
       2. media queries + em, %




Donnerstag, 15. Oktober 2009
Putting it all together

                                fontsize in mm


                                      line in pixel


                                 padding in em




                                    touchable height in mm




        SVG             25%




Donnerstag, 15. Oktober 2009
Porting your Widget to H1 - Steps to take




Donnerstag, 15. Oktober 2009
Thanks!



      Any Questions?




Donnerstag, 15. Oktober 2009

More Related Content

Similar to Vodafone 360 - Live Porting

Twisted presentation & Jamendo usecases
Twisted presentation & Jamendo usecasesTwisted presentation & Jamendo usecases
Twisted presentation & Jamendo usecasesSylvain Zimmer
 
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...Jan Wedekind
 
Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009wolframkriesing
 
Latinoware Rails 2009
Latinoware Rails 2009Latinoware Rails 2009
Latinoware Rails 2009Fabio Akita
 
Rails For Kids 2009
Rails For Kids 2009Rails For Kids 2009
Rails For Kids 2009Fabio Akita
 
Semcomp de São Carlos
Semcomp de São CarlosSemcomp de São Carlos
Semcomp de São CarlosFabio Akita
 
DjangoCon 2009 Keynote
DjangoCon 2009 KeynoteDjangoCon 2009 Keynote
DjangoCon 2009 KeynoteTed Leung
 
Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...
Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...
Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...Amazon Web Services
 

Similar to Vodafone 360 - Live Porting (9)

Twisted presentation & Jamendo usecases
Twisted presentation & Jamendo usecasesTwisted presentation & Jamendo usecases
Twisted presentation & Jamendo usecases
 
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
 
Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009
 
Latinoware Rails 2009
Latinoware Rails 2009Latinoware Rails 2009
Latinoware Rails 2009
 
Rails For Kids 2009
Rails For Kids 2009Rails For Kids 2009
Rails For Kids 2009
 
Semcomp de São Carlos
Semcomp de São CarlosSemcomp de São Carlos
Semcomp de São Carlos
 
DjangoCon 2009 Keynote
DjangoCon 2009 KeynoteDjangoCon 2009 Keynote
DjangoCon 2009 Keynote
 
Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...
Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...
Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...
 
Cloudera Desktop
Cloudera DesktopCloudera Desktop
Cloudera Desktop
 

Recently uploaded

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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
 
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
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Recently uploaded (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
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...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

Vodafone 360 - Live Porting

  • 1. H1 Porting Workshop 1 October 8, 2009 Donnerstag, 15. Oktober 2009
  • 2. Port my widget you rw idg et 2 Donnerstag, 15. Oktober 2009
  • 3. Introduction • Who? • Stephane Boulanger • Stefan Kolb • What? • tips & tricks • help you port • get feedback 3 Donnerstag, 15. Oktober 2009
  • 4. Building cross platform widgets • is an effort! • W3C Widgets are standardized, yes but you are first movers! • learning about mobile • learn about the use cases • think cross platform • abstract and use frameworks/toolkits Donnerstag, 15. Oktober 2009
  • 6. Mobile gotchas • bad tool support • (almost) no debugging tools • long turn around times • platform specialties Donnerstag, 15. Oktober 2009
  • 7. Mobile gotchas - best practices • test on desktop Donnerstag, 15. Oktober 2009
  • 8. Mobile gotchas - best practices • test on desktop • test on desktop - Opera • test on desktop - better tool support • try-catch a lot! • Don‘t be afraid of alert / widget.showNotification • Opera Dragonfly • simplify your CSS Donnerstag, 15. Oktober 2009
  • 9. Try-catch function catchy(fn){ return function(){ try{ fn.apply(fn, arguments); }catch(e){ var err = []; for (var key in e){ if (!key || typeof key=="function") continue; err.push(key + ": " + e[key]); } alert(err.join("n"); } } } Donnerstag, 15. Oktober 2009
  • 10. Try-catch function catchy(fn){ return function(){ try{ fn.apply(fn, arguments); }catch(e){ var err = []; for (var key in e){ if (!key || typeof key=="function") continue; err.push(key + ": " + e[key]); } alert(err.join("n"); } } } Donnerstag, 15. Oktober 2009
  • 11. Try catch (2) doSomething(); node.addEventListener("click", function(){...}, false); catchy(doSomething()); node.addEventListener("click", catchy(function(){...}), false); Donnerstag, 15. Oktober 2009
  • 12. Cross platform - problems Resizing Scaling Donnerstag, 15. Oktober 2009
  • 13. • config.xml defines height+width • different screen sizes • modes (docked, extended) • adapt to actual screen size Resizing Donnerstag, 15. Oktober 2009
  • 14. Resizing (1) var h = screen.availHeight; var w = screen.availWidth; window.resizeTo(h, w) Donnerstag, 15. Oktober 2009
  • 15. Resizing (2) <widget> ! <width>1000</width> ! <height>1200</height> </widget> body, html { width: 100%; height: 100%; } • let the device do the scaling • resize on the desktop Donnerstag, 15. Oktober 2009
  • 16. Resizing 1. window.resizeTo() 2. auto-scale Donnerstag, 15. Oktober 2009
  • 18. 0.7mm - 1cm • fingers hardly scale • make your widget scale • don't use pixels! • use relative sizes Scaling Donnerstag, 15. Oktober 2009
  • 19. Scaling (1) h1 { font-size: 16px; font-size: 1.5cm; } h2 { font-size: 1.2cm; } button, .touchable { font-size: 1cm; } Donnerstag, 15. Oktober 2009
  • 20. understand PPI DPI Scaling Donnerstag, 15. Oktober 2009
  • 21. 166dpi - Nokia E52-1 232dpi Nokia 5800 XpressMusic 265dpi - Samsung H1 Scaling Donnerstag, 15. Oktober 2009
  • 22. Scaling (2) body, html { font-size: 16px; } @media all and (min-resolution: 150dpi) { body, html { font-size: 20px; } } @media all and (min-resolution: 200dpi) { body, html { font-size: 25px; } } Donnerstag, 15. Oktober 2009
  • 23. @media all and (min-resolution: 250dpi) { body, html { font-size: 30px; } } h1 { font-size: 1.5em; } h2 { font-size: 1.3em; } Donnerstag, 15. Oktober 2009
  • 24. Scaling 1. cm, mm, inch, ... 2. media queries + em, % Donnerstag, 15. Oktober 2009
  • 25. Putting it all together fontsize in mm line in pixel padding in em touchable height in mm SVG 25% Donnerstag, 15. Oktober 2009
  • 26. Porting your Widget to H1 - Steps to take Donnerstag, 15. Oktober 2009
  • 27. Thanks! Any Questions? Donnerstag, 15. Oktober 2009