SlideShare a Scribd company logo
1 of 51
Download to read offline
Yeoman
HTML5 Webアプリ開発を効率化するツールの紹介
Chrome+HTML5 Developers Live Japan #4
2013.4.25
Bathtimefish 村岡 正和
つかってみよう!
join this live!
http://goo.gl/DXK5L
マークアップ部発足!
html5j.org
初代 部長になりました。
マークアップも楽しいですよケロ!
今日のおはなし
HTML5でイマドキっぽいWebサイ
トやWebアプリをつくるときにいろ
いろメンドイことがあって、
今日のおはなし
メンドイことがいい感じに自動的に
なったりしたらめんどくなくていい
んだけどナンかいいのない?
今日のおはなし
それ、Yeomanでできるよ。
というおはなし。
Yoemanつかったことない人向けに
カンタンな紹介をします。
あと、実用的なTipsも少々。
おはなしの流れ
•制作でめんどうなこといろいろあるよね
•セットアップ
•Yeomanを構成するツール
•実際に使ってみる
•とりあえず覚えておくコマンド
•応用編 Tips
制作でめんどうなこといろいろあるよね?
コード書く前の準備いろいろ
• ディレクトリ構成
• ローカルWebサーバー
• クロスプラットフォームなページのスケルトン。
ベストプラクティスなやつ。
• いいかんじのライブラリとかプラグインさがすの
etc...
コード書き中のいろいろ
• Save Reload Save Reload Save Reload...
• CoffeeとかSassとかのコンパイル
• テストの実行
• 最適化、軽量化
• ライブラリやフレームワークのアップデート
etc...
このオッサンがテキトーにやります。
Yeoman
http://yeoman.io/
Yeoman s service
デキるオッサン
い ざ と い う と き の 際 立 っ た 働 き
こんな人にモロ刺さります。
• 制作テンプレ持ってない。つーか作るのメンドイ
• 最近JavaScript書いてない。Coffee依存症
• 最適化・軽量化に細かいこだわりはない。いい感じ
にやってほしい
• Sass最高ヒャッハー!
• もうCompassでいいです
• もうBootstrapでいいです
こんなの
セットアップ
黒い画面で、
npm install -g yo grunt-cli bower
※ grunt0.3以前をインストールしている場合、アンインストールしておく。
...と、そのまえに入れておくもの。
node.js (>=0.8.0)
ruby
compass
※ compass はgemで、node.jsは nodebrewが個人的にオススメ
http://compass-style.org/
https://github.com/hokaccha/nodebrew
Yeomanを構成するツール
yo grunt bower
scaffolding preview, build, test package management
Yo
•Yeomanのプロジェクトを生成する
$ yo webapp
angular, backbone, ember, chromeapp...
様々なフレームワークのscaffoldingが可能。
HTML5 Boilerplate, Gruntfile.js, component.json,
node_modulesの自動配置。
Bower
•JSライブラリのパッケージマネージャ
$ bower install underscore
install, search, list, update...
JSライブラリ、jQueryプラグインなどを検索してapp/
componentsに自動インストール。既存ライブラリの管
理に便利。
Grunt
•JSベースの作業自動化ツール
$ grunt server
server, build, test, clean...
様々な作業を自動化、ローカルWebサーバー起動、フ
ァイル更新監視、リリースビルド、テストetc...
制作時の中核的ツール。はっきりいって神!
v0.9以前をお使いの方へ
v1.0 betaになってからすごく変わったのでmigrating guideを読みましょう。
コマンドの変更
yeoman init ➜ yo
yeoman build ➜ grunt [build]
yeoman server ➜ grunt server
yeoman test ➜ grunt test
yeoman install ➜ bower install
yeoman uninstall ➜ bower uninstall
yeoman update ➜ bower update
yeoman list ➜ bower list
yeoman search ➜ bower search
yeoman lookup ➜ bower lookup
実際につかってみる。
実際につかってみるとわかるけど、
裏ではGruntが
相当がんばっている!
崇めようイノシシ神
Gruntfile.js
詳しくは公式で学びましょう
http://gruntjs.com/
あと実は最初、、、
Bower要らないと思ってました
サーセン!
トリも食ってみるとウマかったです
component を検索してみよう
http://sindresorhus.com/bower-components/
まずはこれだけ覚えよう!
$ yo webapp
$ grunt server
はじめる前のじゅもん リリースのじゅもん
$ grunt build
or
$ grunt server:dist
まずは Designing in the Browserを快適に楽しんでみるといいよ!
応用編
RequireJSをインクルードしてwebappを生成すると、
JSはモジュール化されたファイル構成で出力される。
•main.js
•app.js
モジュールの読み込み、依存関係を記述する
(require)
モジュール本体(define)
AMDについては以下を読むといい
http://requirejs.org/docs/why.html
http://requirejs.org/docs/whyamd.html
main.js
モジュールのパスを指定
モジュールの依存関係を定義
モジュールを利用
した処理を記述
app.js
モジュールの処理を記述
app.js を変更してjqueryを使えるようにする
2.モジュール化した
Coffeeをグローバルに
コンパイルする
YeomanはCoffeeScriptを自動的にコンパイルする。
便利なんだけど、CoffeeScriptはデフォルトで即時関数
化するので複数のCoffeeファイル間でグローバル空間
を利用するようなプログラムはコンパイル後に動かな
くなる。
※ RequireJSとか使ってうまいことやらない場合のお話です。
Gruntfile.js coffee:dist ブロックにオプションを追加する
参考: https://github.com/gruntjs/grunt-contrib-coffee#readme
以前ブログに書きましたYeoman v0.9時点の話だけど。
http://goo.gl/hc4Em
3.REST API サーバーを
同時に開発する
Yeomanはプレビュー用localhostサーバーを立てる。
便利なんだけど、JSONベースのREST APIサーバーを
同時に開発する場合は別サーバーを立てないといけな
い。その場合クロスオリジンになるのでそのまんまだ
とajax通信ができなくて不便。
やり方
長いのでブログに書きました。
http://goo.gl/SojUc
こうが、、、
Web Browser
Yoman Preview Server
(localhost:9000)
API Server
(localhost:3000)
✘ajax request
こうなるイメージ
Web Browser
Yeoman Preview Server
(localhost:9000)
API Server
(localhost:3000)
Proxy Server
(localhost:8000)
ajax request
Yo, Grunt, Bower, (node.js) の相互依存
性が低いので工夫次第でいくらでも便利
にカスタマイズできそう。:)
まとめ
Yeomanを使うと、
Webアプリ開発効率が
アップすると思います。
ぜひ使ってみてください!
happy
 coding

More Related Content

What's hot

つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
Masakazu Muraoka
 

What's hot (10)

PWAでタイマーを 作ってみた
PWAでタイマーを 作ってみたPWAでタイマーを 作ってみた
PWAでタイマーを 作ってみた
 
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
 
HTML5+wordpressで電子書籍
HTML5+wordpressで電子書籍HTML5+wordpressで電子書籍
HTML5+wordpressで電子書籍
 
SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!
SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!
SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!
 
Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27
Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27
Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27
 
Web時代の完全リモート会社作り
Web時代の完全リモート会社作りWeb時代の完全リモート会社作り
Web時代の完全リモート会社作り
 
第3回 Web 動画 編集講座 〜 Webサイトに動画を掲載してみよう - NAMO (NAgoya Movie Obenkyokai)
第3回 Web 動画 編集講座 〜 Webサイトに動画を掲載してみよう - NAMO (NAgoya Movie Obenkyokai)第3回 Web 動画 編集講座 〜 Webサイトに動画を掲載してみよう - NAMO (NAgoya Movie Obenkyokai)
第3回 Web 動画 編集講座 〜 Webサイトに動画を掲載してみよう - NAMO (NAgoya Movie Obenkyokai)
 
自動化ワークショップ
自動化ワークショップ自動化ワークショップ
自動化ワークショップ
 
40
4040
40
 
今から始めるPhotoshopによるWeb制作-初期設定編
今から始めるPhotoshopによるWeb制作-初期設定編今から始めるPhotoshopによるWeb制作-初期設定編
今から始めるPhotoshopによるWeb制作-初期設定編
 

Viewers also liked

JasperServerとJJSUGの紹介(Osc2009 Tokyo Fall LT)
JasperServerとJJSUGの紹介(Osc2009 Tokyo Fall LT)JasperServerとJJSUGの紹介(Osc2009 Tokyo Fall LT)
JasperServerとJJSUGの紹介(Osc2009 Tokyo Fall LT)
Kensuke SAEKI
 

Viewers also liked (7)

JasperServerとJJSUGの紹介(Osc2009 Tokyo Fall LT)
JasperServerとJJSUGの紹介(Osc2009 Tokyo Fall LT)JasperServerとJJSUGの紹介(Osc2009 Tokyo Fall LT)
JasperServerとJJSUGの紹介(Osc2009 Tokyo Fall LT)
 
モバイル&クラウドにおけるイノベーションへの挑戦と実践
モバイル&クラウドにおけるイノベーションへの挑戦と実践モバイル&クラウドにおけるイノベーションへの挑戦と実践
モバイル&クラウドにおけるイノベーションへの挑戦と実践
 
IoT now: From Things to Outcomes
IoT now: From Things to OutcomesIoT now: From Things to Outcomes
IoT now: From Things to Outcomes
 
【Interop Tokyo 2016】 Cisco Jasper Control Center
【Interop Tokyo 2016】 Cisco Jasper Control Center【Interop Tokyo 2016】 Cisco Jasper Control Center
【Interop Tokyo 2016】 Cisco Jasper Control Center
 
ドコモオープンイノベーションの取り組みと提供APIのIoT展開について
ドコモオープンイノベーションの取り組みと提供APIのIoT展開についてドコモオープンイノベーションの取り組みと提供APIのIoT展開について
ドコモオープンイノベーションの取り組みと提供APIのIoT展開について
 
リクルートにおけるVDI導入とCiscoデータセンタソリューション
リクルートにおけるVDI導入とCiscoデータセンタソリューションリクルートにおけるVDI導入とCiscoデータセンタソリューション
リクルートにおけるVDI導入とCiscoデータセンタソリューション
 
Jasper, Internet of Things
Jasper, Internet of ThingsJasper, Internet of Things
Jasper, Internet of Things
 

More from Masakazu Muraoka

Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
Masakazu Muraoka
 
FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?
Masakazu Muraoka
 
実はとれました。System xhrでcsv形式のopen dataを取得する
実はとれました。System xhrでcsv形式のopen dataを取得する実はとれました。System xhrでcsv形式のopen dataを取得する
実はとれました。System xhrでcsv形式のopen dataを取得する
Masakazu Muraoka
 
HTML5でOpen Dataをやってみた
HTML5でOpen DataをやってみたHTML5でOpen Dataをやってみた
HTML5でOpen Dataをやってみた
Masakazu Muraoka
 
HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?
Masakazu Muraoka
 
Gaiaのソースコードに見るちょっと未来のweb app開発
Gaiaのソースコードに見るちょっと未来のweb app開発Gaiaのソースコードに見るちょっと未来のweb app開発
Gaiaのソースコードに見るちょっと未来のweb app開発
Masakazu Muraoka
 
Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発
Masakazu Muraoka
 
Html5でOpen Dataをやってみる
Html5でOpen DataをやってみるHtml5でOpen Dataをやってみる
Html5でOpen Dataをやってみる
Masakazu Muraoka
 

More from Masakazu Muraoka (20)

Kerasで可視化いろいろ
Kerasで可視化いろいろKerasで可視化いろいろ
Kerasで可視化いろいろ
 
Async awaitでの繰り返し処理についての小話
Async awaitでの繰り返し処理についての小話Async awaitでの繰り返し処理についての小話
Async awaitでの繰り返し処理についての小話
 
Thing.jsについて
Thing.jsについてThing.jsについて
Thing.jsについて
 
Mozapps installがなくなったことへの不平不満
Mozapps installがなくなったことへの不平不満Mozapps installがなくなったことへの不平不満
Mozapps installがなくなったことへの不平不満
 
react-jsonschema-formについて
react-jsonschema-formについてreact-jsonschema-formについて
react-jsonschema-formについて
 
Fetch apiについて
Fetch apiについてFetch apiについて
Fetch apiについて
 
JS非同期処理のいま
JS非同期処理のいまJS非同期処理のいま
JS非同期処理のいま
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
 
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
 
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるWeb屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
 
Espruinoの紹介
Espruinoの紹介Espruinoの紹介
Espruinoの紹介
 
FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?
 
実はとれました。System xhrでcsv形式のopen dataを取得する
実はとれました。System xhrでcsv形式のopen dataを取得する実はとれました。System xhrでcsv形式のopen dataを取得する
実はとれました。System xhrでcsv形式のopen dataを取得する
 
HTML5でOpen Dataをやってみた
HTML5でOpen DataをやってみたHTML5でOpen Dataをやってみた
HTML5でOpen Dataをやってみた
 
Htmlのコトバ
HtmlのコトバHtmlのコトバ
Htmlのコトバ
 
HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?
 
Gaiaのソースコードに見るちょっと未来のweb app開発
Gaiaのソースコードに見るちょっと未来のweb app開発Gaiaのソースコードに見るちょっと未来のweb app開発
Gaiaのソースコードに見るちょっと未来のweb app開発
 
Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発
 
Html5でOpen Dataをやってみる
Html5でOpen DataをやってみるHtml5でOpen Dataをやってみる
Html5でOpen Dataをやってみる
 
HTML5 and Graphics
HTML5 and GraphicsHTML5 and Graphics
HTML5 and Graphics
 

Recently uploaded

Recently uploaded (11)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

つかってみよう!Yeoman 〜HTML5 Webアプリ開発を効率化するツールの紹介〜