Asial Blog

Recruit! Asialで一緒に働きませんか?

ng-japanに参加しました

カテゴリ :
フロントエンド(HTML5)
タグ :
angularjs
JavaScript
HTML5
こんにちは。宇都宮です。今回は、週末に参加したイベントのレポートです。

3/21(土)に、ng-japanという日本初のAngularJSのカンファレンスが開催されました。会場は渋谷マークシティ13Fにある、サイバーエージェントさんのセミナールームでした。

今回のカンファレンスは、スピーカーにAngularJSのコアチームのメンバーが3名いるのが最大の特長でしょう。当然トークは英語なのですが、英=>日の逐次通訳付きなので、英語が苦手な人でも大丈夫なカンファレンスでした。

参加者の最大の関心事は「Angular 2はどうなるのか?」という点にあったと思います。私自身は、今回のカンファレンスに参加して、Angular 2について前向きな気持ちになれました。

以前は、「Angular 1系から2系への移行は無理」「1系はあと2年くらいでサポート終了」と思っていましたが、1系から2系へはアップグレードの道筋がつけられていること、1系のサポート期間はもう少し長くなるかも、といった情報を得ることができました。

プレゼンは全て映像化されていて、youtubeで視聴できます。



以下、各セッションについて簡単にまとめていきます。

Angular 1.4 and beyond



Chirayu Krishnappa(@chirayuk)氏による、AngularJS 1.4と、その周辺のお話でした。

今週にもリリース予定のAngularJS 1.4.0では、いくつかの新機能の追加、パフォーマンス改善とバグフィックスがあり、かつ、1.3系との強い後方互換性があります(破壊的変更は$cookieのみ)。そのため、1.3系のユーザーは、リリース後速やかに1.4.0にアップグレードすべき、とのことでした。

もう1つの話題はAngularJSのコミュニティでした。AngularJSのコミュニティはどんどん成長していて、AngularJSのソースに対するコミットは、現在では、Googleのコアチームよりも、コミュニティによって行われるものの方が多くなっている、とのことでした。

また、AngularJSにコントリビュートするためのお作法や、貢献を必要としている分野(たとえば、すでに解決済みなのに閉じられていないissueを閉じる等)なども紹介されていました。

スライドはhttp://ngjapan2015.chirayuk.com/#/です。

AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ



弊社の久保田(@anatoo)も、AngularJS製のUIフレームワーク・Onsen UIについて講演しました。

AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ from アシアル株式会社


タイトルだけ見るとOnsen UIの紹介がメインのように見えますが、実際は、ハイブリッドアプリの概要から始まり、HTML5アプリのパフォーマンスチューニングの話題が主要な部分を占めます。

ハイブリッドアプリにはUIフレームワークが欠けていた、だからOnsen UIを作ったのだ、という開発の経緯がよくわかるプレゼンでした。

スライドにない部分としては、Onsen UIと同じくハイブリッドアプリ用のUIフレームワークであるionicとの比較について、会場からの質問がありました。

OnsenUIのionicと比べた利点としては以下がある、とのことです。

- (ionicが初期はiOSにフォーカスしていたのに対して) OnsenUIはAndroidでもパフォーマンスの最適化を行っている
- OnsenUI 1.3ではWindows Phoneサポートを追加する予定
- OnsenUIは日本語ドキュメントがある

Routing your way in an Angular app



Brian Ford(@briantford)氏による、AngularJS用の新しいルーターコンポーネント(New Router)のお話でした。

新しいルーターは、以下のリポジトリで開発が進められています。
https://github.com/angular/router

新しいルーターは、Angular 2向けに設計されているものの、Angular 1でも動くように作られています。

また、1系から2系への移行の話題もあり、1系と2系は何らかの手段で共存できるような仕組みが用意され、機能単位で少しずつ移行を進める、といったことができる、とされていました(具体的な移行手順はまだ策定中のようです)。

その他、新しいルーターの機能紹介などが実際のコードを伴って紹介されていました。詳細は以下のスライドを参照してください。
http://goo.gl/YpKc6e

TypeScript+Angular 1.3



わかめ まさひろ氏(@vvakame)による、TypeScriptとAngularJSの関わりについての講演でした。

ng-japan 2015 TypeScript+AngularJS 1.3 from Masahiro Wakame


以前、Angular 2.0はAtScriptという、TypeScriptの機能強化版で実装される、という話がありましたが、最近になって、AtScriptではなくTypeScriptで実装されることになりました。TypeScriptの開発チームとAngularJSの開発チームがディスカッションした結果、TypeScriptに、AngularJSチームが求める機能が入ることになった、という経緯があるらしいです。

Angular 2ではTypeScriptでも開発できるようになるので、早めに慣れておいたほうが良いのでは、ということで、TypeScriptの構文の簡単な紹介から、TypeScript + Angular 1.3におけるプロジェクトのテンプレートの紹介まで、実践的な内容が豊富でした。

ちなみに、一般的なJavaScriptライブラリをTypeScriptで使うには、TypeScript用の型定義ファイルというものが必要になります。Onsen UIには現在、TypeScript用の型定義ファイルが無いのですが、Onsen UI 1.3では型定義ファイルが用意されるとかされないとか…。

Angular 2



Igor Minar(@igorminar)氏による、Angular 2についての講演です。

冒頭、Google内部では2000ものアプリケーションがAngularJSで構築されている、というお話が出てきて、驚きました。社内のみで利用されるアプリケーションがほとんどらしいですが、それにしてもすごい数です。

Angular 2は以下のテーマに基いて構築されているそうです。

- Simpler
- Consistent
- Flexible
- Fast
- Productive

中でも熱心に説明されていたのが、「Fast」、パフォーマンスについてでした。Angular 2は素の状態でもAngular 1の3倍近く、View Cacheを使えば8倍近いパフォーマンス(パフォーマンス最適化の理論上の最適値に近いパフォーマンス)を出すことも可能、とのことです。

また、Angular 1が対応する言語はJavaScriptだけで、AltJSは公式のサポート対象ではありませんでしたが、Angular 2ではTypeScriptがサポート対象に加わります。

今年の5月には、Angular 2.0をGoogle社内で使い始めるらしいです。

また、気になる1系から2系への移行の話ですが、ほとんどの人が1系から2系に移行完了するまでは1系をサポートすること、移行のための機能やツールを用意すること、など、既存ユーザーのための移行パスを設けることを強調していました。

スライドはhttp://goo.gl/plXk7dです。

スポンサーLT



Piece of Cakeの今さんとLIGの林さんのLTのテーマがモロに被っていたのが印象的でした。
どちらも、Angular 1.3から加わった機能・ワンタイムバインディングと、digest loopが走るタイミングについてのプレゼンでした。

One Time Binding & Digest Loop from Kon Yuichi


One-time Binding & $digest from Hayashi Yuichi


要するに、ワンタイムバインディングを使ってwatcherの数を減らすこと、digest loopの数を減らすことは、パフォーマンス改善のために非常に重要である、ということですね。

おわりに



以上、各セッションの内容を簡単にまとめてきました。
AngularJSを実際に作っている人の話が聞けるというのは、とても貴重な経験だったと思います。