LoginSignup
17
13

More than 5 years have passed since last update.

Angular Dartのハイレベルロードマップ

Last updated at Posted at 2016-08-19

AngularDartのハイレベルロードマップの草稿が発表されたので抄訳してみた。

抄訳

ハイレベルロードマップ

これは開発計画の草稿だ。Angular Dartは現在、多くの大規模なGoogleプロジェクトで使用されている。そして何よりも、私たちは特に、安定性、性能、そして生産性に関して深く検討する。

Angular 2 JS/TS プロジェクトとの関係についてのメモ。私たちはTS版チームと設計と性能の記録を共有し2つのバージョンを出来るだけ近いものに維持するが、私たちは時折、Dartコミュニティーのためにより良いものになるように、同一の機能とAPIを持つよりも分化させることを選択する。現時点では、私たちはDagger2を基礎にした新しいDIとComponent APIを開発中であり、それはDartの強力な静的型解析とレキシカルスコープを活かしたものになる。

性能

  • Angular Dartのコンパイラを、(できる限り)イディオマティックなDartコードを出力するように最適化する。
  • Change Detectionの実行コストを最適化し、Flutterに似た、一部のコンポーネントツリーだけをアップデートの対象とするリアクティブモデルの方向に進める。
    • *ngForを書き直し、メモリとCPUの消費を抑える。
    • const/finalバインディングを理解させ、毎回でなくただ一度だけ検査させる。
  • ブラウザーとコンポーネントのイベントが軽量化するよう最適化する。
  • より洗練されたコードをビルドするため、静的型を使用してより最適化されたテンプレートを生成する。

コードサイズ

  • tree-shakingと親和性の高い静的なDependency Injection。
  • コンパイラに、デバッギングパスを排したより良い「リリースモード」コードを出力させるよう改善する。
  • ngIfディレクティブを、それがスコープ外になる際には軽量化するよう改善する。

生産性

  • 正式にDart DDCとstrong modeをサポートする。全てのブラウザーで瞬時の更新操作で開発できるようになる。
  • i18nヘルパーコードを生成する。
  • テンプレートで、静的でトップレベルのメソッドとゲッターを使用できるようにする。
  • より明瞭で、早期に報告される、理解可能なコンパイル時の警告(ランタイムと比較して)。

他の計画

私たちは近々、コード生成(production appのような)を利用したMaterial Components、ルーター、Form APIと、新しいテストに関するさらなる話を公開できる見込みだ。

所感

  • Dartが1年以上地道に整備してきたエコシステムを最大限生かしたフレームワークに変貌してほしい。
  • コンパイラが改善されることで、現状ではかなり意味不明なこともあるDIに関するランタイムエラーメッセージに悩まされなくなることに大きな期待。
  • DDCが正式にサポートされれば、ChromeやFirefox等のブラウザーで素速く開発できるようになる。DartiumはChromeのバージョンから何ヶ月も遅れているので、最新のWeb技術をJS APIのラッパーを書いてテストすることが現実的ではなかったが、これで現実的にできるようになるだろうし、CSSのクロスブラウザのテストも苦痛なくできるようになるだろう。例えるならばCoffeeScriptのようにDartを利用できることになりそうだ。
  • Flutterの素晴らしい成果を積極的に取り込んでいってほしい。特に、FlutterのUIライブラリをコンパイルしてAngularで利用可能にすることは可能かどうか興味がある。ElmのviewのようにDartでviewを書いてAngularテンプレートにコンパイルするイメージ。
17
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
13