#Fronteers 2016: Day 1
- http://bitsofco.de since 1.5 yrs
- Progessive enhancement usually about JavaScript.
- 2003: Safari 1.0, Phoenix (firefox), IE winning (95%)
- 2003: Graceful degradation: provide certain level of user experience in modern browsers, lower level in older browsers.
- March 11, 2003: Stephen Champeon, "Inclusive Webdesign For The Future" outlines problems with graceful degradation
- GD: Doesn't straddle technology inflection points well
- GD: Many designers don't test anything but one version back
- GD: Does not adddress different needs of different audeiences
- GD: Expensive to retrofit to new alternate devices
- GD: Whatever is 'good enough' usually rules
- "Webdesign must mature and accept the developments of the past several years."
- "Goal is not to dazzle, but deliver info to the weidest audience"
- Basic functionality should be available
- Sparse, semantic markup should contains all content, content should be defined in plain text in markup
- Enhanced layout can be provided by CSS stylesheets
- Enhanced behaviour can be provided by unobtrusive JavaScript
- End-user web browser preferences should be respected
- More of everything: browsers, devices, ...
- More tools to build sites
- More people online (K 1.000.000.000 vs. > 3.500.000.00)
- The web is still open
- What can go wrong?
- JavaScript disabled in browser --> Make website functional without JavaScript
- Browser does not support feature --> Feature detection / polyfill
- Browser does not understand semantic meaning --> add ARIA roles
- Can't prepare for unsupported features
- No built-in fallback
- Debugging CSS is hard
- Start with sensible HTML
- Don't change the order of elements via CSS
- Don't target elements in CSS
- Take advantage of the cascade
- Fallback in CSS: vendor prefixes etc.
- Mobile first strategy - min-width based media queries.
- Use Flexbox, designed to be a progressive enhancement
- Separate stylesheets for different browsers as a last resort
- Conditional rules in CSS
- @supports (foo:bar){ ... }
- @supports ((foo:bar) or (bar:baz)){ ... }
- @supports not (foor:bar){ ... }
- Good support, except for IE/Opera Mini
- Four scenarios: (!)support CSS feature + (!)support feature queries
- Even more stuff
- More browsers (VR, watches, ...)
- More technologies: Angular 23.0
- @nadiehbremer
- Originally astronomer, now data visualisation at Adyen.
- visualcinnamon.com
- D3 is the default JavaScript library for Data Visualisation
- Handles payments
- Middleman between store and you
- Catch fraude
- Hard to choose colors: usually just 'design', not data (darker green is not more important than light green)
- Works at FiftyThree (Paper/Pencil/Mix)
- Hybrid designer/developer (Maker)
- One idea can become a thousand ideas
- Using React to improve user experience (images/forms/user-input)
- Paper for Web is a React App + NodeJS + Stylus + Webpack (build = 450kb)
- React All The Things!
- What parts of app need to be seamless?
- Requirement for React = JavaScript available
- Image preloading via Image API (new Image())
- Images in grid, images might not load in correct order.
- Set fixed height using spacer images
- Spacer images = extra requests etc. Not managable.
- What about SVG?
- Images outside of viewport may load earlier than images inside viewport
- Resizes when content changes
- Must resize dynamically
- Allow text selection
- Do not break understanding of text inputs, what user expect
- Must use placeholder text consistently across browsers (different behaviour in browsers)
- Must support touch events
- Contenteditable? Allows line breaks, paste with formatting etc. Not an option.
- Images at different resolution
- Util in Javascript to get best image based on container dimensions
- S3 used to manage images
- @nolanlawson
- Works at Microsoft Edge
- Look at web app development, extrapolate from past to see where we're going.
- Offline/progressive/multithreaded
- Not focus on technical details, but on history.
- If you were building a web app 15 years ago, probably using Flash
- HTML in competition with technologies like Flash/Silverlight
- HTML5 is a response to Flash/Silverlight/etc.
- Today: probably using webtechnologies
- We won on desktop, just in time - when mobile became big.
- Mail on desktop: 90% web, 10% native
- Mail on mobile: 10% web, 90% native
- PouchDB: wrapper for indexedDB (store data locally, sync when connection)
- "Offline-first" is not really about about being in the subway etc.
- "Offline-first" is about speed.
- Memory = superfast, disk = slower, network = very slow
- PHP.net autosuggest = local storage, very very fast.
- "The webplatform has always had two solutions to a problem; the old deprecated one you shouldn't use and the new which isn't ready yet."
- Static data: old way is AppCache, new way is Cache API (Service Worker)
- Dynamic data: old way is LocalStorage/WebSQL, new way is IndexedDB
- Old ways were very specificly implemented, new way is more designed with web in mind - to build libraries upon.
- Website becomes a progressive web app.
- In 2016 it's okay to make a website that does not work without JavaScript
- Web = 3 pillars: HTML/CSS/JavaSCript. Can't really pull one out
- Connectivity is problem, not old browsers/no JavaScript
- Progressive rendering: not loading one big app.js
- Critical HTML/CSS, then download more stuff
- Ember/Server-side React/Angular2 isolated render do progressive rendering
- Jank: web is single threaded, apps/sites do too much
- Hardware (midrange) may not be very fast, but all have 4 cores
- Webworkers do vast majority of app logic
- UI thread does UI/effects
- Webworkers might be overhead unless working with big data
- @g33konaut
- VR is hot: Oculus, Steam/Valve, HTC Vive, Google Daydream
- VR is great for education, marketing, construction/architecture, healthcare, design/arts...
- VR risks regression: exclusivity rights (Oculus DRM to avoid being able to use on Vive)
- WebVR
- 360 panorma = WebVR's Hello World
- How to transfer from environment A to environent B?
- Current draft 1.1
- Love from Mozilla/Google/Microsoft/Samsung
- Experimental browser builds
- Gamepad API Extension
- No DOM yet.
- No DOM events
- How to move
- How to interact
- Position tracking on Vive
- Moving far?
- Handling hands?
- LEAPmotion
- Myo
- Microsoft Kienct
- Intel Realsense
- A picture paints a 1000 words...
- ...but paint the right picture!
- Director of FED at Shopify
- HTML/CSS/JS
- Node/Webpack/SASS/Gulp/Angular/...
- How do you build a team around chaos?
- No owner of bridge between Design and Back-end.
- Inconsistent/buggy UI.
- Spaghetti code
- Hard to maintain/iterate
- Not accessible/performant/responsive
- Code standards
- Consistency is key
- Helps read each other's code
- Helps you read your own code in the future
- Encourage you to think about your way of coding
- Use linters/hinters
- Every line of code is reviewed before release
- Shared definition of quality
- Dealing with existing code?
- Build a culture of feedback/sharing
- A way to pool our efforts
- Make it possible to share code automatically
- A starting point for new projects
- A default stack (SASS/Rails/...)
- Guidelines for dealing with responsiveness
- Performance standards/language tooling
- Accessibility standards
- Core application patterns
- Solved for specific use cases (opinionated)
- Look to design to determine what are patterns and what are not
- Build API to have a single source of truth
- Rehab Studio
- Realistic danger that the web will be marginalized in favour of apps
- App-only strategies
- Web filled with tracking/ads: 50+ percent of bandwidth
- 1 in 2 users say ads etc have stopped them from using a website
- 21% of users block ads from mobile web
- Monetisation: free, ad-supported isn't sustainable anymore.
- "The idea won't be to start a website. That will be dead. The individual website is dead."
- "A lot of designers are still focussed on website - not certain that's a growth business anymore."
- $0.85 of every $1 spent on advertising on Google/Facebook.
- Platforms that matured on the web are leaving it behind (Facebook, Twitter). Embedding own content instead of external content.
- New users come online, straight to mobile. No desktop, no laptop, no web
- 1 hour of minimum wage = data to visit 15 websites
- 15% of avg month income = 1GB data in Myanmar
- Users use pre-paid data. They feel every MB. Apps like FB can optimize
- Users identify as 'using Facebook' instead of 'using the internet'
- Facebook becomes the mobile internet
- Still a lot of users (Google Chrome mobile 1+ billion users per month)
- Shopping on the web is still bigger than via apps