Upload
schoowebcampus
View
1.394
Download
0
Embed Size (px)
DESCRIPTION
schoo WEB-campus http://schoo.jp/class/381
Citation preview
ブラウザだけで学ぶWebアプリ開発【デザイン編】
自己紹介
自己紹介
•町田哲平と申します•合同会社フィヨルドという会社でデザイナーをやっています
•Twitter アカウントは @machida•Facebookは 町田哲平 で検索•Ruby on Rails で作られた怖い話が読めるサービス「怖話」を運営しています
自己紹介
•怖い話のサービスだけではなく企業が使う、メールや Fax や封書を送るサービス開発のお手伝いもしています
•前回の復習•なんでデザイナーが Webアプリ開発?•書籍アプリの HTML を変更•書籍アプリの CSS を変更•本番環境(Heroku)に送る
授業でやること
前回の復習1月20日(月)放送「ブラウザだけで学ぶWebアプリ開発【開発編】」
前回のやったこと
•Rails のプロジェクトを作成 rails new bookshelf
前回のやったこと
前回のやったこと
•Rails のプロジェクトを作成 rails new bookshelf
•bookshelf ディレクトリに移動 cd bookshelf
•Rails のプロジェクトを作成 rails new bookshelf
•bookshelf ディレクトリに移動 cd bookshelf
•書籍のタイトルと価格を入力、表示する機能を実装rails g scaffold book title:string price:integer
前回のやったこと
•Rails のプロジェクトを作成 rails new bookshelf
•bookshelf ディレクトリに移動 cd bookshelf
•書籍のタイトルと価格を入力、表示する機能を実装rails g scaffold book title:string price:integer
•データベースのセットアップrake db:migrate
前回のやったこと
•Rails のプロジェクトを作成 rails new bookshelf
•bookshelf ディレクトリに移動 cd bookshelf
•書籍のタイトルと価格を入力、表示する機能を実装rails g scaffold book title:string price:integer
•データベースのセットアップrake db:migrate
•サーバを立ち上げて確認rails s
前回のやったこと
•Rails のプロジェクトを作成 rails new bookshelf
•bookshelf ディレクトリに移動 cd bookshelf
•書籍のタイトルと価格を入力、表示する機能を実装rails g scaffold book title:string price:integer
•データベースのセットアップrake db:migrate
•サーバを立ち上げて確認rails s
•本番環境(Heroku)に送る
前回のやったこと
今回も Nitrous.IO でサーバを立ちあげます
chrome で https://www.nitrous.io/ を開く
nitrous.io と入力して Enterキー
メールパスワード
メールアドレスとパスワードを入力
今回も Nitrous.IO でサーバを立ちあげます
bookshelf をクリック
クリック
今回も Nitrous.IO でサーバを立ちあげます
Start をクリック
クリック
今回も Nitrous.IO でサーバを立ちあげます
IDE をクリック
クリック
今回も Nitrous.IO でサーバを立ちあげます
Chat は使わないので閉じる
クリック
今回も Nitrous.IO でサーバを立ちあげます
コンソールに cd bookshelf と入力し、Enterbookshelf ディレクトリに移動
今回も Nitrous.IO でサーバを立ちあげます
コンソールに rails s と入力し、Enterサーバを起動
今回も Nitrous.IO でサーバを立ちあげます
Preview をクリック、Port 3000 を選択
今回も Nitrous.IO でサーバを立ちあげます
xxxxx.nitrousbox.com/books にアクセス
今回も Nitrous.IO でサーバを立ちあげます
Chrome のタブは Nitrous.IO と Preview両方開いたままで作業を進めます
今回も Nitrous.IO でサーバを立ちあげます
Nitrouns.IO Preview
Chrome のタブは Nitrous.IO と Preview両方開いたままで作業を進めます
今回も Nitrous.IO でサーバを立ちあげます
Nitrouns.IO Preview
準備完了!
Chrome のタブは Nitrous.IO と Preview両方開いたままで作業を進めます
今回も Nitrous.IO でサーバを立ちあげます
Nitrouns.IO Preview
準備完了!
お願い
title : あああああああprice : 100
前回作った書籍登録アプリに 書籍を10冊 登録しておいてください
登録するデータは、
みたいな感じで適当でOKです
なんでデザイナーがWebアプリ開発?
よくあるWebアプリ開発での面倒なこと
よくあるWebアプリ開発での面倒なこと
デザインを発注
プログラマー デザイナー
よくあるWebアプリ開発での面倒なこと
デザインを発注
プログラマー デザイナー• ワイヤフレーム• 仕様書• (プロトタイプ)
ドキュメント中心
よくあるWebアプリ開発での面倒なこと
デザインを制作
プログラマー デザイナー
よくあるWebアプリ開発での面倒なこと
デザインを制作
プログラマー デザイナー• HTML• CSS• Javascriptzip
静的ファイル
よくあるWebアプリ開発での面倒なこと
デザインを制作
プログラマー デザイナー• HTML• CSS• Javascriptzip
静的ファイル
zip納品
よくあるWebアプリ開発での面倒なこと
デザインを制作
プログラマー デザイナー• HTML• CSS• Javascriptzip
zip納品
プログラマー側から見た zip納品 のデメリット
よくあるWebアプリ開発での面倒なこと
デザインを制作
プログラマー デザイナー• HTML• CSS• Javascriptzip
zip納品
プログラマー側から見た zip納品 のデメリット
• プログラマーが作ったシステムに、デザイナーが作った静的なHTML、CSS、Javascript を組み込む手間が発生
よくあるWebアプリ開発での面倒なこと
デザインを制作
プログラマー デザイナー• HTML• CSS• Javascriptzip
zip納品
プログラマー側から見た zip納品 のデメリット
• プログラマーが作ったシステムに、デザイナーが作った静的なHTML、CSS、Javascript を組み込む手間が発生
• デザインに変更があった場合、ファイルのどの部分が変わったのかわかりづらい
よくあるWebアプリ開発での面倒なこと
デザインを制作
プログラマー デザイナー• HTML• CSS• Javascriptzip
zip納品
プログラマー側から見た zip納品 のデメリット
• プログラマーが作ったシステムに、デザイナーが作った静的なHTML、CSS、Javascript を組み込む手間が発生
• デザインに変更があった場合、ファイルのどの部分が変わったのかわかりづらい
• システムと納品された静的な HTML の名前(classなど)が一致していないのでわかりづらい
よくあるWebアプリ開発での面倒なこと
デザインを制作
プログラマー デザイナー• HTML• CSS• Javascriptzip
zip納品
プログラマー側から見た zip納品 のデメリット
• プログラマーが作ったシステムに、デザイナーが作った静的なHTML、CSS、Javascript を組み込む手間が発生
• デザインに変更があった場合、ファイルのどの部分が変わったのかわかりづらい
• システムと納品された静的な HTML の名前(classなど)が一致していないのでわかりづらい
• ドキュメントを用意したり、要望を伝えたり、デザイナーとのやりとりに時間がかかる
よくあるWebアプリ開発での面倒なこと
デザインを制作
プログラマー デザイナー• HTML• CSS• Javascriptzip
zip納品
デザイナー側から見た zip納品 のデメリット
よくあるWebアプリ開発での面倒なこと
デザインを制作
プログラマー デザイナー• HTML• CSS• Javascriptzip
zip納品
• 実際に動かしてみたらイメージと違った(あれ?このボタンって思ったよりよく使う)
デザイナー側から見た zip納品 のデメリット
よくあるWebアプリ開発での面倒なこと
デザインを制作
プログラマー デザイナー• HTML• CSS• Javascriptzip
zip納品
• 実際に動かしてみたらイメージと違った(あれ?このボタンって思ったよりよく使う)
• 実際のデータが入ったら想定と違った(え?ここにこんな長い文章が入るの!)
デザイナー側から見た zip納品 のデメリット
よくあるWebアプリ開発での面倒なこと
デザインを制作
プログラマー デザイナー• HTML• CSS• Javascriptzip
zip納品
• 実際に動かしてみたらイメージと違った(あれ?このボタンって思ったよりよく使う)
• 実際のデータが入ったら想定と違った(え?ここにこんな長い文章が入るの!)
• デザイナーが提出したデザインと少し違う(CSSいじった?勝手なことしないで!)
デザイナー側から見た zip納品 のデメリット
よくあるWebアプリ開発での面倒なこと
デザインを制作
プログラマー デザイナー• HTML• CSS• Javascriptzip
zip納品
• 実際に動かしてみたらイメージと違った(あれ?このボタンって思ったよりよく使う)
• 実際のデータが入ったら想定と違った(え?ここにこんな長い文章が入るの!)
• デザイナーが提出したデザインと少し違う(CSSいじった?勝手なことしないで!)
• プログラマーとのやりとりに時間がかかる(この仕様書意味わかんない…)
デザイナー側から見た zip納品 のデメリット
これらのデメリットを解消するには?
これらのデメリットを解消するには?
デザイナーが直接システムにデザインを入れればいい
これらのデメリットを解消するには?
脱zip納品
デザイナーが直接システムにデザインを入れればいい
さきほどの例で挙げた開発
システム開発チーム デザイナー
デザインを発注
デザイナーはシステム開発チームの外
デザイナーも開発チームの一員に
システム開発チーム
デザイナーもシステム開発チームの中へ
デザイナーが開発チームに入ったら
デザイナーが開発チームに入ったら
会員登録機能できましたー
デザイナーが開発チームに入ったら
会員登録機能できましたー
お疲れ様ですー 見てみますFacebookアカウントでワンクリック登録できるんですね。便利!
デザイナーが開発チームに入ったら
会員登録機能できましたー
うーん… 会員登録ページへ遷移するの面倒っすね、トップページから登録できるにしたいですねー
お疲れ様ですー 見てみますFacebookアカウントでワンクリック登録できるんですね。便利!
デザイナーが開発チームに入ったら
会員登録機能できましたー
なるほどー、確かに…では、トップページから登録できるようにしておきます
うーん… 会員登録ページへ遷移するの面倒っすね、トップページから登録できるにしたいですねー
お疲れ様ですー 見てみますFacebookアカウントでワンクリック登録できるんですね。便利!
デザイナーが開発チームに入ったら
会員登録機能できましたー
お疲れ様ですー 見てみますFacebookアカウントでワンクリック登録できるんですね。便利!
なるほどー、確かに…では、トップページから登録できるようにしておきます
ありがとうございます!では、先にトップページに会員登録の見た目を作っておきます
うーん… 会員登録ページへ遷移するの面倒っすね、トップページから登録できるにしたいですねー
デザイナーが開発チームに入ったら
会員登録機能できましたー
お疲れ様ですー 見てみます
うーん… 会員登録ページへ遷移するの面倒っすね、トップページから登録できるにしたいですねー
なるほどー、確かに…では、トップページから登録できるようにしておきます
ありがとうございます!では、先にトップページに会員登録の見た目を作っておきます
開発がこのようになる
デザイナーが開発チームに入ったら
会員登録機能できましたー
お疲れ様ですー 見てみます
うーん… 会員登録ページへ遷移するの面倒っすね、トップページから登録できるにしたいですねー
なるほどー、確かに…では、トップページから登録できるようにしておきます
ありがとうございます!では、先にトップページに会員登録の見た目を作っておきます
• 動くものを目の前にしているので必要なドキュメントや打ち合わせが減る
開発がこのようになる
お疲れ様ですー 見てみますFacebookアカウントでワンクリック登録できるんですね。便利!
デザイナーが開発チームに入ったら
会員登録機能できましたー
お疲れ様ですー 見てみます
うーん… 会員登録ページへ遷移するの面倒っすね、トップページから登録できるにしたいですねー
なるほどー、確かに…では、トップページから登録できるようにしておきます
ありがとうございます!では、先にトップページに会員登録の見た目を作っておきます
• 動くものを目の前にしているので必要なドキュメントや打ち合わせが減る
• 動くものを触りながら作るので、より実際に使うユーザー目線でデザインができる
開発がこのようになる
うーん… 会員登録ページへ遷移するの面倒っすね、
デザイナーが開発チームに入ったら
会員登録機能できましたー
お疲れ様ですー 見てみます
うーん… 会員登録ページへ遷移するの面倒っすね、トップページから登録できるにしたいですねー
なるほどー、確かに…では、トップページから登録できるようにしておきます
ありがとうございます!では、先にトップページに会員登録の見た目を作っておきます
開発がこのようになる
• 動くものを目の前にしているので必要なドキュメントや打ち合わせが減る
• 動くものを触りながら作るので、より実際に使うユーザー目線でデザインができる
• デザイナーもチームの一員なので、いい製品にするために口が出しやすくなる
トップページから登録できるにしたいですねー
デザイナーが開発チームに入ったら
会員登録機能できましたー
お疲れ様ですー 見てみます
うーん… 会員登録ページへ遷移するの面倒っすね、トップページから登録できるにしたいですねー
なるほどー、確かに…では、トップページから登録できるようにしておきます
ありがとうございます!では、先にトップページに会員登録の見た目を作っておきます
開発がこのようになる
• 動くものを目の前にしているので必要なドキュメントや打ち合わせが減る
• 動くものを触りながら作るので、より実際に使うユーザー目線でデザインができる
• デザイナーもチームの一員なので、いい製品にするために口が出しやすくなる
• システムとデザインを同時進行で開発できる
ありがとうございます!では、先にトップページに会員登録の見た目を作っておきます
デザイナーが開発チームに入ったら
会員登録機能できましたー
お疲れ様ですー 見てみます
うーん… 会員登録ページへ遷移するの面倒っすね、トップページから登録できるにしたいですねー
なるほどー、確かに…では、トップページから登録できるようにしておきます
ありがとうございます!では、先にトップページに会員登録の見た目を作っておきます
開発がこのようになる
• 動くものを目の前にしているので必要なドキュメントや打ち合わせが減る
• 動くものを触りながら作るので、より実際に使うユーザー目線でデザインができる
• デザイナーもチームの一員なので、いい製品にするために口が出しやすくなる
• システムとデザインを同時進行で開発できる
ありがとうございます!では、先にトップページに会員登録の見た目を作っておきます
さっき挙げたデメリットは解消される
開発チームに入るのに必要な3つのスキル
•開発環境構築… 手元でシステムを立ち上げる(黒い画面)
開発チームに入るのに必要な3つのスキル
•開発環境構築… 手元でシステムを立ち上げる(黒い画面)
•バージョン管理… Git、Subversionなど
開発チームに入るのに必要な3つのスキル
•開発環境構築… 手元でシステムを立ち上げる(黒い画面)
•バージョン管理… Git、Subversionなど
•言語とフレームワーク… Ruby、Python、PHP、 Ruby on Rails、Django、CakePHPなど
開発チームに入るのに必要な3つのスキル
•黒い画面のスキル … 手元でシステムを立ち上げる
•バージョン管理のスキル … Git、Subversionなど
•言語とフレームワークのスキル… Ruby、Python、PHP、 Ruby on Rails、Django、CakePHPなど
開発チームに入るのに必要な3つのスキルうわ、大変…
•黒い画面のスキル … 手元でシステムを立ち上げる
•バージョン管理のスキル … Git、Subversionなど
•言語とフレームワークのスキル… Ruby、Python、PHP、 Ruby on Rails、Django、CakePHPなど
開発チームに入るのに必要な3つのスキルうわ、大変…
わからないことを教えるほうがzip納品より全然効率的
•黒い画面のスキル … 手元でシステムを立ち上げる
•バージョン管理のスキル … Git、Subversionなど
•言語とフレームワークのスキル… Ruby、Python、PHP、 Ruby on Rails、Django、CakePHPなど
開発チームに入るのに必要な3つのスキルうわ、大変…
わからないことを教えるほうがzip納品より全然効率的
わからないことはチームのプログラマーに聞けばOK
•黒い画面のスキル … 手元でシステムを立ち上げる
•バージョン管理のスキル … Git、Subversionなど
•言語とフレームワークのスキル… Ruby、Python、PHP、 Ruby on Rails、Django、CakePHPなど
開発チームに入るのに必要な3つのスキルうわ、大変…
わからないことを教えるほうがzip納品より全然効率的
わからないことはチームのプログラマーに聞けばOK
実際はこんな感じの場合が多いので、そこまで詳しくならなくてもOK
今回の授業のテーマ
今回の授業のテーマ
前回までの作業をエンジニアが行った仕事として、開発チームのデザイナーはどのようにデザインを入れていくかをバーチャル体験してみよう、という授業を行います
今回の授業のテーマ
前回までの作業をエンジニアが行った仕事として、開発チームのデザイナーはどのようにデザインを入れていくかをバーチャル体験してみよう、という授業を行います
書籍の一覧、個別の表示、書籍登録、編集、削除の機能を実装したので、デザインお願いしますー!
今回の授業のテーマ
前回までの作業をエンジニアが行った仕事として、開発チームのデザイナーはどのようにデザインを入れていくかをバーチャル体験してみよう、という授業を行います
ありがとうございます!では、これからデザインを入れる作業を開始します!
書籍の一覧、個別の表示、書籍登録、編集、削除の機能を実装したので、デザインお願いしますー!
今回の授業のテーマ
ありがとうございます!では、これからデザインを入れる作業を開始します!
デザイナーのターン!
前回までの作業をエンジニアが行った仕事として、開発チームのデザイナーはどのようにデザインを入れていくかをバーチャル体験してみよう、という授業を行います
書籍の一覧、個別の表示、書籍登録、編集、削除の機能を実装したので、デザインお願いしますー!
今回の授業のテーマ
前回までの作業をエンジニアが行った仕事として、それにデザイナーはどのようにデザインを入れていくかをバーチャル体験してみよう、という授業を行います
では、これにデザインを入れていきますー
本を登録、一覧、編集、削除の機能を作りましたー
3つのスキルなんて、ないんですけど…
今回の授業のテーマ
前回までの作業をエンジニアが行った仕事として、それにデザイナーはどのようにデザインを入れていくかをバーチャル体験してみよう、という授業を行います
では、これにデザインを入れていきますー
本を登録、一覧、編集、削除の機能を作りましたー
•開発環境構築
•バージョン管理
•言語やフレームワーク
3つのスキルなんて、ないんですけど…
今回の授業のテーマ
前回までの作業をエンジニアが行った仕事として、それにデザイナーはどのようにデザインを入れていくかをバーチャル体験してみよう、という授業を行います
では、これにデザインを入れていきますー
本を登録、一覧、編集、削除の機能を作りましたー
•開発環境構築
•バージョン管理
•言語やフレームワーク
Nitrous.IO
3つのスキルなんて、ないんですけど…
今回の授業のテーマ
前回までの作業をエンジニアが行った仕事として、それにデザイナーはどのようにデザインを入れていくかをバーチャル体験してみよう、という授業を行います
では、これにデザインを入れていきますー
本を登録、一覧、編集、削除の機能を作りましたー
•開発環境構築
•バージョン管理
•言語やフレームワーク
Nitrous.IO
Git
3つのスキルなんて、ないんですけど…
今回の授業のテーマ
前回までの作業をエンジニアが行った仕事として、それにデザイナーはどのようにデザインを入れていくかをバーチャル体験してみよう、という授業を行います
では、これにデザインを入れていきますー
本を登録、一覧、編集、削除の機能を作りましたー
•開発環境構築
•バージョン管理
•言語やフレームワーク
Nitrous.IO
Git
言語:Ruby フレームワーク:Ruby on Rails
3つのスキルなんて、ないんですけど…
今回の授業のテーマ
前回までの作業をエンジニアが行った仕事として、それにデザイナーはどのようにデザインを入れていくかをバーチャル体験してみよう、という授業を行います
では、これにデザインを入れていきますー
本を登録、一覧、編集、削除の機能を作りましたー
•開発環境構築
•バージョン管理
•言語やフレームワーク
Nitrous.IO
Git
言語:Ruby フレームワーク:Ruby on Rails
前回の授業ですでにやってるので
ご安心を
3つのスキルなんて、ないんですけど…
前回つくった画面を見てみよう
前回つくった画面を見てみよう
書籍一覧( /books )
前回つくった画面を見てみよう
書籍個別( /books/1 )
前回つくった画面を見てみよう
書籍編集( /books/1/edit )
前回つくった画面を見てみよう
書籍登録( /books/new )
前回つくった画面を見てみよう
書籍登録( /books/new )
これらのページの HTML と CSS をカスタマイズ
いよいよ実践前回作ったアプリにデザインを入れていきます。
HTMLを変更する
•書籍一覧
•書籍個別
•書籍編集
•書籍登録
どのファイルを変更する?
•書籍一覧
•書籍個別
•書籍編集
•書籍登録
app/views/books/index.html.erb
app/views/books/show.html.erb
app/views/books/edit.html.erb
app/views/books/new.html.erb
どのファイルを変更する?
•書籍一覧
•書籍個別
•書籍編集
•書籍登録
前回つくった画面を見てみよう
app/views/books/index.html.erb
app/views/books/show.html.erb
app/views/books/edit.html.erb
app/views/books/new.html.erb
該当するファイルの探しかた
•まずは app/views ディレクトリへ•URL [xxx.nitrousbox.com/books/] に注目 URLにある [/books] と同じ名前のディレクトリをapp/views の中から探す
•一覧は index.html.erb•詳細は show.html.erb•編集は edit.html.erb•登録は new.html.erb
書籍一覧のHTMLを変更してみようapp/views/books/index.html.erb を編集
実践
app/views/books/index.html.erb を開く
実践
このマークアップを変更します
実践
このマークアップを変更します
実践
チームで開発するときはマークアップのルールがあると便利
このマークアップを変更します
実践
•ルールがあれば、チームメンバーの誰が書いても同じマークアップになる
•新しくチームに入ったメンバーも、そのルールを理解すれば同じようにマークアップができるようになる
チームで開発するときはマークアップのルールがあると便利
このマークアップを変更します
実践
•ルールがあれば、チームメンバーの誰が書いても同じマークアップになる
•新しくチームに入ったメンバーも、そのルールを理解すれば同じようにマークアップができるようになる
•ルールを作るだけでなく、チーム内でルールを共有するためにドキュメントを用意しなくてはいけない手間が発生
•すでに誰かが作ったルールを採用すると、すでにドキュメントが用意されてるので、手間が解消されることも
チームで開発するときはマークアップのルールがあると便利
マークアップのルールがあると…
マークアップのルールがあると…
書籍登録機能できましたー
マークアップのルールがあると…
書籍登録機能できましたー
ありがとうございますーでは、まずはデザインを入れるためにHTMLの編集から…
マークアップのルールがあると…
書籍登録機能できましたー
ありがとうございますーでは、まずはデザインを入れるためにHTMLの編集から…
あっ、マークアップやっておいてくれたんですね!自分がこうしようと思ってたマークアップがすでにされてる!
マークアップのルールがあると…
書籍登録機能できましたー
ありがとうございますーでは、まずはデザインを入れるためにHTMLの編集から…
はいー、ルール通りにマークアップしておきました
あっ、マークアップやっておいてくれたんですね!自分がこうしようと思ってたマークアップがすでにされてる!
マークアップのルールがあると…
書籍登録機能できましたー
ありがとうございますーでは、まずはデザインを入れるためにHTMLの編集から…
はいー、ルール通りにマークアップしておきました
ありがとうございます!マークアップの作業をしなくて済んだ
あっ、マークアップやっておいてくれたんですね!自分がこうしようと思ってたマークアップがすでにされてる!
マークアップのルールがあると…
書籍登録機能できましたー
ありがとうございますーでは、まずはデザインを入れるためにHTMLの編集から…
はいー、ルール通りにマークアップしておきました
ありがとうございます!マークアップの作業をしなくて済んだ
あっ、マークアップやっておいてくれたんですね!自分がこうしようと思ってたマークアップがすでにされてる!こういうこともあるので、ルールがあるとお得!
今回はルールの例として BEM を紹介
•B ブロック、E エレメント、M モディファイア の頭文字 を連結したものを class名にする
class = “ B _ _ E - - M ”
今回はルールの例として BEM を紹介
•B ブロック、E エレメント、M モディファイア の頭文字 を連結したものを class名にする
class = “ B _ _ E - - M ”エレメントの前はアンダースコア2つ モディファイアの前はハイフン2つ
今回はルールの例として BEM を紹介
•B ブロック、E エレメント、M モディファイア の頭文字 を連結したものを class名にする
•ブロック → 範囲•エレメント → その範囲内でのそれが果たす 役割、要素•モディファイア → そのブロックや要素の 修飾、XXX版
class = “ B _ _ E - - M ”エレメントの前はアンダースコア2つ モディファイアの前はハイフン2つ
今回はルールの例として BEM を紹介
/books 書籍一覧
今回はルールの例として BEM を紹介
bookというブロック
class = “ book ”
今回はルールの例として BEM を紹介
book というブロック内のtitle という要素
class = “ book _ _ title ”
今回はルールの例として BEM を紹介
book というブロック内のaction という要素のedit 版
class = “ book _ _ action - - edit ”
今回はルールの例として BEM を紹介
book というブロック内のaction という要素のedit 版
class = “ book _ _ action - - edit ”
っていうのが BEM
今回はルールの例として BEM を紹介
実際にBEMでマークアップしてみます
実践
こうなったら正解
実践
書籍編集と書籍登録の共通部分
app/views/books/edit.html.erbと
app/views/books/new.html.erb
書籍編集( /books/1/edit )
書籍登録( /books/new )
フォームの部分はほとんど同じ
書籍編集 書籍登録
フォームの部分はほとんど同じ
書籍編集
書籍登録
app/views/books/edit.html.erb
app/views/books/new.html.erb
フォームの部分はほとんど同じ
書籍編集
書籍登録
app/views/books/edit.html.erb
app/views/books/new.html.erb
<%= render ‘form’ %>
フォームの部分はほとんど同じ
書籍編集 書籍登録
編集と登録の共通部分
•edit.html.erb 、new.html.erb 両方のファイルに<%= render 'form' %> と書かれている部分がある
•<%= render 'form' %> の「 form 」に注目edit.html.erb 、new.html.erb があるディレクトリに_form.html.erb があり、それがその部分の該当するファイル
•フォームの部分を編集するには _form.html.erb を編集する•共通部分ファイルはファイル名の先頭に「_(アンダースコア)」が付いている
フォームの部分を編集するには
このファイルを編集する
app/views/books/_form.html.erb
実践
このファイルを編集してフォームの部分が変わったかを確認してみます
サイト全体の共通部分app/views/layouts/application.html.erb
<%= yield %> に注目
app/views/layouts/application.html.erb
index.html.erb
show.html.erb
edit.html.erb
new.html.erb
<%= yield %> の中に表示されている
<%= yield %> に注目
application.html.erbbooks/index.html.erb
application.html.erbbooks/index.html.erb
全ページ共通部品は layouts/application.html.erb に書く
•ヘッダー•フッター•サイドナビ
ヘッダを追加してみようapp/views/layouts/application.html.erb
実践
app/views/layouts/application.html.erb
実践
ここにヘッダの HTML を書く
実際にヘッダを追加してみます
実践
ヘッダの HTML
こうなったら正解
実践
CSSを変更する
Rails の CSS の特長
•CSSプリプロセッサの Sass( SCSS記法 - scssファイル )が採用されている( ファイル名は xxxx.css.scss )
Rails の CSS の特長
•CSSプリプロセッサの Sass( SCSS記法 - scssファイル )が採用されている( ファイル名は xxxx.css.scss )
Rails の CSS の特長
Sass って何? CSSが便利に書けるもの
•CSSプリプロセッサの Sass(SCSS記法)が採用されている
Rails の CSS の特長
Sass って何? 便利にCSSが書けるもの
Sass って何?
くわしくは、石本光司先生の授業で
http://schoo.jp/class/228
•CSSプリプロセッサの Sass( SCSS記法 - scssファイル )が採用されている( ファイル名は xxxx.css.scss )
•設定無しで Rails が Sassファイルを CSS に書き出しをしてくれる
Rails の CSS の特長
Rails の CSS の特長
•CSSプリプロセッサの Sass( SCSS記法 - scssファイル )が採用されている( ファイル名は xxxx.css.scss )
•設定無しで Rails が Sassファイルを CSS に書き出しをしてくれる
•scssファイルを追加する場合は app/assets/stylesheets の中に入れる
•CSSプリプロセッサの Sass( SCSS記法 - scssファイル )が採用されている( ファイル名は xxxx.css.scss )
•設定無しで Rails が Sassファイルを CSS に書き出しをしてくれる
•scssファイルを追加する場合は app/assets/stylesheets の中に入れる
•app/assets/stylesheets の中に入れられた scssファイルは設定なしで画面に反映される
Rails の CSS の特長
Railsにデザインを入れる準備
app/assets/stylesheets/scaffold.css.scss を削除
実践
scaffolds.css.scss
app/assets/styledheets/scaffolds.css.scss
実践
scaffolds.css.scss
app/assets/styledheets/scaffolds.css.scss
実践
scaffolds.css.scss
scaffolds.css.scss
app/assets/styledheets/scaffolds.css.scss
実践
scaffolds.css.scss
•scaffolds.css.scss とは、Rails が自動で生成してくれた最低限のスタイルが入った scssファイル
scaffolds.css.scss
app/assets/styledheets/scaffolds.css.scss
実践
scaffolds.css.scss
•scaffolds.css.scss とは、Rails が自動で生成してくれた最低限のスタイルが入った scssファイル
•自分でデザインを入れる際、 scaffolds.css.scss で設定されたスタイルが邪魔になるので削除
scaffolds.css.scss 削除
app/assets/styledheets/scaffolds.css.scss の上で右クリック
実践
scaffolds.css.scss 削除
Delete “scaffolds.css.scss” を選択
実践
scaffolds.css.scss 削除実践
こうなったら正解
ヘッダ用のscssファイルを追加してみようapp/assets/stylesheets/ の中にファイルを追加
実践
ヘッダ用の SCSS を追加
app/assets/styledheets の上で右クリック
実践
ヘッダ用の SCSS を追加
New File をクリック
実践
ヘッダ用の SCSS を追加
header.css.scss という名前を入力
実践
ヘッダ用の SCSS を追加実践
app/assets/styledheets/header.css.scss を編集
こうなったら正解
実践
こうなったら正解
実践
ディレクトリに追加するだけで header.css.scss を反映してくれた
books用のSCSSを編集してみよう
すでに用意されてるapp/assets/stylesheets/books.css.scss
を変更
実践
books用 の scss を用意しました実践
http://bit.ly/s-0130chrome のタブを一つ開いてここにアクセス
実践http://bit.ly/s-0130
実践
全部コピー
http://bit.ly/s-0130
実践app/assets/stylesheets/books.css.scss
開く
実践
貼り付け
app/assets/stylesheets/books.css.scss
実践
こうなったら正解
実践
こうなったら正解
今回はコピペでしたが、自分で books.css.scss をいじってデザインに挑戦してみてください
書籍一覧のデザインができた
書籍一覧のデザインができた
書籍一覧ページのデザインができましたので、今から Heroku に送って見れるようにしますー
書籍一覧のデザインができた
書籍一覧ページのデザインができましたので、今から Heroku に送って見れるようにしますー
お疲れ様ですーデザイン超楽しみです!
書籍一覧のデザインができた
書籍一覧ページのデザインができましたので、今から Heroku に送って見れるようにしますー
お疲れ様ですーデザイン超楽しみです!
ぬおー プレッシャーかけてきた!!
ここまで作業したものを本番環境に送る
ここまで作業したRailsプロジェクトを Heroku に送ります
実践
コンソールをクリック
実践コンソールで作業
ここがアクティブになっているのを確認(白い四角)
実践コンソールで作業
ここがアクティブになっているのを確認(白い四角)
実践
control + c を押してサーバをストップ
コンソールで作業
実践Heroku に送る
heroku login
git add --all
git commit -m“Design”
git push heroku master
heroku info
上から一行ずつコンソールにコマンドを入力
• メールアドレス• パスワード
• URLが表示される
Heroku に送る
heroku login
git add .
git commit -m“Design”
git push heroku master
heroku info
• メールアドレス• パスワード
• URLが表示される
ブラウザで Heroku 上の bookshelf を確認
実践
上から一行ずつコンソールにコマンドを入力
ブラウザだけで学ぶWebアプリ開発【デザイン編】
以上で終了です
補足説明
トップページを作りたい
•app/views/ の中に home というディレクトリを作成•そのディレクトリの中にindex.html.erb というファイルを作成
•app/controllers の中にhome_ controllers.rb というファイルを作成
トップページを作りたい
トップページを作りたい
home_controller.rb にこう書く
トップページを作りたい
config/routes.rb の root の部分をこう書き換える
フォームのラベルを日本語にしたい
•app/views/books/_form.html.erb を開く
フォームのラベルを日本語にしたい
•app/views/books/_form.html.erb をこう編集する
フォームのラベルを日本語にしたい
フォームのボタンを日本語にしたい
•config/locales/ に ja.yaml というファイルを作成し、追加
フォームのボタンを日本語にしたい
•config/locales/ に ja.yaml にこう書く
フォームのボタンを日本語にしたい
•config/application.rb にこう書く
フォームのボタンを日本語にしたい
ここまでやったら rails サーバを再起動
リンクの書きかた
•本の登録ページ(/new)へのリンク<%= link_to '本の登録', new_book_path %>
•本個別ページ(/books/4)ヘのリンク ※eachの中でだけ有効<%= link_to '詳細', book %>
•本編集ページ(/books/4/edit)ヘのリンク ※eachの中でだけ有効<%= link_to '詳細', edit_book_path(book) %>
•トップページ(/)へのリンク<%= link_to 'トップページ', root_path %>
リンクの書きかた
リンクに id class をつけたい
• こう書く<%= link_to '本の登録', new_book_path, { :class => "new", :id => "new" } %>
リンクに id class をつけたい
class id
リンクの中にタグを入れたい
•こう書く<%= link_to root_path do %> <span>トップページ</span><% end %>
リンクの中にタグを入れたい
画像の追加方法
•app/assets/images ディレクトリの上で右クリック
画像の追加方法
Upload File to “images” を選択
•ここに画像をドラッグ アンド ドロップ
画像の追加方法
•こう書く
<%= image_tag('koshikawa.jpg', :alt => "越川さんの写真") %>
画像の追加方法
画像へのパス
assets/images/画像ファイルの場合は、画像名のみ書く
asstes/images/user-photos/画像ファイルの場合は、user-photos/画像ファイル と書く
alt タグ
画像に class id をつけたい
•こう書く<%= image_tag('k.jpg', :alt => "越川さん", :class => “kossy”, :id => “kossy”) %>
画像に class id をつけたい
idclass
画像をリンクにしたい
•こう書く<%= link_to image_tag('koshikawa.jpg', :alt => '越川さん'), root_path %>
画像をリンクにしたい
リンク先画像ファイル alt
リンク付き画像のリンク、画像にid class をつけたい
•こう書く<%= link_to image_tag('koshikawa.jpg', :alt => '越川さん', :class => "kossy", :id => "kossy"), root_path, :class => "kossy-link", :id => "kossy-link" %>
リンク付き画像のリンク、画像にid class をつけたい
リンクのclass画像のid
画像のclass
リンクのid
勝手にcssを読み込まれると困るんですけど
•assets/stylesheets の中に scssファイルを入れれば、何の設定もせずに画面に反映されてくれて便利ですが、reset のためのファイルなど、こちらの意図した順番で scssファイルを読み込んでくれないと困る場合があります
•順番を指定して scssファイルを読み込ます方法はいくつかあります
勝手にcssを読み込まれると困るんですけど
•対策1 : ファイル名で対応する方法
勝手にcssを読み込まれると困るんですけど
•対策1 : ファイル名で対応する方法
勝手にcssを読み込まれると困るんですけど
Rails はアルファベット順に scssファイルを読み込みます。なので、例えば reset.css.scss は一番始めに読み込ませたいのに、後のほうに読み込んでしまいます。
アルファベット順に scssファイルを読み込む、というのを利用して、 0reset.css.scss と、ファイル名の先頭に数字の「0」を付けると一番始めに読み込むようになります。
•対策2 : 自分で一つ一つファイルを読み込む設定を書く
勝手にcssを読み込まれると困るんですけど
•対策2 : 自分で一つ一つファイルを読み込む設定を書く
勝手にcssを読み込まれると困るんですけど
app/assets/stylesheets/application.css を開く
•対策2 : 自分で一つ一つファイルを読み込む設定を書く
勝手にcssを読み込まれると困るんですけど
「 *= require_tree . 」 を削除
•対策2 : 自分で一つ一つファイルを読み込む設定を書く
勝手にcssを読み込まれると困るんですけど
*= require ファイル名 を任意の順番で書く(拡張子は不要)
scss の変数や mixin を別ファイルにしたらエラーが出たのですが…
scss の変数や mixin を別ファイルにしたらエラーが出たのですが…
•assets/stylesheets の中に scssファイルを入れれば、何の設定もせずに画面に反映されてくれて便利ですが、ある scssファイルが、別の scssファイルに書かれた変数やmixinを呼び出すときにエラーが出てしまいます。
scss の変数や mixin を別ファイルにしたらエラーが出たのですが…
app/assets/stylesheets/application.css を application.css.scss にファイル名を変更
scss の変数や mixin を別ファイルにしたらエラーが出たのですが…
application.css.scss の中身を削除scssファイルを追加したら自動で画面に反映される機能はなくなります
scss の変数や mixin を別ファイルにしたらエラーが出たのですが…
application.css.scss に @import “ファイル名”(拡張子なし)と、scssファイルの import の設定を任意の順番で書いていきます。変数や mixin が書かれた scssファイルは、それらを呼び出す scssファイルの前に import する必要があります。
compass を使いたい
Gemfileに gem 'compass-rails' と書き足します。書き足したら、コンソールで bundle コマンドを入力。サーバを再起動。
compass を使いたい
compass を使いたい
application.css.scss に compass の import の設定を書きます。(application.css を scss に変更する手順は「scss の変数や mixin を別ファイルにしたら エラーが出たのですが…」参照)
Heroku にアップするための設定
ruby '2.0.0'group :development, :test do gem 'sqlite3'end
group :production do gem 'pg' gem 'rails_12factor'end
Heroku にアップするための設定
Gemfile の 7行目を消してこれをコピペ
git config --global user.email [email protected]
git config --global user.name name
Heroku にアップするための設定
コンソールに一行ずつ入力
git init
git add --all
git commit -m“作業内容メモ”
Heroku にアップするための設定
コンソールに一行ずつ入力
heroku login
heroku keys:add ~/.ssh/id_rsa.pub
heroku create
git push heroku master
heroku run rake db:migrate
Heroku にアップするための設定
コンソールに一行ずつ入力
メールアドレスとパスワードを入力