SlideShare a Scribd company logo
1 of 47
Angular2実践入門
株式会社オープンウェブ・テクノロジー
白石俊平
自己紹介
• html5jファウンダー
• HTML5 Experts.jp編集長
• 株式会社オープンウェブ・テクノロ
ジー代表取締役
• TechFeedというサービスをはじめ
ました
本日の流れ
• ライブコーディングで学ぶAngular2
• Angular2を始めたらあなたが出会うであ
ろう11のこと
ライブコーディングで学ぶ
Angular2
スターターキット作りました
• https://goo.gl/WiM2zn
– 短縮前: https://github.com/shumpei/angular2-webpack-starter-minimum
• Angular2をWebpackで始めるための最小構成。
– 教育用途、もしくは開発環境を自作したい人向け
• Out-of-boxを求めるなら以下がおすすめ
– angular-seed・・・公式のスターターキット。全
部入り。
– angular-webpack-starter・・・それなりにコンパ
クトで割と全部入り
動かしてみる
$ 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/
Angular2の特徴
• TypeScriptを推奨
• コンポーネント指向
• ちょっとキモい
• Angularっぽさ
• やっぱりキモい
特徴その1: TypeScript
• ES.next全部 + 型
• 実験的なサポート扱いの「デコレー
ター」は必須
コードを眺めてみる
import {Component} from 'angular2/core';
@Component({
selector: 'my-app',
templateUrl: '/src/components/app.component.html'
})
export class AppComponent {
}
app.component.ts
import {Component} from 'angular2/core';
@Component({
selector: 'my-app',
templateUrl: '/src/components/app.component.html'
})
export class AppComponent {
}
コンポーネント定義
(デコレーター)
app.component.ts
import {Component} from 'angular2/core';
@Component({
selector: 'my-app',
templateUrl: '/src/components/app.component.html'
})
export class AppComponent {
}
<my-app>で
埋め込めるように
app.component.ts
import {Component} from 'angular2/core';
@Component({
selector: 'my-app',
templateUrl: '/src/components/app.component.html'
})
export class AppComponent {
}
テンプレート
ファイルのURL
app.component.ts
特徴その2: コンポーネント指向
• UIコンポーネントをツリー上に構成して
アプリケーションを作る
コンポーネントを書いてみる
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>で
埋め込めるように
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
ディレクティブを
利用
特徴その3: ちょっとキモい
• テンプレートのシンタックスがキモい
クリックイベントを捕捉してみる
<button (click)="onClick()">Click me!</button>
キモい
alert-button.component.ts
export class AlertButtonComponent {
onClick(): void {
window.alert('Hello!');
}
}
alert-button.component.ts
対応するイベントハ
ンドラ
特徴その4: Angularっぽさ
• サービス/DI/ディレクティブなど、
Angular1で使われてた用語/概念を引き
継いでいる
– やり方は大きく変わったけど
サービスを書いてDIしてみる
import {Injectable} from 'angular2/core';
@Injectable()
export class MyService {
loadData(): string[] {
return ['a', 'b', 'c'];
}
}
DI可能なサービスの
定義
my.service.ts
...
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!
特徴その5: やっぱりキモい
• テンプレート中では、以下の様な記法を
要素内に記述していくことになる。
– ( ), [ ], [( )], #, *
– 全力出すとこんな感じ:
• HTML/CSSをデコレーターで指定できる
<input *ngIf="alive" [(ngModel)]="name" #name>
ループを書いてみる(ngFor)
...
<ul>
<li *ngFor="#item of data">{{item}}</li>
</ul>
DI可能なサービスの
定義
app.component.html
テンプレートをデコレーターに
埋め込んでみる。
ついでにCSSも。
@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も
デコレータに埋め込
める
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 {
}
コンポーネント外に
は影響しない
Angular2を始めたらあなたが
出会うであろう11のこと
techfeed.io
最先端が、ここにある。
世界中からエンジニア向け情報を収集するサービス
Angular2を仕事で使ってみた
その1: ハードル高くない?
• 前提技術大杉。
– TypeScript (ES.next全部+型)
– モジュールバンドラー
– RxJS
– そしてもちろんAngular2
• 意外とそうでもなかった(個人的には)
– Angularの文脈を引き継いでいる
– TypeScriptはJavaっぽい(白石は元Java屋)
– RxJSは最初から詳しく知っている必要なし
– Webpackの調整が一番時間かかった。。
• でもこれは誰か一人がやればいいこと
その2: 言語はどれを選ぶ?
• TypeScript一択、だと思う
– ドキュメント完備
– 型があるのは嬉しい(コンパイル/コード補
完)
– デコレーターが嬉しい
• その他の選択肢について
– JavaScript/Babel…止めはしない。
(が、きっとTSのほうが楽)
– Dart…ごめんなさい
その3: バンドラーを何にする?
• TypeScriptを選んだのなら、モジュールバ
ンドラー必須
import {Component} from 'angular2/core'
↓ (TypeScriptコンパイラ)
var Component = require('angular2/core').Component;
↓ (モジュールバンドラーがrequireをブラウザ上で使えるよう変換)
var component_1 = __webpack_require__(1);
その3: バンドラーを何にする?
• TechFeedではWebpackを選択
– 実績豊富
– なんでもできそう
– 既に下調べが済んでいた
• その他の選択肢について
– Browserify…未調査
– System.js
• 現在のところAngular2公式?
• 後発なため情報が少なめ
• JSPMも組み合わせる必要あり?
• 参考文献
– http://webpack.github.io/docs/comparison.html
– http://ilikekillnerds.com/2015/07/jspm-vs-webpack/
その4: エディタは何にする?
• TypeScript対応のものを(できればtslint
も)
– Atom+Plugins
– Sublime Text+Plugins
– Visual Studio Code
– WebStorm
• 元Java屋さんとしては、「IDE」にも心惹
かれる今日このごろ
その5: テンプレートを
どこに書く?
Webpackを使えばこんなことも!
@Component({template: `code`}) // (1)
@Component({templateUrl:'url'}) // (2)
VS
@Component({template:require('a.html')}) // (3)
リクエスト数 ファイル数 HTML分離 エディタサ
ポート
前処理
(1)埋め込み 少 少 × × ×
(2)URL 多 多 ○ ○ ×
(3)Webpack 少 少 ○ ○ ○
その6: テンプレートがキモい
• 慣れろ
• 新しいメンタルモデルを理解すれば、少しは楽に
なる。
– こいつはHTMLじゃない。HTML Plusだ。
– タグの属性と(DOMの)プロパティはそもそも似て非
なるものだ。
– [ ]はプロパティを指している
– 属性ってやつは、プロパティの初期化に過ぎない。
<!-- 属性でスタイルを指定 -->
<div style="font-size: 16px"></div>
<!-- プロパティでスタイルを指定 -->
<div [style.fontSize]="16px"></div>
その7: Sassを使いたい
• モジュールバンドラーの機能を駆使すれば、
Sass/Less/Stylus/PostCSSなども利用可能
@Component({styles:[require('comp.scss')]})
loaders: [
{test: /.scss$/,
loaders: ['raw', 'sass?sourceMap', 'postcss'],
exclude: /node_modules/}
...
]
• Webpackでの設定例
その8: RxJSとのつきあい方
• RxJS(リアクティブプログラミング用ライブラリ)
は、理解が必須ではないものの、限りなく必須に近い
– HTTP, EventEmitterなどの頻出APIがRxJS前提なため
• ObservableはES7にも提案されているので、この機会
に勉強しておくのは吉
– でも、奥深すぎ。。
• Angular2はRxJS5 (Beta)を使っているので要注意!
– ググッて先頭に出てくるのは4系
– 「ReactiveX」ってやつが5系です
– 5系は、ドキュメントとかもまだまだ・・・
その9: ページネーションしたい
• よくあるユースケースだけど、世界中が現在実装方法
を模索中
• ぼくらはObservableの簡単なラッパーを作りました
– 以下はイメージを伝えるための擬似コード
interface PagedObservable<T> extends Observable<T> {
nextPage(): void;
}
class EntryService {
getTimeline(): PagedObservable<Entry[]>
}
class TimelineComponent {
timeline: PagedObservable<Entry[]>;
more() { this.timeline.nextPage(); }
}
その10: UIフレームワーク
使いたい!
• TechFeedではIonic2を採用
– Angular2で完全にリライトされている
– Angular2開発の参考にもなる
• その他(調査中)
– Onsen UI 2.0
– angular-material2
– ng2-bootstrap
その11: コンポーネント設計
• コンポーネントの粒度や、振る舞いや状態をどこ
に配置するかは、現在熱い話題
• 「Presentational and Container Components」が
議論の土台
– だが、やはり悩ましい
– 「全部外側に移譲する」ってこと?めんどくさすぎ
ない?
– Google MapsやYoutubeの埋め込みプレーヤー、「い
いね!」ボタンなどは良いコンポーネントの例に思
える。スマートだけど再利用性高い。
• 「必要になるまで分割するな」
– 個人的に、唯一の正解と思えていること
おまけ
Angularの最新情報は
こちらでどうぞ!
https://techfeed.io/channels/AngularJS
ご清聴ありがとうございました。

More Related Content

What's hot

【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発日本マイクロソフト株式会社
 
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話Kazuyoshi Tsuchiya
 
リクルート流Elasticsearchの使い方
リクルート流Elasticsearchの使い方リクルート流Elasticsearchの使い方
リクルート流Elasticsearchの使い方Recruit Technologies
 
継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine PluginMei Nakamura
 
ROSCon発表の振り返りとROSConの振り返り(ROS Japan UG #48 ROSCon 2022ふりかえり会)
ROSCon発表の振り返りとROSConの振り返り(ROS Japan UG #48 ROSCon 2022ふりかえり会)ROSCon発表の振り返りとROSConの振り返り(ROS Japan UG #48 ROSCon 2022ふりかえり会)
ROSCon発表の振り返りとROSConの振り返り(ROS Japan UG #48 ROSCon 2022ふりかえり会)Atsushi Hasegawa
 
本格的に始めるzsh
本格的に始めるzsh本格的に始めるzsh
本格的に始めるzshHideaki Miyake
 
落合流先生流の論文要旨フォーマット
落合流先生流の論文要旨フォーマット落合流先生流の論文要旨フォーマット
落合流先生流の論文要旨フォーマット森 哲也
 
Node-REDのノード開発容易化ツール Node generator
Node-REDのノード開発容易化ツールNode generatorNode-REDのノード開発容易化ツールNode generator
Node-REDのノード開発容易化ツール Node generatorBMXUG
 
noteの決して止まらないカイゼンを支える、 エンジニアリングへの挑戦
noteの決して止まらないカイゼンを支える、 エンジニアリングへの挑戦noteの決して止まらないカイゼンを支える、 エンジニアリングへの挑戦
noteの決して止まらないカイゼンを支える、 エンジニアリングへの挑戦Kon Yuichi
 
Denoで動くReactフレームワークAleph.jsでポートフォリオサイトをリプレイスした話
Denoで動くReactフレームワークAleph.jsでポートフォリオサイトをリプレイスした話Denoで動くReactフレームワークAleph.jsでポートフォリオサイトをリプレイスした話
Denoで動くReactフレームワークAleph.jsでポートフォリオサイトをリプレイスした話yuosaka
 
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMatYasuhiro Yoshimura
 
Juliaで前処理
Juliaで前処理Juliaで前処理
Juliaで前処理weda654
 
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしようYasuhiro Yoshimura
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣Masahiro Nishimi
 
OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向Tatsuo Kudo
 
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~Saki Homma
 
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)gree_tech
 
Redmineをプラグインで拡張しよう
Redmineをプラグインで拡張しようRedmineをプラグインで拡張しよう
Redmineをプラグインで拡張しようHaruyuki Iida
 
ソースコードレビューのススメ
ソースコードレビューのススメソースコードレビューのススメ
ソースコードレビューのススメKLab Inc. / Tech
 
git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用Will Huang
 

What's hot (20)

【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
 
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
 
リクルート流Elasticsearchの使い方
リクルート流Elasticsearchの使い方リクルート流Elasticsearchの使い方
リクルート流Elasticsearchの使い方
 
継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin
 
ROSCon発表の振り返りとROSConの振り返り(ROS Japan UG #48 ROSCon 2022ふりかえり会)
ROSCon発表の振り返りとROSConの振り返り(ROS Japan UG #48 ROSCon 2022ふりかえり会)ROSCon発表の振り返りとROSConの振り返り(ROS Japan UG #48 ROSCon 2022ふりかえり会)
ROSCon発表の振り返りとROSConの振り返り(ROS Japan UG #48 ROSCon 2022ふりかえり会)
 
本格的に始めるzsh
本格的に始めるzsh本格的に始めるzsh
本格的に始めるzsh
 
落合流先生流の論文要旨フォーマット
落合流先生流の論文要旨フォーマット落合流先生流の論文要旨フォーマット
落合流先生流の論文要旨フォーマット
 
Node-REDのノード開発容易化ツール Node generator
Node-REDのノード開発容易化ツールNode generatorNode-REDのノード開発容易化ツールNode generator
Node-REDのノード開発容易化ツール Node generator
 
noteの決して止まらないカイゼンを支える、 エンジニアリングへの挑戦
noteの決して止まらないカイゼンを支える、 エンジニアリングへの挑戦noteの決して止まらないカイゼンを支える、 エンジニアリングへの挑戦
noteの決して止まらないカイゼンを支える、 エンジニアリングへの挑戦
 
Denoで動くReactフレームワークAleph.jsでポートフォリオサイトをリプレイスした話
Denoで動くReactフレームワークAleph.jsでポートフォリオサイトをリプレイスした話Denoで動くReactフレームワークAleph.jsでポートフォリオサイトをリプレイスした話
Denoで動くReactフレームワークAleph.jsでポートフォリオサイトをリプレイスした話
 
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
 
Juliaで前処理
Juliaで前処理Juliaで前処理
Juliaで前処理
 
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
 
OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向
 
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
 
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
 
Redmineをプラグインで拡張しよう
Redmineをプラグインで拡張しようRedmineをプラグインで拡張しよう
Redmineをプラグインで拡張しよう
 
ソースコードレビューのススメ
ソースコードレビューのススメソースコードレビューのススメ
ソースコードレビューのススメ
 
git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用
 

Similar to Angular2実践入門

僕はどうしてAngular2をテーマに登壇することになってしまったのか
僕はどうしてAngular2をテーマに登壇することになってしまったのか僕はどうしてAngular2をテーマに登壇することになってしまったのか
僕はどうしてAngular2をテーマに登壇することになってしまったのかTomohiro Noguchi
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門Shumpei Shiraishi
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
NodeにしましょうYuzo Hebishima
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウKentarou Mukunasi
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理Kouji Matsui
 
Enterprise x AngularJS
Enterprise x AngularJSEnterprise x AngularJS
Enterprise x AngularJSKenichi Kanai
 
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja77web
 
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!leverages_event
 
(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境についてKazuhiro Hara
 
Telloをarマーカーで操作する
Telloをarマーカーで操作するTelloをarマーカーで操作する
Telloをarマーカーで操作するssuser81580e
 
2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open sourceYoshiyuki Nakamura
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみようYou&I
 
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都  Flex & Google App Engine for Java & ...2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都  Flex & Google App Engine for Java & ...
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...Sadao Tokuyama
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
Deep Dive into Modules
Deep Dive into ModulesDeep Dive into Modules
Deep Dive into ModulesHideki Saito
 
Qt5のセンサーAPIを使ってみたい
Qt5のセンサーAPIを使ってみたいQt5のセンサーAPIを使ってみたい
Qt5のセンサーAPIを使ってみたいYou&I
 
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月VirtualTech Japan Inc.
 
QML上にOpenGLのカスタムエレメントを表示する
QML上にOpenGLのカスタムエレメントを表示するQML上にOpenGLのカスタムエレメントを表示する
QML上にOpenGLのカスタムエレメントを表示するnobo66
 

Similar to Angular2実践入門 (20)

僕はどうしてAngular2をテーマに登壇することになってしまったのか
僕はどうしてAngular2をテーマに登壇することになってしまったのか僕はどうしてAngular2をテーマに登壇することになってしまったのか
僕はどうしてAngular2をテーマに登壇することになってしまったのか
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ
 
Angular#Kanazawa
Angular#KanazawaAngular#Kanazawa
Angular#Kanazawa
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
 
Enterprise x AngularJS
Enterprise x AngularJSEnterprise x AngularJS
Enterprise x AngularJS
 
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
 
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
 
(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について
 
Telloをarマーカーで操作する
Telloをarマーカーで操作するTelloをarマーカーで操作する
Telloをarマーカーで操作する
 
2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみよう
 
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都  Flex & Google App Engine for Java & ...2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都  Flex & Google App Engine for Java & ...
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
Deep Dive into Modules
Deep Dive into ModulesDeep Dive into Modules
Deep Dive into Modules
 
Qt5のセンサーAPIを使ってみたい
Qt5のセンサーAPIを使ってみたいQt5のセンサーAPIを使ってみたい
Qt5のセンサーAPIを使ってみたい
 
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
 
QML上にOpenGLのカスタムエレメントを表示する
QML上にOpenGLのカスタムエレメントを表示するQML上にOpenGLのカスタムエレメントを表示する
QML上にOpenGLのカスタムエレメントを表示する
 
Openshift 20191121
Openshift 20191121Openshift 20191121
Openshift 20191121
 

More from Shumpei Shiraishi

コンセプトのつくりかた - アイデアをかたちにする技術
コンセプトのつくりかた - アイデアをかたちにする技術コンセプトのつくりかた - アイデアをかたちにする技術
コンセプトのつくりかた - アイデアをかたちにする技術Shumpei Shiraishi
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶShumpei Shiraishi
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門Shumpei Shiraishi
 
「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んでShumpei Shiraishi
 
「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んでShumpei Shiraishi
 
WebRTCがビデオ会議市場に与えるインパクトを探る
WebRTCがビデオ会議市場に与えるインパクトを探るWebRTCがビデオ会議市場に与えるインパクトを探る
WebRTCがビデオ会議市場に与えるインパクトを探るShumpei Shiraishi
 
変身×フランツ・カフカ
変身×フランツ・カフカ変身×フランツ・カフカ
変身×フランツ・カフカShumpei Shiraishi
 
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んでイラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んでShumpei Shiraishi
 
「1秒でわかる!アパレル業界ハンドブック」を読んで
「1秒でわかる!アパレル業界ハンドブック」を読んで「1秒でわかる!アパレル業界ハンドブック」を読んで
「1秒でわかる!アパレル業界ハンドブック」を読んでShumpei Shiraishi
 
HTML5時代のフロントエンド開発入門
HTML5時代のフロントエンド開発入門HTML5時代のフロントエンド開発入門
HTML5時代のフロントエンド開発入門Shumpei Shiraishi
 
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
6,000人のWeb技術者コミュニティを5年間やってみて学んだことShumpei Shiraishi
 
はじめにことばありき
はじめにことばありきはじめにことばありき
はじめにことばありきShumpei Shiraishi
 
HTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクトHTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクトShumpei Shiraishi
 
この人と結婚していいの?を読んで
この人と結婚していいの?を読んでこの人と結婚していいの?を読んで
この人と結婚していいの?を読んでShumpei Shiraishi
 
第62回 読書するエンジニアの会(テーマ:メカ) 「Prototyping lab」
第62回 読書するエンジニアの会(テーマ:メカ) 「Prototyping lab」第62回 読書するエンジニアの会(テーマ:メカ) 「Prototyping lab」
第62回 読書するエンジニアの会(テーマ:メカ) 「Prototyping lab」Shumpei Shiraishi
 
はやぶさ」からの贈り物
はやぶさ」からの贈り物はやぶさ」からの贈り物
はやぶさ」からの贈り物Shumpei Shiraishi
 

More from Shumpei Shiraishi (20)

俺的GEB概論(前半)
俺的GEB概論(前半)俺的GEB概論(前半)
俺的GEB概論(前半)
 
コンセプトのつくりかた - アイデアをかたちにする技術
コンセプトのつくりかた - アイデアをかたちにする技術コンセプトのつくりかた - アイデアをかたちにする技術
コンセプトのつくりかた - アイデアをかたちにする技術
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
 
「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで
 
「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで
 
WebRTCがビデオ会議市場に与えるインパクトを探る
WebRTCがビデオ会議市場に与えるインパクトを探るWebRTCがビデオ会議市場に与えるインパクトを探る
WebRTCがビデオ会議市場に与えるインパクトを探る
 
変身×フランツ・カフカ
変身×フランツ・カフカ変身×フランツ・カフカ
変身×フランツ・カフカ
 
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んでイラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
 
「1秒でわかる!アパレル業界ハンドブック」を読んで
「1秒でわかる!アパレル業界ハンドブック」を読んで「1秒でわかる!アパレル業界ハンドブック」を読んで
「1秒でわかる!アパレル業界ハンドブック」を読んで
 
漫☆画太郎論
漫☆画太郎論漫☆画太郎論
漫☆画太郎論
 
HTML5時代のフロントエンド開発入門
HTML5時代のフロントエンド開発入門HTML5時代のフロントエンド開発入門
HTML5時代のフロントエンド開発入門
 
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
 
はじめにことばありき
はじめにことばありきはじめにことばありき
はじめにことばありき
 
秒速一億円
秒速一億円秒速一億円
秒速一億円
 
HTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクトHTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクト
 
この人と結婚していいの?を読んで
この人と結婚していいの?を読んでこの人と結婚していいの?を読んで
この人と結婚していいの?を読んで
 
20130921レジュメ2
20130921レジュメ220130921レジュメ2
20130921レジュメ2
 
第62回 読書するエンジニアの会(テーマ:メカ) 「Prototyping lab」
第62回 読書するエンジニアの会(テーマ:メカ) 「Prototyping lab」第62回 読書するエンジニアの会(テーマ:メカ) 「Prototyping lab」
第62回 読書するエンジニアの会(テーマ:メカ) 「Prototyping lab」
 
はやぶさ」からの贈り物
はやぶさ」からの贈り物はやぶさ」からの贈り物
はやぶさ」からの贈り物
 

Recently uploaded

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Recently uploaded (9)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

Angular2実践入門