CommonJSモジュールとrequireについて調べた学校が始まったのと、触っていくにつれてTitaniumが銀の弾丸ではない事が分かってきて、ペースダウンしてしまっているのですが、一応継続してTitaniumの習得を試みています。表題の件なのですが、Titaniumの1.8以降ではシングルコンテキストなコーディング作法というのが推奨されています。その作法ではrequire関数でモジュールをロードします。requireを使っている分にはあまり疑問も無かったのですが、先日試してみた軽量ORMのjoliに含まれていた以下のコードを見て疑問が湧いてきました。};}CommonJSモジュールって何やっけ?とか、そもそもexportsって何なん?とかexportsとmodule.exportsって何が違うん?という事ですね。Viewを作るJavaScriptが実行される時の流れを追ってみたモジュールの作り方が何となく分かったので、さっそくカスタムViewを書き始めましたが、幾つか分からない点があったので記録しておきます。A,Bがあって、AからBにドラッグドロップできるというものです。TableViewを作って張りたいのですが、どこにその処理を書けば良いのか分かりません。Objective-CでiPhoneアプリを作る時はIBでGUIを作って、awakeFromNibとかViewControllerのviewDidLoadあたりで調整すると思うのですが、IBを使わないTitaniumモジュールの場合どうすれば良いのか分からないのです。処理の流れを把握しておいた方が良さそうなのでソースコードを追ってみることにしました。出発点のJSのコードは以下のようになるかと思います。このFooViewが作られる過程を把握して、適切な場所でFooViewのサイズに合わせてTableViewを張りたいという事です。A,Bがあって、AからBにドラッグドロップする機能を書きたいんですが、現状のTiUITableViewだとセルをつかむ処理をフックできなさそうなので、モジュールを作ってみようと思います。joliを使ってデータベースを叩いてみる何となく画面の作り方が分かってきたので、次はデータベースを触りたいなという事で調べてみると、Titanium.Database.DBというインターフェースが用意されています。execute位しか無くて、ローレベル過ぎて面倒くさいです。iPhoneのネイティブアプリ開発ですらCoreDataが使えるというのに。僕はCoreDataはアンチなんですが、ORMは必須なゆとりプログラマなので、なんか無いのと思って調べてみたところjoli.jsというのが見つかりました。ソースを眺めてみると全体で900行くらいの超軽量ORMで、当然Webフレームワークなんかと比べると全然機能は少ないですけど、SQL生で処理するよりは全然楽なので、試してみる事にしました。画面遷移してみるHelloWorldができたので次は画面遷移をしたいですね。それで適当にググりながら下記の様なコードを書いてみたのですが上手く動きません。アニメーションされずにパッと画面が切り替わってしまいます。true});});win.add(btn);win.open();そこでwin2.openを呼び出す際のプロパティを下記のように変更すると、iPhoneの時のみアニメーションするようになりましたが、それでは駄目です。何の為にTitanium使うと思ってるんですか。Androidでも普通のアニメーションしながら画面遷移くらいしてくれと思いますよね。World次は奥さんの欲しいアプリを作ってみようと言う事になりました。奥さん曰く、普通の人はパソコンなんか触りたくない、できるなら全部携帯でやりたい、携帯アプリを作れとの事。奥さんはiPhoneを使っているのでiPhoneアプリです。できればObjective-Cは書きたくありません。文字列を分割するだけでcomponentsSeparatedByString等と書くのはゴメンなのです。Mobileを覚える事にしました。Phoneを買おうと思っているので、最初は対応プラットフォーム数が多いPhoneGapを使いたかったのですが、手元のiPhone4で少し試したところ動作が遅過ぎたので諦めました。MobileはiOSとAndroidに対応していて、BlackBerryサポートがベータまで来ています。Phoneへの対応の予定は無いようです)。オープンソースなので、スーパー本気出せば何だってできると言えばできます。それで1.5ヶ月くらいで一個アプリを作りたいなぁと思っていて、それまでの過程を残していく事にします。