ブラウザだけで学ぶWebアプリ開発【デザイン編】

  • View
    1.394

  • Download
    0

  • Category

    Business

Preview:

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キー

https://www.nitrous.io/

今回も Nitrous.IO でサーバを立ちあげます

メールパスワード

メールアドレスとパスワードを入力

今回も 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 xxx@xxx.jp

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 にアップするための設定

コンソールに一行ずつ入力

メールアドレスとパスワードを入力

Recommended