58
これからのJSの話をしよう jQueryで作るTwitterアプリ~ Present by ぱろっと(@parrot_studio) for Gunma.web #2 2010/10/09

これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

Embed Size (px)

DESCRIPTION

2010/10/9におこなったプレゼン資料

Citation preview

Page 1: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

これからのJSの話をしよう ~jQueryで作るTwitterアプリ~

Present by ぱろっと(@parrot_studio)

for Gunma.web #2

2010/10/09

Page 2: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

・名前:ぱろっと

・使える言語:Ruby Javascript Java Perl VB PHP etc…

・職歴:SE/プログラマ/フリーランス/MMORPGの運営

・RDGC – Ruby(Rundom Dungeon Game Core)作者

・hatena:id:parrot_studio

・Twitter:@parrot_studio

・RO’s Blog: http://parrot.blog21.fc2.com/

Profile

Page 3: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

というわけで早速・・・

Page 4: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
Page 5: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

JavaScriptとは何か?

Page 6: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

あるプログラマsays:

フォーム制御に使うやつ?

Page 7: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

JavaScriptなめんな

(#゚Д゚)ゴルァ

Page 8: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

Resource

View1

View3

View2

View4

REST(API)

Viewは各クライアントが制御

Page 9: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

iOS その他

Flash × ○

HTML5 ○ ○

Page 10: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

HTML5を学ぶこと

JavaScriptを学ぶこと

Page 11: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

もはや「知らない」では

済まされない・・・

(((((( ;゚Д゚)))))

Page 12: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

でも・・・

難しいんでしょう(´・ω・)?

Page 13: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

そんなあなたに・・・

Page 14: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
Page 15: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

jQueryでできること

・セレクタによるDOM操作

・属性の操作

・イベント処理

・エフェクト(アニメーション)

・Ajax

Page 16: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

実例:ページ送りの処理

Page 17: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

// <a page=‚6‛>6</a>をクリックしたときの処理

$(

$(‚a[page]‛).click(function(){

var page = $(this).attr('page');

jump_page(page); // ページ遷移(別function)

return false;

});

);

Page 18: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

そんなのは

prototype.jsでも

できるんじゃないかね?

( ゚Д゚)y─~~

Page 19: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

jQueryの利点:

グローバル変数が

「$」一つしかないこと

Page 20: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

本当はこのあたりで

jQueryの機能をいろいろ

紹介するつもりだったけど・・・

Page 21: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

時間が足りないので

ばっさりカットで

Σ(゚Д゚)ガーン

Page 22: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

というわけでそろそろ・・・

Page 23: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

jQueryで

Twitterアプリを作ろう

Page 24: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

さっきから

顔文字を多用してるけど・・・

Page 25: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

きっと顔文字を使う人は

いっぱいいるはずだよね

(´・ω・)?

Page 26: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

そんな人を

Twitterから探すアプリ

Page 27: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

(´・ω・`)ショボーンとしたー http://www.parrot-studio.com/shoborn/

Page 28: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

完成したものが

こちらに(´・ω・)っ

Page 29: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

Data: Twitter(REST API)

View: Browser(JS)

Page 30: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

エフェクト実例:fadeIn処理

Page 31: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

0. まず服を脱ぎます

1. 取得済みのツイートを一つ持ってくる

2. display:noneをセットしてDOMに追加

3. addClass(name)でLvに応じたclassをセット

4. fadeIn()でデータを浮かび上がらせる

5. 1秒くらい後に1.から再実行

Page 32: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

もっと小難しいアニメーションも

プラグインを使えば超簡単

Page 33: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

そろそろまとめますよ・・・

Page 34: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

JavaScriptにまつわる

二つの悲劇

Page 35: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

1. グローバル変数の多用

Page 36: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

HTMLのDOMすら

グローバル変数

(ノ゚Д゚)ノ彡┻━┻

Page 37: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

つられて(?)プログラマも

グローバル変数を多用

Page 38: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

2. ‚Java‛Scriptという名前

Page 39: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

‛JavaScriptは

Cの皮をかぶった

Lispなのである。 ‛ --- Douglas Crockford

Page 40: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

むしろJavaよりRubyに近い

Σ(゚Д゚)ガーン

Page 41: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

そんなJavaScriptを

どう‚美しく‛書くか?

Page 42: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
Page 43: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

JavaScriptは

ブラウザ付属の

「簡易」言語にあらず!

∠( ゚д゚)/

Page 44: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

以上だけど

何か質問ある(´・ω・)?

Page 45: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

~おまけ~

jQueryの主要機能

Page 46: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

1. セレクタ

Page 47: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

$(‚p‛) // pタグ

$(‚#id‛) // 特定のidを持つ要素

$(‚.class‛) // 特定のclassをもつ要素

$(‚td:even‛) / $(‚td:odd‛) // tdタグの奇数/偶数

$("a[page]") // <a page=‚x">x</a>

Page 48: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

2. 操作

Page 49: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

// #lvのフォームが持つ値をget

$(‚#lv‛).val()

// #lvのフォームに値をset

$(‚#lv‛).val(3)

// selectを指定した場合、

// 自動でoption側を見てくれる

Page 50: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

よくやる間違い:

値を取得するつもりで

$(…).val と書く

Page 51: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

// 対象の要素にclass=‘lv3’を付加

$(‚#data‛).addClass(‘lv3’)

// 要素に属性を付加

$(‚a[page]:first‛).attr(‘page’, ‘1’)

// 属性値を取得

$(‚a[page]‛).attr(‘page’)

Page 52: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

3. ハンドラ

Page 53: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

$(‚a[page]‛).click(function(){

// クリックされた時の処理

})

$(‚#textform‛).keydown(function(){

// キーが押された時の処理

})

Page 54: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

$(function(){

// 初期化処理

// ハンドラの設定とか

// body.onloadに近いタイミング

})

Page 55: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

4. エフェクト

Page 56: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

$(…).fadeIn()

$(…).fadeOut()

$(…).slideUp()

$(…).slideDown()

// その他カスタムやプラグイン

Page 57: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

5. Ajax

Page 58: これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)

$.get(url, param, function(result){

})

$.post(url, param, function(result){

})

$.getJSON(url, param, function(data){

})

// JSONPも対応