090821 Ruby Sapporo Night Ruby Cocoa
-
Upload
tomoki-maeda -
Category
Technology
-
view
896 -
download
2
Transcript of 090821 Ruby Sapporo Night Ruby Cocoa
RubyCocoaLiveCoding2009-08-21(Fri.) Ruby Sapporo Night@Apple Store Sapporo
まえだ ともきMaeda Tomoki
前田智樹 / MAEDA Tomoki / tmaeda✓Ruby暦10年✓MacおよびMacプログラミング歴15年✓株式会社アンタス勤務✓Ruby札幌運営、RubyKaigiスタッフ✓最近の興味はOCaml、AR(MR)、集合知プログラミング
今日のお話✓RubyCocoaとは?✓MVCのおさらい✓RubyCocoaでアプリ作成の実演
✓RubyCocoaの仕組み
今日のお話✓RubyCocoaとは?✓MVCのおさらい✓RubyCocoaでアプリ作成の実演
✓RubyCocoaの仕組み
RubyCocoa
RubyCocoa
その前に...
Cocoa✓MacOSX用のアプリケーションフレームワーク
✓Objective-Cで書かれている
Mac OS X
Cocoa
Cocoaアプリ
Objective-C✓Cに、Smalltalkから強く影響を受けた動的なオブジェクトシステムを追加した言語
RubyCocoa✓RubyとCocoaの間の橋渡しをするブリッジ
✓RubyとObjective-Cは性質が似た言語なのでRubyからCocoaを自然な形で利用可能※MacOSX10.5(Leopard)からOSに標準添付
今日のお話✓RubyCocoaとは?✓MVCのおさらい✓RubyCocoaでアプリ作成の実演
✓RubyCocoaの仕組み
今日のお話✓RubyCocoaとは?✓MVCのおさらい✓RubyCocoaでアプリ作成の実演
✓RubyCocoaの仕組み
MVCModel
View
Controller
Model✓アプリが扱いたいデータ✓および、そのデータを管理・加工するロジック
✓つまりアプリケーションの存在意義✓iTunesなら音楽データの管理、検索、変換、再生がModelに入れるべきロジック
✓メーラーならメールデータ作成、送受信、保存、検索がModelに入れるべきロジック
View✓「出力」担当✓Modelのデータをいろいろな見せ方で表示するのみ
✓Modelに対しては基本的にRead Onlyでアクセスする
Controller✓「入力」担当✓キーボード、マウスなどから入力を受け取り、それをModel内の適切なロジックに渡す
✓ModelとViewの仲介役
MVCのキモ✓アプリケーションのUIとアプリケーションの機能を分離
Model
Controller View
MVCのキモ✓アプリケーションのUIとアプリケーションの機能を分離
Model
Controller ViewMはVやCのことを知らない
今日のお話✓RubyCocoaとは?✓MVCのおさらい✓RubyCocoaでアプリ作成の実演
✓RubyCocoaの仕組み
今日のお話✓RubyCocoaとは?✓MVCのおさらい✓RubyCocoaでアプリ作成の実演
✓RubyCocoaの仕組み
作るものカウンターアプリ
今回のアプリでのMVC
Model
Controller View@counter
ib_outlet :countLabel(@countLabel)
target
ソース上には現れていないが、nibファイル内で自動的に設定されている
LiveCoding
MVCの効果1:再利用✓VやCは環境に依存するコードになりやすいが、Mの中にVやCに関するコードを書かないので、Mは他の環境(WinやLinux)でも動かしやすい
MVCの効果2:テスト✓MがUIと関連しないので、Mに対する自動テストがやりやすい(UIを自動テストでテストするのは困難)
今日のお話✓RubyCocoaとは?✓MVCのおさらい✓RubyCocoaでアプリ作成の実演
✓RubyCocoaの仕組み
今日のお話✓RubyCocoaとは?✓MVCのおさらい✓RubyCocoaでアプリ作成の実演
✓RubyCocoaの仕組み
Cocoaアプリの構造
コンパイルされたバイナリ
RubyCocoaアプリの構造コンパイルされたバイナリ
(Rubyインタプリタを内包)
今日のお話✓RubyCocoaとは?✓MVCのおさらい✓RubyCocoaでアプリ作成の実演
✓RubyCocoaの仕組み
日本初!RubyCocoaの書籍
著高尾宏治
監修木村渡、中川智史
毎日コミュニケーションズから2009年9月下旬発売予定
今日のポイント✓ロジックを極力Mにを集めるようにしましょう
✓M内にはVやCに関連したコードを書かないようにしましょう
✓RubyCocoaアプリはRubyインタプリタを内包したアプリです
✓もうすぐRubyCocoaの本が出ます