ng-japanに参加しました
こんにちは。宇都宮です。今回は、週末に参加したイベントのレポートです。
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について講演しました。
タイトルだけ見ると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の関わりについての講演でした。
以前、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が走るタイミングについてのプレゼンでした。
要するに、ワンタイムバインディングを使ってwatcherの数を減らすこと、digest loopの数を減らすことは、パフォーマンス改善のために非常に重要である、ということですね。
おわりに
以上、各セッションの内容を簡単にまとめてきました。
AngularJSを実際に作っている人の話が聞けるというのは、とても貴重な経験だったと思います。