Polymer is a project dedicated to Google’s realization of web components. One of the trending features of modern web development is its pushing towards modularity. This is where web components shine. Web Components is a set of standards for the creation of reusable HTML elements.
About Google’s Polymer
Creating simple and clear independent elements charged with a hidden logic is the essence of web components. The element includes all the necessary styles and scripts to prevent conflicts between elements on the global level.
Google Polymer Web Components
If not a framework, what are web components? It is rather a set of technologies, realized in a browser. So, Polymer is like a wrap with some additional functionality. The purpose of this project is to make libraries as light as possible and delegate the massive part of work to a browser which contributes to the development of high-quality web applications. Polymer supports all the major browsers available.
What I like about Polymer is its Angular-like internal ability to link data allowing to build a wholesome app without any additional libraries.
Folks at Google believe that anything can be element.
«There is an element for that»
You don’t have to go through a web component developer certification to see that. It sounded like a slogan on the Google I/O 2015 sessions. And this is the very concept of modularity. Everything you do can be arranged as an element!
In our application development we often stumble upon similar set of tasks and Google is there to offer a bunch of ready-to-use building blocks for them.
This catalog contains a number of various Polymer component solutions.
A progressive web application can be deployed by using a set of specific components, tools, and templates. Such a set exists and it’s called Polymer App Toolbox.
The following are some of Google Polymer features:
- Component-based architecture using Polymer and web components.
- Responsive design using the app layout components.
- Modular routing using the elements.
- Localization with .
- Turnkey support for local storage with app storage elements.
- Offline caching as a progressive enhancement using service workers.
- Build-in tooling to support serving your app multiple ways: unbundled for delivery over HTTP/2 with server push and bundled for delivery over HTTP/1.
You can use all these features together for a complete progressive application experience or separately for specific goals.
For rapid web application development you can use the Polymer Starter Kit utility. With the help of it you can fairly quickly deploy a basic application that could feature the following:
- Polymer, Paper, Iron, and Neon elements.
- Material Design layout.
- Routing partials with Page.js
- Unit testing with Web Component Tester.
- Offline support through Platinum Service Worker.
- Build tools (including Vulcanize).
- ES2015 support.
The Pros and Cons of Using Polymer
As a conclusion, I’d like to point out the pros and cons of Polymer that I was able to figure out along the way.
- Polymer tends to using the native browser technologies instead of relying on the ever growing stack of complex custom scripts.
- Developing under the Polymer project is nothing but the creation of elements. What does building an app out of simple elements turns the app itself into? Exactly, an element.
- A totally new approach in web development. I would call it “element-oriented”.
- Lack of documentation.
- Unclear usage in a large application development.
- Issues with library dependencies.
- Some issues with mobile platforms.
- Total load of libraries and polyfills.
As technology grows over time, browsers introduce brand new standards, Shadow DOM keeps getting better which means from the future perspective, Polymer is going to get faster as well.