Reactでアプリつくって、最初はよかったんだけど段々と「うーん」となって、Vue.jsやRiotがいいと聞いてさわってみても「うーん」で、Angular2はTypeScriptが苦手なので「うーん」で、そういえば、昔Polymerさわったなぁと思っていたらちょうど勉強会があったので参加してみました。
結果、とても好きになりました。なんでPolymer0.5のときイマイチと思ったのかなぁ。
Extensible Web
Polymerの説明の前に主催者の岸田さんからExtensible Webの話がありました。
その詳細はオリジナルをみてもらうとして、私は次のムーブメントだと理解しています。
Web 標準化団体がWebをつくるのではなく、全てのエンジニアでWebをつくっていこう
これまでも、jQueryなど外部のライブラリで実現されていたことが標準仕様に取り込まれてきた歴史はあるけれど、はっきりと変えていこうという意思表示に美しさを感じます。
Web Components / コンポーネント指向
Extensible Webの次はWeb Components。
Web Componentsが何かというのはW3Cの仕様のとおりということになります。
Web Componentsはコンポーネント指向の仕様で、Webのコンポーネント指向について、私は次のように理解しています。
開発者が(HTMLとCSSとJSを使って)新しいコンポーネント(タグ)を定義して再利用できるようにする
この考えにあてはめると、ReactもVue.jsもRiotもコンポーネント指向です。
でも、これらはW3CのWeb Components仕様に準拠しているわけではなく、準拠しているものには、MozillaのX-TagsやGoogleのPolymerなどがあります。
X-TagsとPolymerを比べると、Polymerの方はGoogleらしく、Material Design、Google API、Progressive Web Appsを取り入れたものがすぐ使えるという特徴があります。
Progressive Web Apps
Progressive Web Appsは、Googleが提唱しているWebアプリです。
仕様がある訳ではないようですが、私は次のとおり理解しています。
ネイティブアプリと同じように、インストールできて、ホームから素早く起動できて、オフラインでも使えて、プッシュ通知もできるなどの特徴を兼ね備えたWebアプリ
Googleのサイトに従ってやれば、できなくないですが、Polymerを使うとPWAが簡単にできるとのこと。
Polymerを使ってみる
岸田さんがGoogleのCodelabsに登録されているチュートリアルのうち、 Polymerに関連したものピックアップしてくれています。
今回は「コーディングなしでGoogleMapを作ってみよう」をやってみました。
Polymerには、すぐに使えるWeb Componentsが用意されているので、HTMLとCSSがわかれば、JSを使わなくてもある程度のことができてしまいます。
その他のWeb Componentsも使えて、WEBCOMPONENTS.orgでは開発者が自作のweb componentsを公開できるそう。
Polymer.co-edo meetupは定期的に開催するそうだし、Polymer 2.0は2017年の第1クオーターのリリースを目指しているそうなので、今年中に何かアプリをつくってみようと思います。