Top Banner
38
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Levent-Gurses' Introduction to Web Components & Polymer
Page 2: Levent-Gurses' Introduction to Web Components & Polymer
Page 3: Levent-Gurses' Introduction to Web Components & Polymer
Page 4: Levent-Gurses' Introduction to Web Components & Polymer
Page 5: Levent-Gurses' Introduction to Web Components & Polymer

<puzzle-maker background=”grade” from=”#333” to=”#aaa”>

Page 6: Levent-Gurses' Introduction to Web Components & Polymer

<puzzle-maker background=”metal” col1=”#333” col2=”#aaa”>

Page 7: Levent-Gurses' Introduction to Web Components & Polymer
Page 8: Levent-Gurses' Introduction to Web Components & Polymer
Page 9: Levent-Gurses' Introduction to Web Components & Polymer
Page 10: Levent-Gurses' Introduction to Web Components & Polymer

<music-player type=”mobile-a” platforms=”ios, android”>

Page 11: Levent-Gurses' Introduction to Web Components & Polymer

<music-player type=”mobile-b” platforms=”ios, android”>

Page 12: Levent-Gurses' Introduction to Web Components & Polymer

Introduction to Web Components and Polymer

@gursesl

Page 13: Levent-Gurses' Introduction to Web Components & Polymer

The Landscape

Page 14: Levent-Gurses' Introduction to Web Components & Polymer

Web ComponentsWeb Components consist of four pieces that let web application developers define widgets with a level of visual richness not possible with CSS alone, and ease of composition and reuse not possible with script libraries today.

● Templates - blocks of markup that are inert but can be activated for use later

● Decorators - which apply templates to let CSS affect visual and behavioral changes

● Shadow DOM which defines how presentation and behavior of decorators and custom elements fit together in the DOM tree

● Custom elements - let developers define their own reusable custom elements

Decorators and custom elements are called components.

Page 15: Levent-Gurses' Introduction to Web Components & Polymer

Templates

Page 16: Levent-Gurses' Introduction to Web Components & Polymer

Decorators

Page 17: Levent-Gurses' Introduction to Web Components & Polymer

Shadow DOM

Page 18: Levent-Gurses' Introduction to Web Components & Polymer

Custom Elements

Page 19: Levent-Gurses' Introduction to Web Components & Polymer

customelements.io

Page 20: Levent-Gurses' Introduction to Web Components & Polymer
Page 21: Levent-Gurses' Introduction to Web Components & Polymer

Polymer

Polymer is a library for building modular web applications. It is built on new web platform primitives called Web Components.

Web Components are easier to develop, compose, connect and use on the web. The result is an increase in developer productivity.

Page 22: Levent-Gurses' Introduction to Web Components & Polymer

But, The Question Is...

Is Polymer production-ready? No.

Page 23: Levent-Gurses' Introduction to Web Components & Polymer

Browser Support

Page 24: Levent-Gurses' Introduction to Web Components & Polymer

Polymer Designer

Page 25: Levent-Gurses' Introduction to Web Components & Polymer

Material design is a unified system of visual, motion, and interaction design that adapts across different devices. Material design is inspired by tactile materials, such as paper and ink.

Polymer’s paper elements collection implements material design for the web. The Polymer core elements collection provides a number of unthemed elements that you can use to achieve material design app layouts, transitions, and scrolling effects.

Page 26: Levent-Gurses' Introduction to Web Components & Polymer
Page 27: Levent-Gurses' Introduction to Web Components & Polymer
Page 28: Levent-Gurses' Introduction to Web Components & Polymer

Lifecycle Methods

Page 29: Levent-Gurses' Introduction to Web Components & Polymer

Data BindingPolymer supports two-way data binding. Data binding extends HTML

and the DOM APIs to support a sensible separation between the UI

(DOM) of an application and its underlying data (model). Updates to

the model are reflected in the DOM and user input into the DOM is

immediately assigned to the model.

Page 30: Levent-Gurses' Introduction to Web Components & Polymer

PolyfillsCustom JavaScript methods inside webcomponents.js designed to make

non-native browsers (Everything other than Chrome) support web

components. webcomponents.js is a set of polyfills built on top of the

web components specifications. It makes it possible for developers to

use these standards today across all modern browsers.

Page 31: Levent-Gurses' Introduction to Web Components & Polymer

Polyfill Functionality● Web Components

○ Custom Elements . Define new elements in HTML○ HTML Imports. Load element definitions and other resources

declaratively○ Shadow DOM. Encapsulate DOM subtrees and the associated CSS

● DOM○ WeakMap. Shim for ES6 WeakMap type○ Mutation Observers. Efficiently watch for changes in the DOM

Page 32: Levent-Gurses' Introduction to Web Components & Polymer

Scoped Styles<div> <style scoped> h1 { background-color: #333; color: #FFF; } </style> <h1 id="foo">Scoped</h1></div><h1 id="bar">Not Scoped</h1>

Ability to scope styles allows for full encapsulation, especially when used in templates and decorators.

Page 33: Levent-Gurses' Introduction to Web Components & Polymer

Routing

By combining data-binding, core-scaffold, core-pages/core-animated-pages, and <flatiron-director> (an element for routing), it is possible to create a responsive SPA with deep linking.

Page 34: Levent-Gurses' Introduction to Web Components & Polymer

The Stack

● Polymer (WC) is not a full stack application framework● It needs a back end

○ Rails/MVC/Sinatra○ ...Or Java, .Net, PHP○ ...Or Node

● Can be used with Angular on the front end

Page 35: Levent-Gurses' Introduction to Web Components & Polymer

Build & Packaging

● Build○ Gulp○ Grunt

● Packaging○ Bower○ Wcpack

Page 36: Levent-Gurses' Introduction to Web Components & Polymer

Polymer vs. Angular

● Open standards vs. front-end framework● SPA vs. MPA● Self-contained, reusable elements are more portable● Web Components vs. Angular Directives● The future of Angular - 2.0 will implement web components

Page 37: Levent-Gurses' Introduction to Web Components & Polymer

Demo

Page 38: Levent-Gurses' Introduction to Web Components & Polymer

References● Web Components Explained● Browser Compatibility Matrix● Material Design Specification● Polymer Designer● Polymer FAQs● React vs. Web Components● The Problem With Using HTML Imports For Dependency Management● Mobile Chrome Apps● Code Samples - https://github.com/mobiledc/polymer