Submit Search
Angular2実践入門
Download as PPTX, PDF
43 likes
37,833 views
Shumpei Shiraishi
ng-japan 2016で発表したスライドです。
Technology
Read more
1 of 47
Download now
Downloaded 66 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
More Related Content
PDF
Concourseで快適な自動化の旅
Kazuto Kusama
PPTX
モデルアーキテクチャ観点からの高速化2019
Yusuke Uchida
PDF
コンピュータビジョンで作る未来の栽培技術POL共催セミナー_20220527
ssuser5ec200
PDF
[DL輪読会]Adversarial Learning for Zero-shot Domain Adaptation
Deep Learning JP
PDF
コンピューテーショナルフォトグラフィ
Norishige Fukushima
PDF
楽しいShaderToy
Masaki Sasaki
PPTX
[DL輪読会]DropBlock: A regularization method for convolutional networks
Deep Learning JP
PDF
【DL輪読会】Deep Transformers without Shortcuts: Modifying Self-attention for Fait...
Deep Learning JP
Concourseで快適な自動化の旅
Kazuto Kusama
モデルアーキテクチャ観点からの高速化2019
Yusuke Uchida
コンピュータビジョンで作る未来の栽培技術POL共催セミナー_20220527
ssuser5ec200
[DL輪読会]Adversarial Learning for Zero-shot Domain Adaptation
Deep Learning JP
コンピューテーショナルフォトグラフィ
Norishige Fukushima
楽しいShaderToy
Masaki Sasaki
[DL輪読会]DropBlock: A regularization method for convolutional networks
Deep Learning JP
【DL輪読会】Deep Transformers without Shortcuts: Modifying Self-attention for Fait...
Deep Learning JP
What's hot
(20)
PDF
機械学習応用システムの安全性の研究動向と今後の展望
Nobukazu Yoshioka
PPTX
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
Deep Learning JP
PPTX
【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...
Deep Learning JP
PDF
Riderはいいぞ!
UnityTechnologiesJapan002
PDF
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
ARISE analytics
PPTX
アンリアルエンジン4で ノンフォトリアル描画しよう!@UNREAL FEST 2015 YOKOHAMA
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
CuPy解説
Ryosuke Okuta
PDF
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
Life Robotics
PDF
Hair Groom入門 (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
[DL輪読会]Neuroscience-Inspired Artificial Intelligence
Deep Learning JP
PDF
アップルの特許に見るUI特許のポイント
kurikiyo
PPTX
MLOpsはバズワード
Tetsutaro Watanabe
PPTX
Semi supervised, weakly-supervised, unsupervised, and active learning
Yusuke Uchida
PPTX
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
Deep Learning JP
PDF
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
Unity Technologies Japan K.K.
PDF
Unity dojo amplifyshadereditor101_jpn-jp
小林 信行
PDF
GUILTY GEAR Xrd開発スタッフが送るアニメ調キャラモデリングTIPS
ARC SYSTEM WORKS
PDF
ディープラーニングのフレームワークと特許戦争
Yosuke Shinya
PDF
第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ
Yuichi Ishii
PPTX
Jupyterカーネルを魔改造した話
Amazon Web Services Japan
機械学習応用システムの安全性の研究動向と今後の展望
Nobukazu Yoshioka
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
Deep Learning JP
【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...
Deep Learning JP
Riderはいいぞ!
UnityTechnologiesJapan002
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
ARISE analytics
アンリアルエンジン4で ノンフォトリアル描画しよう!@UNREAL FEST 2015 YOKOHAMA
エピック・ゲームズ・ジャパン Epic Games Japan
CuPy解説
Ryosuke Okuta
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
Life Robotics
Hair Groom入門 (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
[DL輪読会]Neuroscience-Inspired Artificial Intelligence
Deep Learning JP
アップルの特許に見るUI特許のポイント
kurikiyo
MLOpsはバズワード
Tetsutaro Watanabe
Semi supervised, weakly-supervised, unsupervised, and active learning
Yusuke Uchida
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
Deep Learning JP
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
Unity Technologies Japan K.K.
Unity dojo amplifyshadereditor101_jpn-jp
小林 信行
GUILTY GEAR Xrd開発スタッフが送るアニメ調キャラモデリングTIPS
ARC SYSTEM WORKS
ディープラーニングのフレームワークと特許戦争
Yosuke Shinya
第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ
Yuichi Ishii
Jupyterカーネルを魔改造した話
Amazon Web Services Japan
Similar to Angular2実践入門
(16)
PDF
はじめてのAngular その1
純一 榮枝
PPTX
僕はどうしてAngular2をテーマに登壇することになってしまったのか
Tomohiro Noguchi
PDF
今からでも遅くない! 2から始めるangular js
Kohashi Daisuke
PDF
イベント駆動AngularJS / 今から書くAngular 2.0
Okuno Kentaro
PDF
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
Takuma Morikawa
PDF
traceur-compilerで未来のJavaScriptを体験
Toshio Ehara
PPTX
エンタープライズ分野での実践AngularJS
Ayumi Goto
PDF
Angular2
Kenichi Kanai
PDF
angular1脳で見るangular2
Moriyuki Arakawa
PDF
Ecmascript2015とその周辺について
豊明 尾古
PDF
Angularを利用したシステム開発事例
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
PPTX
Our Track to Modern Angular
Yuta Shimizu
PPTX
angularJS vs angular2
Kamimura Taichi
PPTX
TypeScriptからひも解く方向性
echigoya-jp
PDF
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Masahiro Wakame
PDF
TypeScript 言語処理系ことはじめ
Yu Nobuoka
はじめてのAngular その1
純一 榮枝
僕はどうしてAngular2をテーマに登壇することになってしまったのか
Tomohiro Noguchi
今からでも遅くない! 2から始めるangular js
Kohashi Daisuke
イベント駆動AngularJS / 今から書くAngular 2.0
Okuno Kentaro
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
Takuma Morikawa
traceur-compilerで未来のJavaScriptを体験
Toshio Ehara
エンタープライズ分野での実践AngularJS
Ayumi Goto
Angular2
Kenichi Kanai
angular1脳で見るangular2
Moriyuki Arakawa
Ecmascript2015とその周辺について
豊明 尾古
Angularを利用したシステム開発事例
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
Our Track to Modern Angular
Yuta Shimizu
angularJS vs angular2
Kamimura Taichi
TypeScriptからひも解く方向性
echigoya-jp
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Masahiro Wakame
TypeScript 言語処理系ことはじめ
Yu Nobuoka
More from Shumpei Shiraishi
(20)
PDF
俺的GEB概論(前半)
Shumpei Shiraishi
PPTX
コンセプトのつくりかた - アイデアをかたちにする技術
Shumpei Shiraishi
PPTX
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
Shumpei Shiraishi
PPTX
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
PPTX
JavaScript使いのためのTypeScript実践入門
Shumpei Shiraishi
PPTX
「それでも人生にイエスと言う」を読んで
Shumpei Shiraishi
PPTX
「それでも人生にイエスと言う」を読んで
Shumpei Shiraishi
PDF
WebRTCがビデオ会議市場に与えるインパクトを探る
Shumpei Shiraishi
PDF
変身×フランツ・カフカ
Shumpei Shiraishi
PPTX
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
Shumpei Shiraishi
PPTX
「1秒でわかる!アパレル業界ハンドブック」を読んで
Shumpei Shiraishi
PPTX
漫☆画太郎論
Shumpei Shiraishi
PPTX
HTML5時代のフロントエンド開発入門
Shumpei Shiraishi
PPTX
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
Shumpei Shiraishi
PPTX
はじめにことばありき
Shumpei Shiraishi
PPTX
秒速一億円
Shumpei Shiraishi
PPTX
HTML5がもたらすアプリ開発へのインパクト
Shumpei Shiraishi
PPTX
この人と結婚していいの?を読んで
Shumpei Shiraishi
PPT
20130921レジュメ2
Shumpei Shiraishi
PPTX
第62回 読書するエンジニアの会(テーマ:メカ) 「Prototyping lab」
Shumpei Shiraishi
俺的GEB概論(前半)
Shumpei Shiraishi
コンセプトのつくりかた - アイデアをかたちにする技術
Shumpei Shiraishi
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
Shumpei Shiraishi
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
JavaScript使いのためのTypeScript実践入門
Shumpei Shiraishi
「それでも人生にイエスと言う」を読んで
Shumpei Shiraishi
「それでも人生にイエスと言う」を読んで
Shumpei Shiraishi
WebRTCがビデオ会議市場に与えるインパクトを探る
Shumpei Shiraishi
変身×フランツ・カフカ
Shumpei Shiraishi
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
Shumpei Shiraishi
「1秒でわかる!アパレル業界ハンドブック」を読んで
Shumpei Shiraishi
漫☆画太郎論
Shumpei Shiraishi
HTML5時代のフロントエンド開発入門
Shumpei Shiraishi
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
Shumpei Shiraishi
はじめにことばありき
Shumpei Shiraishi
秒速一億円
Shumpei Shiraishi
HTML5がもたらすアプリ開発へのインパクト
Shumpei Shiraishi
この人と結婚していいの?を読んで
Shumpei Shiraishi
20130921レジュメ2
Shumpei Shiraishi
第62回 読書するエンジニアの会(テーマ:メカ) 「Prototyping lab」
Shumpei Shiraishi
Angular2実践入門
1.
Angular2実践入門 株式会社オープンウェブ・テクノロジー 白石俊平
2.
自己紹介 • html5jファウンダー • HTML5
Experts.jp編集長 • 株式会社オープンウェブ・テクノロ ジー代表取締役 • TechFeedというサービスをはじめ ました
3.
本日の流れ • ライブコーディングで学ぶAngular2 • Angular2を始めたらあなたが出会うであ ろう11のこと
4.
ライブコーディングで学ぶ Angular2
5.
スターターキット作りました • https://goo.gl/WiM2zn – 短縮前:
https://github.com/shumpei/angular2-webpack-starter-minimum • Angular2をWebpackで始めるための最小構成。 – 教育用途、もしくは開発環境を自作したい人向け • Out-of-boxを求めるなら以下がおすすめ – angular-seed・・・公式のスターターキット。全 部入り。 – angular-webpack-starter・・・それなりにコンパ クトで割と全部入り
6.
動かしてみる $ git clone
https://github.com/shumpei/angular2- webpack-starter-minimum $ cd angular2-webpack-starter-minimum $ npm install $ npm start http://localhost:8080/webpack-dev-server/
7.
Angular2の特徴 • TypeScriptを推奨 • コンポーネント指向 •
ちょっとキモい • Angularっぽさ • やっぱりキモい
8.
特徴その1: TypeScript • ES.next全部
+ 型 • 実験的なサポート扱いの「デコレー ター」は必須
9.
コードを眺めてみる
10.
import {Component} from
'angular2/core'; @Component({ selector: 'my-app', templateUrl: '/src/components/app.component.html' }) export class AppComponent { } app.component.ts
11.
import {Component} from
'angular2/core'; @Component({ selector: 'my-app', templateUrl: '/src/components/app.component.html' }) export class AppComponent { } コンポーネント定義 (デコレーター) app.component.ts
12.
import {Component} from
'angular2/core'; @Component({ selector: 'my-app', templateUrl: '/src/components/app.component.html' }) export class AppComponent { } <my-app>で 埋め込めるように app.component.ts
13.
import {Component} from
'angular2/core'; @Component({ selector: 'my-app', templateUrl: '/src/components/app.component.html' }) export class AppComponent { } テンプレート ファイルのURL app.component.ts
14.
特徴その2: コンポーネント指向 • UIコンポーネントをツリー上に構成して アプリケーションを作る
15.
コンポーネントを書いてみる
16.
import {Component} from
'angular2/core'; @Component({ selector: 'my-alert-button', templateUrl: '/src/components/alert- button.component.html' }) export class AlertButtonComponent { } alert-button.component.ts <button>Click me!</button> alert-button.component.html <my-alert-button>で 埋め込めるように
17.
import {Component} from
'angular2/core'; @Component({ selector: 'my-app', templateUrl: '/src/components/app.component.html', directives: [AlertButtonComponent] }) export class AppComponent { } 使用するディレク ティブを宣言 app.component.ts <h1>My first Angular2 app!</h1> <my-alert-button></my-alert-button> alert-button.component.html ディレクティブを 利用
18.
特徴その3: ちょっとキモい • テンプレートのシンタックスがキモい
19.
クリックイベントを捕捉してみる
20.
<button (click)="onClick()">Click me!</button> キモい alert-button.component.ts export
class AlertButtonComponent { onClick(): void { window.alert('Hello!'); } } alert-button.component.ts 対応するイベントハ ンドラ
21.
特徴その4: Angularっぽさ • サービス/DI/ディレクティブなど、 Angular1で使われてた用語/概念を引き 継いでいる –
やり方は大きく変わったけど
22.
サービスを書いてDIしてみる
23.
import {Injectable} from
'angular2/core'; @Injectable() export class MyService { loadData(): string[] { return ['a', 'b', 'c']; } } DI可能なサービスの 定義 my.service.ts
24.
... import {MyService} from
'../services/my.service'; @Component({ selector: 'my-app', templateUrl: '/src/components/app.component.html', directives: [AlertButtonComponent], providers: [MyService] }) export class AppComponent { private data: string[]; constructor(private myService: MyService) { this.data = myService.loadData(); } } プロバイダの指定 my.service.ts Inject!
25.
特徴その5: やっぱりキモい • テンプレート中では、以下の様な記法を 要素内に記述していくことになる。 –
( ), [ ], [( )], #, * – 全力出すとこんな感じ: • HTML/CSSをデコレーターで指定できる <input *ngIf="alive" [(ngModel)]="name" #name>
26.
ループを書いてみる(ngFor)
27.
... <ul> <li *ngFor="#item of
data">{{item}}</li> </ul> DI可能なサービスの 定義 app.component.html
28.
テンプレートをデコレーターに 埋め込んでみる。 ついでにCSSも。
29.
@Component({ selector: 'my-app', template: ` <h1>My
first Angular2 app!</h1> <my-alert-button></my-alert-button> <ul> <li *ngFor="#item of data">{{item}}</li> </ul> `, styles: [` h1 { color: red; } `], directives: [AlertButtonComponent], providers: [MyService] }) export class AppComponent {...} alert-button.component.ts app.component.ts HTMLもCSSも デコレータに埋め込 める
30.
CSSもカプセル化される • @Componentデコレーターのstylesというプ ロパティにCSSを指定できる。 • そのCSSはコンポーネント内のみ有効 import
{Component} from 'angular2/core'; @Component({ selector: 'my-alert-button', templateUrl: '/src/components/alert- button.component.html', styles: [`* {color: blue;}`] }) export class AlertButtonComponent { } コンポーネント外に は影響しない
31.
Angular2を始めたらあなたが 出会うであろう11のこと
32.
techfeed.io 最先端が、ここにある。 世界中からエンジニア向け情報を収集するサービス Angular2を仕事で使ってみた
33.
その1: ハードル高くない? • 前提技術大杉。 –
TypeScript (ES.next全部+型) – モジュールバンドラー – RxJS – そしてもちろんAngular2 • 意外とそうでもなかった(個人的には) – Angularの文脈を引き継いでいる – TypeScriptはJavaっぽい(白石は元Java屋) – RxJSは最初から詳しく知っている必要なし – Webpackの調整が一番時間かかった。。 • でもこれは誰か一人がやればいいこと
34.
その2: 言語はどれを選ぶ? • TypeScript一択、だと思う –
ドキュメント完備 – 型があるのは嬉しい(コンパイル/コード補 完) – デコレーターが嬉しい • その他の選択肢について – JavaScript/Babel…止めはしない。 (が、きっとTSのほうが楽) – Dart…ごめんなさい
35.
その3: バンドラーを何にする? • TypeScriptを選んだのなら、モジュールバ ンドラー必須 import
{Component} from 'angular2/core' ↓ (TypeScriptコンパイラ) var Component = require('angular2/core').Component; ↓ (モジュールバンドラーがrequireをブラウザ上で使えるよう変換) var component_1 = __webpack_require__(1);
36.
その3: バンドラーを何にする? • TechFeedではWebpackを選択 –
実績豊富 – なんでもできそう – 既に下調べが済んでいた • その他の選択肢について – Browserify…未調査 – System.js • 現在のところAngular2公式? • 後発なため情報が少なめ • JSPMも組み合わせる必要あり? • 参考文献 – http://webpack.github.io/docs/comparison.html – http://ilikekillnerds.com/2015/07/jspm-vs-webpack/
37.
その4: エディタは何にする? • TypeScript対応のものを(できればtslint も) –
Atom+Plugins – Sublime Text+Plugins – Visual Studio Code – WebStorm • 元Java屋さんとしては、「IDE」にも心惹 かれる今日このごろ
38.
その5: テンプレートを どこに書く? Webpackを使えばこんなことも! @Component({template: `code`})
// (1) @Component({templateUrl:'url'}) // (2) VS @Component({template:require('a.html')}) // (3) リクエスト数 ファイル数 HTML分離 エディタサ ポート 前処理 (1)埋め込み 少 少 × × × (2)URL 多 多 ○ ○ × (3)Webpack 少 少 ○ ○ ○
39.
その6: テンプレートがキモい • 慣れろ •
新しいメンタルモデルを理解すれば、少しは楽に なる。 – こいつはHTMLじゃない。HTML Plusだ。 – タグの属性と(DOMの)プロパティはそもそも似て非 なるものだ。 – [ ]はプロパティを指している – 属性ってやつは、プロパティの初期化に過ぎない。 <!-- 属性でスタイルを指定 --> <div style="font-size: 16px"></div> <!-- プロパティでスタイルを指定 --> <div [style.fontSize]="16px"></div>
40.
その7: Sassを使いたい • モジュールバンドラーの機能を駆使すれば、 Sass/Less/Stylus/PostCSSなども利用可能 @Component({styles:[require('comp.scss')]}) loaders:
[ {test: /.scss$/, loaders: ['raw', 'sass?sourceMap', 'postcss'], exclude: /node_modules/} ... ] • Webpackでの設定例
41.
その8: RxJSとのつきあい方 • RxJS(リアクティブプログラミング用ライブラリ) は、理解が必須ではないものの、限りなく必須に近い –
HTTP, EventEmitterなどの頻出APIがRxJS前提なため • ObservableはES7にも提案されているので、この機会 に勉強しておくのは吉 – でも、奥深すぎ。。 • Angular2はRxJS5 (Beta)を使っているので要注意! – ググッて先頭に出てくるのは4系 – 「ReactiveX」ってやつが5系です – 5系は、ドキュメントとかもまだまだ・・・
42.
その9: ページネーションしたい • よくあるユースケースだけど、世界中が現在実装方法 を模索中 •
ぼくらはObservableの簡単なラッパーを作りました – 以下はイメージを伝えるための擬似コード interface PagedObservable<T> extends Observable<T> { nextPage(): void; } class EntryService { getTimeline(): PagedObservable<Entry[]> } class TimelineComponent { timeline: PagedObservable<Entry[]>; more() { this.timeline.nextPage(); } }
43.
その10: UIフレームワーク 使いたい! • TechFeedではIonic2を採用 –
Angular2で完全にリライトされている – Angular2開発の参考にもなる • その他(調査中) – Onsen UI 2.0 – angular-material2 – ng2-bootstrap
44.
その11: コンポーネント設計 • コンポーネントの粒度や、振る舞いや状態をどこ に配置するかは、現在熱い話題 •
「Presentational and Container Components」が 議論の土台 – だが、やはり悩ましい – 「全部外側に移譲する」ってこと?めんどくさすぎ ない? – Google MapsやYoutubeの埋め込みプレーヤー、「い いね!」ボタンなどは良いコンポーネントの例に思 える。スマートだけど再利用性高い。 • 「必要になるまで分割するな」 – 個人的に、唯一の正解と思えていること
45.
おまけ
46.
Angularの最新情報は こちらでどうぞ! https://techfeed.io/channels/AngularJS
47.
ご清聴ありがとうございました。
Download