Web development post io2016

39
The state of the union Web development post I/O 2016 Filip Bruun Bech-Larsen @filipbech

Transcript of Web development post io2016

Page 1: Web development post io2016

The state of the union

Web development post I/O 2016

Filip Bruun Bech-Larsen@filipbech

Page 2: Web development post io2016

This talk• 40-45 minutes of trends and bleeding edge stuff

• Questions as we go and at the end

• I will tweet a link to the slides afterwards (@filipbech)

• Topics• Web vs. Native• New Language features in JavaScript• Frameworks • Styles • What else is hot?

Page 3: Web development post io2016

Filip

Page 4: Web development post io2016
Page 5: Web development post io2016

Web vs native• Performance

• Hardware

• Offline

• Re-engangement

• just one target-platform

• no gate-keepers

• easy to deploy and update

• the link…

Page 7: Web development post io2016

Progressive web apps

• RAIL

• Responsive design

• Secure

• ServiceWorker

Page 8: Web development post io2016

Performance

• Response (100ms)

• Animation (5-10ms) (transform+opacity & will-change)

• Idle (50ms)

• Load (1s)

Page 9: Web development post io2016

Service worker• Lives in the background after you close the

tab

• For network think of it as a proxy (=>offline)

• Sync

• Push (and notification clicks)

Page 10: Web development post io2016

lets see some code…

Page 11: Web development post io2016
Page 12: Web development post io2016
Page 13: Web development post io2016
Page 14: Web development post io2016
Page 15: Web development post io2016

use sw-toolbox.js for caching

Page 16: Web development post io2016

Web vs native

The web is catching up, and even though native will always be ahead, we have a valid

alternative with PWAs.

The biggest drawback now is Apple support of ServiceWorker.Tell Apple we want it: [email protected]

Page 17: Web development post io2016

Modern javascript• Backwards compatibility is the power of the

web. but also the horror (we can’t just bump the major version and introduce breaking changes)

• For years that meant nothing happened

• The standard has started evolving again…

Page 18: Web development post io2016

New language features

• Class

• Fat arrow

• Destructuring

• Default parameters

• Rest+spread

• Symbols

• Generators

Page 19: Web development post io2016

lets see some more code…

Page 20: Web development post io2016
Page 21: Web development post io2016

Now for a demo

http://localhost/

Page 22: Web development post io2016

Lots of cool new ES6use today - transpile for compatibility

Page 23: Web development post io2016

and maybe…

• Async functions (await)

• Decorators

• Observables…

Page 24: Web development post io2016

Two popular patterns has emerged

• Immutable

• Observable

Page 25: Web development post io2016

Frameworks

Page 26: Web development post io2016

Release candidateAngular Universal

#useThePlatformApp Toolbox

Frameworks

Page 27: Web development post io2016

What about style• The platform is catching up with pre-

processors

• Variables (custom properties)

• New layout opportunities• Flexbox• Multicolumn• Grid

• Houdini…

Page 28: Web development post io2016

Houdini

Exposing low-level styling to the javascript engine

Talk from Google IOhoudini-samples

Page 29: Web development post io2016
Page 30: Web development post io2016
Page 31: Web development post io2016
Page 32: Web development post io2016
Page 33: Web development post io2016

The Extensible Web Manifesto

ServiceWorker, Houdini, etc.

Page 34: Web development post io2016

What else is hot• Beacons that broadcast a url

• Web-bluetooth

• Instantly loading pages (AMP, Facebook instant articles)

• requestPayment api

Page 35: Web development post io2016

phew…

Page 36: Web development post io2016

How do we survive?• Take a chill-pill

• Embrace the extensible web using frameworks/tools

• Use new features in dev, and compile for compatibility

• Use resources to stay up to date• Newsletters• Blogs• Twitter• Conferences• Meetups

Page 37: Web development post io2016

ResourcesNewsletters• http://www.oreilly.com/webops-perf/newsletter.html• http://javascriptweekly.com/• http://esnextnews.us12.list-manage.com/subscribe?

u=d3a2c4d93441c84c0a1e6e808&id=705caf4dc7• https://www.smashingmagazine.com/the-smashing-newsletter/• http://html5weekly.com/• http://css-weekly.com/• http://www.ng-newsletter.com/• http://5thingsangular.github.io/

Podcasts• Javascript jabber• Javascript Air• The Web ahead• The web platform podcast• Shop talk• Adventures in Angular• Angular Air

Blogs• https://developers.google.com/web/updates/• https://developer.mozilla.org/en-US/• https://www.smashingmagazine.com/• http://blog.chromium.org/• https://www.christianheilmann.com/• https://addyosmani.com/blog/• https://www.igvita.com/archives/• https://toddmotto.com/• https://jakearchibald.com/• http://labs.ft.com/articles/• https://sarasoueidan.com/articles/• https://remysharp.com/• http://www.bennadel.com/• https://www.nczonline.net/• http://v8project.blogspot.dk/• https://blog.angularjs.org/

Twitter• https://twitter.com/toddmotto• https://twitter.com/SaraSoueidan• https://twitter.com/kentcdodds• https://twitter.com/theefer• https://twitter.com/stopsatgreen• https://twitter.com/Paul_Kinlan• https://twitter.com/aerotwist• https://twitter.com/paul_irish• https://twitter.com/jaffathecake• https://twitter.com/mafintosh• https://twitter.com/brucel• https://twitter.com/ChromiumDev• https://twitter.com/davidwalshblog• https://twitter.com/briantford

Page 38: Web development post io2016

Thanks

• @filipbech

• filipbech.github.io

Page 39: Web development post io2016