MOBILE CONFERENCE 2017
Framework for Web Application
@Component({
selector: "app-profile",
template: "<p>Name: {{ name }}</p>"
})
class ProfileComponent {
@Input() name: string;
}
<div>
<app-profile name="laco"></app-profile>
</div>
Framework + Tooling + Ecosystem
フレームワークだけではない
アプリケーション開発に必要なすべてを提供
フレームワークライブラリ
UIコンポーネントライブラリ
エディター支援
ビルドツール
スタイルガイド/ベストプラクティス
公式ドキュメンテーションサイト
チュートリアル
開発ガイド
APIリファレンス
周辺リンク集
Angularで実装されたアプリケーション
Material Designコンポーネントライブラリ
Angularチームの公式サポート
Angularアプリケーション開発を支援するCLIツール
プロジェクト生成
ビルド
デバッグ
テスト
最新のベストプラクティスを元に更新される
AngularJS 2?
Angular2 ?
"Angular" ver.4
Angular x.y.z
x: メジャー
破壊的変更を含む可能性がある機能追加
y: マイナー
破壊的変更を含まない機能追加
z: パッチ
バグ修正のみ
定期アップデート
毎週のパッチアップデート
毎月のマイナーアップデート
6ヶ月おきのメジャーアップデート
破壊的変更があってもなくてもバージョンアップ
“53% of mobile site visits are abandoned if pages take longer than 3 seconds to load”
DoubleClick, “The Need for Mobile Speed”, 2016
“3 out of 4 mobile sites take longer than 10 seconds to load and the average time to load is 19 seconds”
DoubleClick, “The Need for Mobile Speed”, 2016
パフォーマンスの悪さ
=コンバージョンの低さ
アプリケーション起動までの場繋ぎ
「待っている」と思わせないための工夫
First View of the application
ネイティブアプリケーションのように起動するための手法
アプリケーションをShellとContentに分ける
Shellはキャッシュ可能な最低限のHTML/JS/CSS
実行時にはContentだけを読み込む
要求される画面をサーバー上で事前に描画する
HTMLとしてキャッシュしておく
同一コードで動作する
Run Angular on Server
Node.js上でAngularアプリケーションを実行
実行結果をHTML文字列として取得できる
index.htmlの代わりに配信
AngularでPWAを構築するためのツール群
@angular/app-shell
@angular/service-worker
pre-rendering helper
AppShellのレンダリングを補助するライブラリ
AppShellに含める / 含めない要素を指定できる
*shellRender / *shellNoRender
Service Worker generator
ServiceWorkerのJSを生成するツール
ngsw-manifest.jsonの設定を元に生成する
Angular ❤️ Mobile
Small Bundle + High Performance
App ShellとPre-rendering
Mobile Toolkitで簡単PWA化