CoffeeScriptを使ってTitaniumでiPhoneアプリを作る

| コメント(0) | トラックバック(0)

最近、まわりでCoffeeScriptがすごいという声が。

CoffeeScriptって?

Javascriptを洗練させてPythonやRubyライクな文法で書ける言語。
コンパイルするとクロスブラウザでJS Lintも通るJavascriptになるというもの。
某WebベースのTwitterクライアントも、JS部分はこれで書いてるとか。

CoffeeScript - sappari wiki
https://sites.google.com/site/sappariwiki/coffeescript

CoffeeScriptについては、日本語だと、ここがよくまとまってます。

さっそく、CoffeeScritptを入れて、Titaniumの最初のコード(プロジェクトを新規作成するとできるやつ)をCoffeeScriptで書きなおしました。

https://gist.github.com/764343

JSファイルにコンパイルして、Titaniumでビルド。ドキドキ。
ちゃんと動きました! かなりすっきり書ける印象。

で、CoffeeScriptのコンパイルを前回のTitaniumのビルドを簡単にするスクリプトに組み込んでみる。

https://gist.github.com/767905

これでスクリプトを叩けば、自動的にCoffeeScriptがコンパイルされて、iPhoneアプリがビルドされる。

CoffeeScript -> JavaScript -> (Titanium) -> ObjectiveC

というすごい階層構造に。
CoffeeScriptで書いてて、たまに生成されたJSを見るとJavascriptが低レイヤーのアセンブラのように思えますw

クラス化してみる

Titanium公式のカプセル化は若干使いにくいので、どうしようかなぁと思ってたのですが、CoffeeScriptはクラスも使えるらしい。

https://gist.github.com/767545

さきほどのサンプルコードをクラスを使って書き直してみました。
ちょっと冗長かもしれないけど。。
まだ理解が浅いですが充分使えますね。

個人的には、thisをクロージャーやイベントリスナーに渡せるFunction bindingがあるのが便利。
functionを書かなくていいのも。これでタイポから解放される?

https://gist.github.com/767613

実際にコンパイルで生成されたJSはこんな感じ。

変数は最初にまとめて定義されていて、bindやfor ~ of などに使われる関数も定義されてます。
jQueryなどのライブラリを読み込むのと違って、必要なコードしか生成されないので、パフォーマンス的にもよさそう。
クラスはJSのprototypeベースのクラス化をわかりやすく使えるというかんじ。

ということで、CoffeeScriptかなりいいかも。

各エディタ向けの入力支援ツール

defunkt/coffee-mode - GitHub
https://github.com/defunkt/coffee-modeemacs
emacs使いの人はここ。

kchmck/vim-coffee-script - GitHub
https://github.com/kchmck/vim-coffee-script
Vim使いの人はここ。

jashkenas/coffee-script-tmbundle - GitHub
https://github.com/jashkenas/coffee-script-tmbundle
最近、Macに乗り換えてTextMate使いになったので、これを入れた。

Vim-users.jp - Hack #164: JavaScript開発環境 その2 CoffeeScriptを使う
http://vim-users.jp/2010/07/hack164/

非常にマニアックな考察がされていますw
今回の記事は、UjihisaくんからCoffeeScriptすごいよ!と教えてもらったのがきっかけで書きました。

Thanks. Ujihisa!

トラックバック(0)

トラックバックURL: http://a-h.panepon.com/mt5/mt-tb.cgi/207

コメントする

このブログ記事について

このページは、AUSGANG SOFTが2011年1月 6日 23:59に書いたブログ記事です。

ひとつ前のブログ記事は「TitaniumのコードをGUIなしでエディタからすばやくbuildする on Ruby」です。

次のブログ記事は「Javascriptのエラーを捕捉して、analyticsに記録するスクリプト」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ