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

51
Yeoman HTML5 Webアプリ開発を効率化するツールの紹介 Chrome+HTML5 Developers Live Japan #4 2013.4.25 Bathtimefish 村岡 正和 つかってみよう!

Upload: masakazu-muraoka

Post on 15-Jan-2015

10.685 views

Category:

Technology


0 download

DESCRIPTION

Yeomanの基礎からちょっとした応用までを紹介。 Chrome+HTML5 Developers Live Japan #4 https://plus.google.com/events/c9p1aclqe3fhl6gpo9p5hj4a01g のライブ配信用スライドです。

TRANSCRIPT

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

YeomanHTML5 Webアプリ開発を効率化するツールの紹介

Chrome+HTML5 Developers Live Japan #42013.4.25

Bathtimefish 村岡 正和

つかってみよう!

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

join this live!

http://goo.gl/DXK5L

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

マークアップ部発足!

html5j.org

初代 部長になりました。

マークアップも楽しいですよケロ!

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

今日のおはなし

HTML5でイマドキっぽいWebサイトやWebアプリをつくるときにいろいろメンドイことがあって、

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

今日のおはなし

メンドイことがいい感じに自動的になったりしたらめんどくなくていいんだけどナンかいいのない?

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

今日のおはなし

それ、Yeomanでできるよ。というおはなし。

Yoemanつかったことない人向けにカンタンな紹介をします。あと、実用的なTipsも少々。

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

おはなしの流れ

•制作でめんどうなこといろいろあるよね•セットアップ•Yeomanを構成するツール•実際に使ってみる •とりあえず覚えておくコマンド•応用編 Tips

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

制作でめんどうなこといろいろあるよね?

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

コード書く前の準備いろいろ

• ディレクトリ構成• ローカルWebサーバー• クロスプラットフォームなページのスケルトン。ベストプラクティスなやつ。

• いいかんじのライブラリとかプラグインさがすの

etc...

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

コード書き中のいろいろ

• Save Reload Save Reload Save Reload...• CoffeeとかSassとかのコンパイル• テストの実行• 最適化、軽量化• ライブラリやフレームワークのアップデート

etc...

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

このオッサンがテキトーにやります。

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

Yeoman

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

http://yeoman.io/

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

Yeoman’s service

デキるオッサン

い ざ と い う と き の 際 立 っ た 働 き

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

こんな人にモロ刺さります。

• 制作テンプレ持ってない。つーか作るのメンドイ• 最近JavaScript書いてない。Coffee依存症• 最適化・軽量化に細かいこだわりはない。いい感じにやってほしい

• Sass最高ヒャッハー!• もうCompassでいいです• もうBootstrapでいいです

こんなの

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

セットアップ

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

黒い画面で、

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

npm install -g yo grunt-cli bower

※ grunt0.3以前をインストールしている場合、アンインストールしておく。

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

...と、そのまえに入れておくもの。

node.js (>=0.8.0)

ruby

compass

※ compass はgemで、node.jsは nodebrewが個人的にオススメhttp://compass-style.org/https://github.com/hokaccha/nodebrew

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

Yeomanを構成するツール

yo grunt bower

scaffolding preview, build, test package management

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

Yo

•Yeomanのプロジェクトを生成する$ yo webapp

angular, backbone, ember, chromeapp...様々なフレームワークのscaffoldingが可能。HTML5 Boilerplate, Gruntfile.js, component.json, node_modulesの自動配置。

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

Bower

•JSライブラリのパッケージマネージャ$ bower install underscore

install, search, list, update...JSライブラリ、jQueryプラグインなどを検索してapp/componentsに自動インストール。既存ライブラリの管理に便利。

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

Grunt

•JSベースの作業自動化ツール$ grunt server

server, build, test, clean...様々な作業を自動化、ローカルWebサーバー起動、ファイル更新監視、リリースビルド、テストetc...

制作時の中核的ツール。はっきりいって神!

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

v0.9以前をお使いの方へ

v1.0 betaになってからすごく変わったのでmigrating guideを読みましょう。

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

コマンドの変更

yeoman init ➜ yoyeoman build ➜ grunt [build]yeoman server ➜ grunt serveryeoman test ➜ grunt test

yeoman install ➜ bower installyeoman uninstall ➜ bower uninstallyeoman update ➜ bower updateyeoman list ➜ bower listyeoman search ➜ bower searchyeoman lookup ➜ bower lookup

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

実際につかってみる。

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

実際につかってみるとわかるけど、

裏ではGruntが相当がんばっている!

崇めようイノシシ神

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

Gruntfile.js

詳しくは公式で学びましょうhttp://gruntjs.com/

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

あと実は最初、、、

Bower要らないと思ってました

サーセン!

トリも食ってみるとウマかったです

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

まずはこれだけ覚えよう!

$ yo webapp

$ grunt server

はじめる前のじゅもん リリースのじゅもん

$ grunt build

or

$ grunt server:dist

まずは Designing in the Browserを快適に楽しんでみるといいよ!

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

応用編

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

RequireJSをインクルードしてwebappを生成すると、JSはモジュール化されたファイル構成で出力される。

•main.js•app.js

モジュールの読み込み、依存関係を記述する(require)

モジュール本体(define)

AMDについては以下を読むといいhttp://requirejs.org/docs/why.htmlhttp://requirejs.org/docs/whyamd.html

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

main.js

モジュールのパスを指定

モジュールの依存関係を定義

モジュールを利用した処理を記述

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

app.js

モジュールの処理を記述

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

app.js を変更してjqueryを使えるようにする

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

2.モジュール化したCoffeeをグローバルにコンパイルする

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

YeomanはCoffeeScriptを自動的にコンパイルする。便利なんだけど、CoffeeScriptはデフォルトで即時関数化するので複数のCoffeeファイル間でグローバル空間を利用するようなプログラムはコンパイル後に動かなくなる。

※ RequireJSとか使ってうまいことやらない場合のお話です。

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

Gruntfile.js coffee:dist ブロックにオプションを追加する

参考: https://github.com/gruntjs/grunt-contrib-coffee#readme

以前ブログに書きました Yeoman v0.9時点の話だけど。http://goo.gl/hc4Em

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

3.REST API サーバーを同時に開発する

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

Yeomanはプレビュー用localhostサーバーを立てる。便利なんだけど、JSONベースのREST APIサーバーを同時に開発する場合は別サーバーを立てないといけない。その場合クロスオリジンになるのでそのまんまだとajax通信ができなくて不便。

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

やり方

長いのでブログに書きました。http://goo.gl/SojUc

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

こうが、、、

Web Browser

Yoman Preview Server(localhost:9000)

API Server(localhost:3000)

✘ajax request

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

こうなるイメージ

Web Browser

Yeoman Preview Server(localhost:9000)

API Server(localhost:3000)

Proxy Server(localhost:8000)

ajax request

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

Yo, Grunt, Bower, (node.js) の相互依存性が低いので工夫次第でいくらでも便利にカスタマイズできそう。:)

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

まとめ

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

Yeomanを使うと、 Webアプリ開発効率がアップすると思います。

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

ぜひ使ってみてください!

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

happy����������� ������������������  coding����������� ������������������  :)

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

Thanks.