SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Modern Web Development




Today we’re going to talk a bit about Modern Web Development which is already an arrogant thing to say.
What was modern development in 1998 is laughable these days and no doubt we will look at what we do with
contempt in a few years. So instead of showing you shiny demos and tools of the trade of today let’s quickly talk
about approaching development in a way that will keep you safe from making mistakes today and tomorrow.
A new world...
                                           HTML5 != Desktop
                                           Exciting new opportunities
                                           New browsers with one goal
                                           Taking this show on the road




We live in a new world when it comes to web development. We build for lots more environments than the
desktop, mobile devices and desktop browsers offer us much more functionality than we had before,
browsers are agreeing on a standard to support instead of one-upping another with proprietary
technology and our web technologies are used in all kind of cool new and mobile devices. This rocks and
means we are on to something good here.
Demo time:
               HTML5 magic built-in



Show the form.html and magic.html demo to show that browsers come with great in-built functionality and that
they are very forgiving which means we don’t break the web of old. Refer to the README how to
present them.
Memo time:
                                 HTML5 is backwards compatible
                                 and robust by design
                                 That doesn’t mean we should rely
                                 on that - it just means we can
                                 move forward safely
                                 HTML5 has a lot of in-built client
                                 side functionality we do not need
                                 to write in JavaScript ourselves.

You can find more instructions how we reached these conclusions in the README
of the code examples.
Developing for the unknown




                                                                                                                http://www.flickr.com/photos/smemon/5547552978/

Web development, by definition, is developing for the unknown. You can not force users to use a certain
browser or have a certain technology enabled and you can not expect any of that. So how can you still develop
without creating broken experiences? How do you prepare for what is beyond the next bend?
http://www.flickr.com/photos/oufoufsworld/2274372737/
                                        Progressive enhancement
One way to approach the unknown is progressive enhancement. This means you take something that
works and enhance it to be even better when a certain technology is available. The best example for this is
escalators - they are progressively enhanced stairs. When there is no electricity or some other default
people can simply use them as stairs - you don’t need to have some fallback way of going up and
redirect people to that one - error handling is already build in.
Progressive Enhancement
     Start with something that works
     Then hijack it to become better
     Test for support, then add on
     No broken promises
Graceful
degradation




The other way to deal with the unknown is Graceful degradation. Lifts work like that - they are great to
reach another level fast and take up much less space than escalators. When they break down though, then
you need to have stairs as a fallback somewhere in the building or people will be stuck. You actually need
to both build a lift and stairs because of fire regulations. Graceful degradation can seem much easier and
less work but will always mean that you need to create and maintain a fallback. It also leads to broken
promises as you may show UI elements that don’t work - like these buttons which can’t be pressed.
Graceful degradation
     Start with a complex matter
     Develop a fallback for other
     environments
     Maintain both
     Broken promises
Demo time:
            Progressive Enhancement
            vs. Graceful Degradation


Show the gradients.html, /vintagecafe and the /contextmenu demos.
Refer to the README how to present them.
Memo time:
                                 Be flexible and nothing will cause
                                 you grief in the future
                                 Don’t make end users suffer for
                                 your mistakes
                                 Understand the basics
                                 Don’t bother with PE when you
                                 are in a fixed environment


You can find more instructions how we reached these conclusions in the README
of the code examples.
Responsive
                                                                                                      Design




http://www.flickr.com/photos/indyplanets/5693612984/

 Responsive design means that instead of building a special version of a web document or app for each
 device - desktop, mobile, tablet and so on you build one version of the product and use CSS to deliver
 different experiences to each of them depending on their resolution or orientation. It is a very “future
 friendly” approach to design. Instead of trying to predict all the use cases of your product or limiting
 yourself to a few ones you allow your design to breathe and change.
Mediaqueries
                                              Apply CSS for certain scenarios
                                              Also available in JavaScript
                                              One design, many views




Responsive design uses mediaqueries which is a CSS feature that allows you to define styles that only get
applied when the displaying browser fulfils certain rules you define - like a certain resolution, orientation
or pixel density. They are also available in JavaScript to apply functionality only when and if it makes sense.
Demo time:
           Responsive design demos



Show the responsive.html demo or some example on mediaqueri.es.
Refer to the README how to present them.
Memo time:
                                 Mediaqueries allow for granular
                                 design changes
                                 No need for JS sniffing
                                 Possible performance issues :(
                                 matchMedia() can help
                                 Queries for connection speed
                                 needed

You can find more instructions how we reached these conclusions in the README
of the code examples.
What about legacy browsers?



http://www.flickr.com/photos/tallkev/256810217/

When showing all these features a constant nagging is what we could do with legacy browsers. The basics
of HTML5 are backwards compatible and by using progressive enhancement legacy browsers still get
something that works, but isn’t as shiny. But what if that is not enough? Can we make old browsers get
what we are trying to do here?
Polyfills
                                                                                                                  http://www.flickr.com/photos/bramus/7255025512/

Polyfills are JavaScripts that you can include in a page to give functionality that is defined in the standard to
browsers that don’t support them. By their very nature they have the same APIs as the real thing - simulated.
This is great to reach parity amongst new browsers and it can be used to give legacy browsers new features.
The danger of polyfills is that you bring intensive functionality to old technology - if you make IE6 animate
things it is also up to you to make this perform well and you add IE6 to the browsers you need to test heavily.
http://modernizr.com/
Modernizr.com is a JavaScript library that allows you to test support for a certain technology in the browser
your users have in a very simple way. It makes it easy to apply intensive functionality only to browsers that can
deal with it and it takes the pain of testing for features on for you. It is written by a team of very dedicated
developers and used by a lot of big and heavily trafficked sites.
http://html5please.com/
HTML5please.com shows you features of HTML5 (and friends) and how safe it is to use them right now and in
the environment your users have. You get information how to use the technology with a safe fallback, you get
information when to use caution and you also get warnings if something is just not ready yet to use in
production code.
http://html5boilerplate.com/
HTML5boilerplate.com is a zip with a index.html that has all the safeguards you need to create a working
HTML5 document that is progressively enhanced for legacy browsers.
http://stuffandnonsense.co.uk/projects/320andup/
320 and up is just one of many CSS frameworks that can get you started with responsive design.
Rule of thumb:
               Giving legacy browsers a
               working solution is better than
               a full one that means a lot of
               work and doesn’t perform.
               Be future friendly!

As web developers it is up to us to forge the web of tomorrow. Let’s embrace new technologies instead of
feeling the weight of legacy browsers and making them stop us to use great features our users can benefit
from.
http://easy-readers.net/books/adaptive-web-design/




If you want to know more about Progressive Enhancement I can recommend the book Adaptive Web Design by
Aaron Gustafson. It is a quick read full of good information and it comes with a chameleon!
http://futurefriend.ly




If you like the idea of embracing the future by letting go of some outdated constraints and without blocking
people out, check out Future Friendly which has some very good ideas on how to embrace the technologies
and environments to come by changing our approach and workflows.

Mais conteúdo relacionado

Destaque

The Modern Web Part 3: Social Networking
The Modern Web Part 3: Social NetworkingThe Modern Web Part 3: Social Networking
The Modern Web Part 3: Social NetworkingDavid Pallmann
 
How to develop modern web application framework
How to develop modern web application frameworkHow to develop modern web application framework
How to develop modern web application frameworktechmemo
 
Google webmaster guide for starters
Google webmaster guide for startersGoogle webmaster guide for starters
Google webmaster guide for startersjatindsim
 
Internet Search Tips (Google)
Internet Search Tips (Google)Internet Search Tips (Google)
Internet Search Tips (Google)Lisa Hartman
 
Internet Search
Internet SearchInternet Search
Internet SearchD Houseman
 
Using the internet for search
Using the internet for searchUsing the internet for search
Using the internet for searchDr-Heba Mustafa
 
I know how to search the internet,
I know how to search the internet,I know how to search the internet,
I know how to search the internet,Hindie Dershowitz
 
Internet Search Tips featuring Google
Internet Search Tips featuring GoogleInternet Search Tips featuring Google
Internet Search Tips featuring GoogleLisa Hartman
 
The Modern Web, Part 1: Mobility
The Modern Web, Part 1: MobilityThe Modern Web, Part 1: Mobility
The Modern Web, Part 1: MobilityDavid Pallmann
 
Windows 8 and the Cloud
Windows 8 and the CloudWindows 8 and the Cloud
Windows 8 and the CloudDavid Pallmann
 
Advanced internet search
Advanced internet searchAdvanced internet search
Advanced internet searchMegan Heuer
 

Destaque (14)

The Modern Web Part 3: Social Networking
The Modern Web Part 3: Social NetworkingThe Modern Web Part 3: Social Networking
The Modern Web Part 3: Social Networking
 
How to develop modern web application framework
How to develop modern web application frameworkHow to develop modern web application framework
How to develop modern web application framework
 
Google webmaster guide for starters
Google webmaster guide for startersGoogle webmaster guide for starters
Google webmaster guide for starters
 
Affordable web design
Affordable web designAffordable web design
Affordable web design
 
Internet Search Tips (Google)
Internet Search Tips (Google)Internet Search Tips (Google)
Internet Search Tips (Google)
 
Internet Search
Internet SearchInternet Search
Internet Search
 
Using the internet for search
Using the internet for searchUsing the internet for search
Using the internet for search
 
Bad websites
Bad websitesBad websites
Bad websites
 
I know how to search the internet,
I know how to search the internet,I know how to search the internet,
I know how to search the internet,
 
Internet Search Tips featuring Google
Internet Search Tips featuring GoogleInternet Search Tips featuring Google
Internet Search Tips featuring Google
 
The Modern Web, Part 1: Mobility
The Modern Web, Part 1: MobilityThe Modern Web, Part 1: Mobility
The Modern Web, Part 1: Mobility
 
Windows 8 and the Cloud
Windows 8 and the CloudWindows 8 and the Cloud
Windows 8 and the Cloud
 
Advanced internet search
Advanced internet searchAdvanced internet search
Advanced internet search
 
The human footprint on water : agricultural, industrial, and urban impacts on...
The human footprint on water : agricultural, industrial, and urban impacts on...The human footprint on water : agricultural, industrial, and urban impacts on...
The human footprint on water : agricultural, industrial, and urban impacts on...
 

Mais de Christian Heilmann

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Christian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilegeChristian Heilmann
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloChristian Heilmann
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteChristian Heilmann
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteChristian Heilmann
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandChristian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilegeChristian Heilmann
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerChristian Heilmann
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Christian Heilmann
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?Christian Heilmann
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Christian Heilmann
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachChristian Heilmann
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsChristian Heilmann
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansChristian Heilmann
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Christian Heilmann
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlChristian Heilmann
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Christian Heilmann
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)Christian Heilmann
 

Mais de Christian Heilmann (20)

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019
 
Hinting at a better web
Hinting at a better webHinting at a better web
Hinting at a better web
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynote
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynote
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays Finland
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developer
 
Taking the P out of PWA
Taking the P out of PWATaking the P out of PWA
Taking the P out of PWA
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReach
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worlds
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humans
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)
 

Último

Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701bronxfugly43
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfSherif Taha
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docxPoojaSen20
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxAmanpreet Kaur
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 

Último (20)

Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 

Modern web development (including notes)

  • 1. Modern Web Development Today we’re going to talk a bit about Modern Web Development which is already an arrogant thing to say. What was modern development in 1998 is laughable these days and no doubt we will look at what we do with contempt in a few years. So instead of showing you shiny demos and tools of the trade of today let’s quickly talk about approaching development in a way that will keep you safe from making mistakes today and tomorrow.
  • 2. A new world... HTML5 != Desktop Exciting new opportunities New browsers with one goal Taking this show on the road We live in a new world when it comes to web development. We build for lots more environments than the desktop, mobile devices and desktop browsers offer us much more functionality than we had before, browsers are agreeing on a standard to support instead of one-upping another with proprietary technology and our web technologies are used in all kind of cool new and mobile devices. This rocks and means we are on to something good here.
  • 3. Demo time: HTML5 magic built-in Show the form.html and magic.html demo to show that browsers come with great in-built functionality and that they are very forgiving which means we don’t break the web of old. Refer to the README how to present them.
  • 4. Memo time: HTML5 is backwards compatible and robust by design That doesn’t mean we should rely on that - it just means we can move forward safely HTML5 has a lot of in-built client side functionality we do not need to write in JavaScript ourselves. You can find more instructions how we reached these conclusions in the README of the code examples.
  • 5. Developing for the unknown http://www.flickr.com/photos/smemon/5547552978/ Web development, by definition, is developing for the unknown. You can not force users to use a certain browser or have a certain technology enabled and you can not expect any of that. So how can you still develop without creating broken experiences? How do you prepare for what is beyond the next bend?
  • 6. http://www.flickr.com/photos/oufoufsworld/2274372737/ Progressive enhancement One way to approach the unknown is progressive enhancement. This means you take something that works and enhance it to be even better when a certain technology is available. The best example for this is escalators - they are progressively enhanced stairs. When there is no electricity or some other default people can simply use them as stairs - you don’t need to have some fallback way of going up and redirect people to that one - error handling is already build in.
  • 7. Progressive Enhancement Start with something that works Then hijack it to become better Test for support, then add on No broken promises
  • 8. Graceful degradation The other way to deal with the unknown is Graceful degradation. Lifts work like that - they are great to reach another level fast and take up much less space than escalators. When they break down though, then you need to have stairs as a fallback somewhere in the building or people will be stuck. You actually need to both build a lift and stairs because of fire regulations. Graceful degradation can seem much easier and less work but will always mean that you need to create and maintain a fallback. It also leads to broken promises as you may show UI elements that don’t work - like these buttons which can’t be pressed.
  • 9. Graceful degradation Start with a complex matter Develop a fallback for other environments Maintain both Broken promises
  • 10. Demo time: Progressive Enhancement vs. Graceful Degradation Show the gradients.html, /vintagecafe and the /contextmenu demos. Refer to the README how to present them.
  • 11. Memo time: Be flexible and nothing will cause you grief in the future Don’t make end users suffer for your mistakes Understand the basics Don’t bother with PE when you are in a fixed environment You can find more instructions how we reached these conclusions in the README of the code examples.
  • 12. Responsive Design http://www.flickr.com/photos/indyplanets/5693612984/ Responsive design means that instead of building a special version of a web document or app for each device - desktop, mobile, tablet and so on you build one version of the product and use CSS to deliver different experiences to each of them depending on their resolution or orientation. It is a very “future friendly” approach to design. Instead of trying to predict all the use cases of your product or limiting yourself to a few ones you allow your design to breathe and change.
  • 13. Mediaqueries Apply CSS for certain scenarios Also available in JavaScript One design, many views Responsive design uses mediaqueries which is a CSS feature that allows you to define styles that only get applied when the displaying browser fulfils certain rules you define - like a certain resolution, orientation or pixel density. They are also available in JavaScript to apply functionality only when and if it makes sense.
  • 14. Demo time: Responsive design demos Show the responsive.html demo or some example on mediaqueri.es. Refer to the README how to present them.
  • 15. Memo time: Mediaqueries allow for granular design changes No need for JS sniffing Possible performance issues :( matchMedia() can help Queries for connection speed needed You can find more instructions how we reached these conclusions in the README of the code examples.
  • 16. What about legacy browsers? http://www.flickr.com/photos/tallkev/256810217/ When showing all these features a constant nagging is what we could do with legacy browsers. The basics of HTML5 are backwards compatible and by using progressive enhancement legacy browsers still get something that works, but isn’t as shiny. But what if that is not enough? Can we make old browsers get what we are trying to do here?
  • 17. Polyfills http://www.flickr.com/photos/bramus/7255025512/ Polyfills are JavaScripts that you can include in a page to give functionality that is defined in the standard to browsers that don’t support them. By their very nature they have the same APIs as the real thing - simulated. This is great to reach parity amongst new browsers and it can be used to give legacy browsers new features. The danger of polyfills is that you bring intensive functionality to old technology - if you make IE6 animate things it is also up to you to make this perform well and you add IE6 to the browsers you need to test heavily.
  • 18. http://modernizr.com/ Modernizr.com is a JavaScript library that allows you to test support for a certain technology in the browser your users have in a very simple way. It makes it easy to apply intensive functionality only to browsers that can deal with it and it takes the pain of testing for features on for you. It is written by a team of very dedicated developers and used by a lot of big and heavily trafficked sites.
  • 19. http://html5please.com/ HTML5please.com shows you features of HTML5 (and friends) and how safe it is to use them right now and in the environment your users have. You get information how to use the technology with a safe fallback, you get information when to use caution and you also get warnings if something is just not ready yet to use in production code.
  • 20. http://html5boilerplate.com/ HTML5boilerplate.com is a zip with a index.html that has all the safeguards you need to create a working HTML5 document that is progressively enhanced for legacy browsers.
  • 21. http://stuffandnonsense.co.uk/projects/320andup/ 320 and up is just one of many CSS frameworks that can get you started with responsive design.
  • 22. Rule of thumb: Giving legacy browsers a working solution is better than a full one that means a lot of work and doesn’t perform. Be future friendly! As web developers it is up to us to forge the web of tomorrow. Let’s embrace new technologies instead of feeling the weight of legacy browsers and making them stop us to use great features our users can benefit from.
  • 23. http://easy-readers.net/books/adaptive-web-design/ If you want to know more about Progressive Enhancement I can recommend the book Adaptive Web Design by Aaron Gustafson. It is a quick read full of good information and it comes with a chameleon!
  • 24. http://futurefriend.ly If you like the idea of embracing the future by letting go of some outdated constraints and without blocking people out, check out Future Friendly which has some very good ideas on how to embrace the technologies and environments to come by changing our approach and workflows.