ZDNet Japan Brand Site:
ZDNet Japan
builder

Leopard解体新書--第1回:RubyCocoaでWebページ表示

一足早くZDNet Japan編集部員宅にLeopardが届いてしまった。というわけで、早速レビュー。この連載ではブラウザShiira開発者でもある木下誠氏がLeopardの技術的な仕組みを掘り下げる。

木下誠(HMDT)  2007年10月25日 16時34分

標準搭載されたRubyCocoa

 さて、本連載の第一回目で取り上げるLeopardの新機能は、RubyCocoaだ。Mac OS Xユーザならずとも、近年のプログラミング業界に興味のある方ならば、気になる存在だろう。

 RubyCocoaは、名前の通り、プログラミング言語Rubyから、Mac OS XのアプリケーションフレームワークであるCocoaを操作できるようにしたものだ。Cocoaは、Objective-Cというプログラミング言語から使うように設計されているが、それ以外にも様々な言語が使える。Javaも使えたし、LeopardからはRubyとPythonのブリッジが標準で搭載されるようになった。

 もともとRubyCocoaの歴史は古い。2001年に藤本尚邦氏によって開発がスタートした。オープンソースとして多くの開発者を巻き込みながら成長し、2006年のWWDCではLeopardに標準搭載され、Appleがサポートに協力することが発表された。オープンソースの成果を積極的に取り込むとした、Appleの方針がいい形で作用した好例だろう。

RubyCocoaで対話的プログラミング

 前置きはこのくらいにして、とにかくRubyCocoaに触れてみよう。RubyCocoaの魅力は、対話的なCocoa開発にある。これは、使ってみないと分からない。

 まず、Finderで/Developer/Examples/Ruby/RubyCocoa/を開けてほしい(これは、先ほどの開発環境とともにインストールされる)。ここに、RubyCocoaのサンプルが並んでいる。この中にある、CocoaRepl/CocoaRepl.xcodeprojをダブルクリックして開く。そして、ツールバーにある「ビルドして進行」選ぶ。

 すると、CocoaReplというアプリケーションが起動するだろう。これが、RubyCocoaのためのインタプリタ、つまり対話的に作業するためのアプリケーションだ。

CocoaRepl RubyCocoaの魅力は対話的なCocoa開発

 使い方には、ちょっとコツがある。上部のテキストフィールドにRubyのコードを打ち込んでいくのだが、一行入力したら、[Cmd]+[Return]を押してほしい。これで、そのコードが実行される。単にReturnキーを押すだけでは実行されないので注意が必要だ。または、「Ruby」メニューにある「Eval」や「Eval Line」を使ってもいい。

 では、使ってみよう。次のように入力してほしい。各行の終わりでは[Cmd]+[Return]を忘れないように。

window = OSX::NSWindow.alloc.initWithContentRect_styleMask_backing_defer([100, 100, 300, 300], 15, 2, 0)
window.makeKeyAndOrderFront(nil)

 これでウインドウが表示されるはずだ。NSWindowというのがCocoaでのウインドウを表すクラスであり、その作成と表示をRubyCocoaで行ったのだ。

 次に、このウインドウにWebページを表示させてみよう。ウインドウの大きさを調節してみよう。

キーショートカット:  b - 前のページ n - 次のページ

関連情報

http://japan.zdnet.com/sp/feature/07leopard/story/0,3800081890,20359550,00.htm
Leopard解体新書--第1回:RubyCocoaでWebページ表示

ZDNet Japan Essential Topic

ZDNet Japanからのお知らせ

Intel Video Series

sponsored by Intel
  • 13. ソースチェック
    この4分間のビデオでは、Intel Parallel Studioの一部であるIntel C++コ...
  • 14. OpenMP 3.0
    この3分間のビデオでは、Intel Parallel Composerで利用可能なOpeMP 3.0...

ZDNet Japan ニューズレター

企業情報システムの選択、導入、運用管理に役立つ情報を毎朝メール配信します。

ニューズレターの登録・登録情報変更 »