実践 大都会式 プロトタイピング&フロントエンド 2014

94

Upload: masayuki-maekawa

Post on 04-Jul-2015

1.519 views

Category:

Internet


2 download

DESCRIPTION

オープンセミナー2014@岡山 / 2014年5月17日(土) 久保木 博・前川 昌幸 スライド見てもわけわからないかもしれませんが。が。

TRANSCRIPT

Page 1: 実践 大都会式 プロトタイピング&フロントエンド 2014
Page 2: 実践 大都会式 プロトタイピング&フロントエンド 2014

アウトライン

•自己紹介 •プロトタイピング •サーバサイド •UIデザイン •フロントエンド •まとめ

Page 3: 実践 大都会式 プロトタイピング&フロントエンド 2014

自己紹介:前川

•Web制作会社勤務(6月末まで以後未定) •マークアップ> フロントエンド>  サーバーサイド

Page 4: 実践 大都会式 プロトタイピング&フロントエンド 2014

最近は本書いたりしてます

Page 5: 実践 大都会式 プロトタイピング&フロントエンド 2014

自己紹介:久保木

•某Sler勤務 •デザイン>マークアップ>フロントエンド

これは私も参加してます→

Page 6: 実践 大都会式 プロトタイピング&フロントエンド 2014

コトのはじめ

“こちら側”を知ってもらうには どうすればいいか

何かを作ってその過程を紹介するのはどうか

Page 7: 実践 大都会式 プロトタイピング&フロントエンド 2014

んじゃ、何か作ってみるか !

Page 8: 実践 大都会式 プロトタイピング&フロントエンド 2014

アイデア出し

Page 9: 実践 大都会式 プロトタイピング&フロントエンド 2014

実務ではあまりできないこと

AngularJS Node.JSSketch 3

Grunt

nginx

Express

Jade

Bootstrap-sassMongoDB

Paper PrototypingGithub POPSVG

Web Font

Page 10: 実践 大都会式 プロトタイピング&フロントエンド 2014

流行ものをつかった何か

•iPhone向け •ソーシャル連携 •ユーザー入力がある

Page 11: 実践 大都会式 プロトタイピング&フロントエンド 2014

体重記録ウェブアプリ

ソーシャルのアカウント連動して体重を記録する

Page 12: 実践 大都会式 プロトタイピング&フロントエンド 2014

ザックリフロー

アイデア出し

ペーパープロトタイピング

サーバーサイドUIデザイン

実装

Page 13: 実践 大都会式 プロトタイピング&フロントエンド 2014

ペーパープロトタイピング

Page 14: 実践 大都会式 プロトタイピング&フロントエンド 2014

文字通り、紙を使ったプロトタイピング

Page 15: 実践 大都会式 プロトタイピング&フロントエンド 2014

•パッと書いて共有し、修正もしやすい •イメージを共有するには最適 •いきなりExcelより省コスト

Page 16: 実践 大都会式 プロトタイピング&フロントエンド 2014

ペーパープロトタイピングパッド

Page 17: 実践 大都会式 プロトタイピング&フロントエンド 2014

ウェブアプリは動きがある

紙だけでは分かりづらい

Page 18: 実践 大都会式 プロトタイピング&フロントエンド 2014

POPで紙芝居にしてみる

•画面移動をシミュレート •動かして初めて気付くこともあるPOP

Page 19: 実践 大都会式 プロトタイピング&フロントエンド 2014

サーバーサイド

Page 20: 実践 大都会式 プロトタイピング&フロントエンド 2014

nginx(エンジンエックス)

Page 21: 実践 大都会式 プロトタイピング&フロントエンド 2014

•HTTPDサーバー •処理性能・並行性・メモリ利用の小ささに焦点

Page 22: 実践 大都会式 プロトタイピング&フロントエンド 2014

nginxとApache

•どちらでもいいかと •メモリ利用量の小ささは魅力に見えるが、ならサーバーを… •nginxは後発な分設定はシンプル

Page 23: 実践 大都会式 プロトタイピング&フロントエンド 2014

Node.js

Page 24: 実践 大都会式 プロトタイピング&フロントエンド 2014

•サーバーサイドJavaScript •イベントベース •ノンブロッキングI/O

Page 25: 実践 大都会式 プロトタイピング&フロントエンド 2014

•たまたまI/Oの概念が無い言語だったのでJavaScriptを採用

Page 26: 実践 大都会式 プロトタイピング&フロントエンド 2014

•JavaScriptしかもV8(Chromeのエンジン)ということでフロント系技術者のおもちゃ(?)に

Page 27: 実践 大都会式 プロトタイピング&フロントエンド 2014

express

Page 28: 実践 大都会式 プロトタイピング&フロントエンド 2014

•Node.js製Webアプリケーションフレームワーク •最近4系がリリース •HTTPDの機能もあるので 今回はアプリケーション・サーバーとして利用

Page 29: 実践 大都会式 プロトタイピング&フロントエンド 2014

構成

静的ファイル

Express

アプリケーション

リバースプロキシ

Page 30: 実践 大都会式 プロトタイピング&フロントエンド 2014

Passport

•Node.js製のOpenID/OAuthライブラリ

Page 31: 実践 大都会式 プロトタイピング&フロントエンド 2014

Jade

•Node.js製テンプレートエンジン

Page 32: 実践 大都会式 プロトタイピング&フロントエンド 2014

MongoDB

•NoSQL •柔軟で高速 •結合などSQLで便利なことは結構できない •インターフェースはMongoose

Page 33: 実践 大都会式 プロトタイピング&フロントエンド 2014

UIデザイン

Page 34: 実践 大都会式 プロトタイピング&フロントエンド 2014

プロトをベースにデザイン

Page 35: 実践 大都会式 プロトタイピング&フロントエンド 2014

今回はSketchを使用

Page 36: 実践 大都会式 プロトタイピング&フロントエンド 2014

依頼する場合

•イメージしているモノがあれば事前に伝えておく •サンプルがあると齟齬が少なくなる

Page 37: 実践 大都会式 プロトタイピング&フロントエンド 2014

フロントエンド実装

•HTML5 / CSS3 •SVG / Web Font •AngularJS •フロント最適化

Page 38: 実践 大都会式 プロトタイピング&フロントエンド 2014

HTML5

Page 39: 実践 大都会式 プロトタイピング&フロントエンド 2014

http://www.slideshare.net/dynamis/toward-firefox-os/26# より

Page 40: 実践 大都会式 プロトタイピング&フロントエンド 2014

•大人の事情でいろいろと解釈が…

Page 41: 実践 大都会式 プロトタイピング&フロントエンド 2014

今回はHTML5 Formsだけ

Range Number

Page 42: 実践 大都会式 プロトタイピング&フロントエンド 2014

CSS3

Page 43: 実践 大都会式 プロトタイピング&フロントエンド 2014

角丸 ドロップシャドウ

画像を使わず表現が豊かに

Page 44: 実践 大都会式 プロトタイピング&フロントエンド 2014

Bootstrap-sass

Page 45: 実践 大都会式 プロトタイピング&フロントエンド 2014

•Twitter社謹製のCSSフレームワーク •クラスを付与するだけでそれなりのデザインに

Page 47: 実践 大都会式 プロトタイピング&フロントエンド 2014

変数や構文などが使えるCSS

@for $i from 1 through 3 { .item-#{$i} { width: 2em * $i; }}

Page 48: 実践 大都会式 プロトタイピング&フロントエンド 2014

LESS Stylus

Page 49: 実践 大都会式 プロトタイピング&フロントエンド 2014

SVG / Web Font

Page 50: 実践 大都会式 プロトタイピング&フロントエンド 2014

画面の高密度化

2倍のピクセルが必要

従来 これから

Page 51: 実践 大都会式 プロトタイピング&フロントエンド 2014

SVGならスケーラブル

Page 52: 実践 大都会式 プロトタイピング&フロントエンド 2014

! ! !

大きさや色などの変更がCSSで可能に

Page 53: 実践 大都会式 プロトタイピング&フロントエンド 2014

"∠

Page 54: 実践 大都会式 プロトタイピング&フロントエンド 2014

Font Awesome IcoMoon

Page 55: 実践 大都会式 プロトタイピング&フロントエンド 2014

AngularJS

Page 56: 実践 大都会式 プロトタイピング&フロントエンド 2014

•Googleが開発しているフロントエンドJavaScript MVWフレームワーク

Page 57: 実践 大都会式 プロトタイピング&フロントエンド 2014

MVWフレームワーク?

•WはWhatever •MV※の※に議論するのも無駄だからなんでもいいじゃん!の意

Page 58: 実践 大都会式 プロトタイピング&フロントエンド 2014

•フロントエンドJavaScriptフレームワークではいま一番関心度が高い

Page 59: 実践 大都会式 プロトタイピング&フロントエンド 2014

•いわゆるシングルページWebアプリケーションに強い •インタラクションは弱め

Page 60: 実践 大都会式 プロトタイピング&フロントエンド 2014

フロントの最適化

Page 61: 実践 大都会式 プロトタイピング&フロントエンド 2014

•バックエンドに比べて関心が低い領域

Page 62: 実践 大都会式 プロトタイピング&フロントエンド 2014

•バックエンドのミリセカンド単位の努力が水の泡になりかねない

Page 63: 実践 大都会式 プロトタイピング&フロントエンド 2014

フロントの最適化

•DNS問い合わせ •gzip圧縮転送 •リバースプロクシ

Page 64: 実践 大都会式 プロトタイピング&フロントエンド 2014

DNS問い合わせ

•TTLの調整 •上位への問い合わせが頻繁に→オーバーヘッド •短いままで放置しない

Page 65: 実践 大都会式 プロトタイピング&フロントエンド 2014

gzip圧縮転送

•Apache/nginxではモジュールあり •転送量が大幅に減少 •負荷には注意

Page 66: 実践 大都会式 プロトタイピング&フロントエンド 2014

リバースプロクシ

•静的ファイルのリクエストにアプリケーションサーバーのスレッド使わなくて良くね?

Page 67: 実践 大都会式 プロトタイピング&フロントエンド 2014

フロントの最適化

•リクエスト数の削減 •キャッシュの活用 •ファイルのミニファイ

Page 68: 実践 大都会式 プロトタイピング&フロントエンド 2014

リクエスト数の削減

•CSS/JavaScriptなどをなるべくまとめる •ページ単独の記述はHTMLに

Page 69: 実践 大都会式 プロトタイピング&フロントエンド 2014

リクエスト数の削減

•CSS Sprites •DataURI

Page 70: 実践 大都会式 プロトタイピング&フロントエンド 2014

CSS Sprites

Page 71: 実践 大都会式 プロトタイピング&フロントエンド 2014

•複数の画像パーツを一枚の画像に入れてCSSで表示する

Page 72: 実践 大都会式 プロトタイピング&フロントエンド 2014

•リクエスト数の削減には有用 •アクセシビリティに問題

Page 73: 実践 大都会式 プロトタイピング&フロントエンド 2014

•やり過ぎ注意、本当に注意 •見えなくても意味が通るものなどが基本

Page 74: 実践 大都会式 プロトタイピング&フロントエンド 2014

•一枚30KB以内に収めるのが目安 •それ以上はリクエストしたほうがマシ

Page 75: 実践 大都会式 プロトタイピング&フロントエンド 2014

DataURI

Page 76: 実践 大都会式 プロトタイピング&フロントエンド 2014

•画像データ等をバイナリ文字列で •リクエスト発生しない

Page 77: 実践 大都会式 プロトタイピング&フロントエンド 2014

•PC向けブラウザで対応していない物があるのでスマートフォン専用などで

Page 78: 実践 大都会式 プロトタイピング&フロントエンド 2014

•データ量は約1.3倍 •gzip圧縮転送すれば画像時とデータ量が変わらなくなる

Page 79: 実践 大都会式 プロトタイピング&フロントエンド 2014

•管理は面倒に •レンダリングをブロックするので大きくても数KB単位のもので

Page 80: 実践 大都会式 プロトタイピング&フロントエンド 2014

キャッシュの活用

•CDNの利用 •Expiresヘッダで更新の無いファイルのキャッシュを長期に指定

Page 81: 実践 大都会式 プロトタイピング&フロントエンド 2014

ファイルのミニファイ

Page 82: 実践 大都会式 プロトタイピング&フロントエンド 2014

•画像は効果が大きい •CSS/JavaScriptは「やったった」感でるけど実は言うほどの…

Page 83: 実践 大都会式 プロトタイピング&フロントエンド 2014

•ツールで自動化が基本 •ソースと成果物の分離 •コンパイルという考え方

Page 84: 実践 大都会式 プロトタイピング&フロントエンド 2014

で、タスクランナー

Page 85: 実践 大都会式 プロトタイピング&フロントエンド 2014

Gruntだとgrunt-contrib-connect grunt-contrib-watch grunt-contrib-concat grunt-contrib-compass

grunt-csso grunt-csscomb

grunt-combine-media-queries grunt-autoprefixer grunt-contrib-jshint grunt-contrib-uglify grunt-contrib-imagemin

Page 86: 実践 大都会式 プロトタイピング&フロントエンド 2014

あくまで 適材適所

ケースバイケース

Page 87: 実践 大都会式 プロトタイピング&フロントエンド 2014

実際の作業

Page 88: 実践 大都会式 プロトタイピング&フロントエンド 2014

•各自で適当に作業 •GitHubにPushして、ある程度したらMerge

Page 89: 実践 大都会式 プロトタイピング&フロントエンド 2014

•ルールを明確にしておく •HTMLのid/class属性の使い方など •今回はng-*を消さないぐらいで緩め

Page 90: 実践 大都会式 プロトタイピング&フロントエンド 2014

•スムーズにやるには、お互いの領域の理解が必要

Page 91: 実践 大都会式 プロトタイピング&フロントエンド 2014

まとめ (無理矢理)

Page 92: 実践 大都会式 プロトタイピング&フロントエンド 2014

UI視点から

•上流から参加できると、いろいろと提案しやすい •デザインするために経緯や過程を知りたい •方眼エクセルはデザイナーのやる気をそぎます

Page 93: 実践 大都会式 プロトタイピング&フロントエンド 2014

システム視点から

•少なくともプロトタイピングの段階で参加しておく •その段階で放置すると大怪我が待ってる

Page 94: 実践 大都会式 プロトタイピング&フロントエンド 2014

ありがとうございました !