090821 Ruby Sapporo Night Ruby Cocoa

Post on 31-May-2015

896 views 2 download

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の本が出ます