On Github imjacobclark / bbc-wit-25th-sept
Created by Jacob Clark / @imjacobclark
An online portal to content across the BBC
We support a huge array of browsers and devices, including (but not limited to):
Due to the potential hundreds of different browsers we support, BBC iWonder needs to be responsive, accessible on a wide variety of platforms from Smartphones to Smart TVs and fast for those slow connections.
BBC iWonder cuts the mustard
Building a responsive page for mobile first....
Developing for the lowest comon denominator and enchancing progressively.
BBC iWonder is built with a wide variety of technologies, including:
Each part of iWonder is built into it's own modular component, using cutting edge, front end webtechnologies, including modular JavaScript and BEM CSS!
iWonder is made up of several components, including:
BEM is a methodology for building modular front end layouts, fast.
It defines naming conventions to use in front end layouts for HTML class names and CSS.
BEM stands for Block Element Modifier.
(.block__element-modifier)
BEM sounds confusing at first, but when you put it into context it all comes together. Take the Hero Image of iWonder for example:
Developing layouts in BEM allow us to create modular, resuable components that we can place anywhere.
Developers no longer need to worry about CSS specificity issues where component styles clash causing weird behaviour.
Building modern web applications with fantastic user experiences, forces us to use JavcScript to improve our audiences experiences.
The nature of JavaScript by default means code can become unweidly and difficult to maintain.
Require.js fixes this problem. It allows us to define our JavaScript into their own modules, which can be required anywhere within an application and re-used.
Require.js allows us to cut the mustard, we can use progressive enhancement to initialise modules and deliver a consistent experience cross browsers.
I'm totally out of slides now...
Let's have an open discussion on modern web development!