Seasons.NET

ちょっとした技術ブログです

Titanium Moduleを作りたい人向けのメモ


最近、TitaniumのModuleが作りたいと思い立ち色々記事をあさっていました。
その課程でメモしたものや参考になるリンクをご紹介します。


とそのまえに、
Titanium Moduleで何ができるの?といった質問に答えると、
Titaniumそのものは、iOS SDKでできることがほぼ用意されており、
Titanium Mobileを使うだけでそれなりのアプリケーションが作れます。


ですが、iOSの全機能が使えるわけではなく、もちろんまだ整備されていないものもあります。
例えば、iOS 4で追加された機能やストアキット、外部モジュールを使った特殊なView
(例えば、Admobなど)です。
これらを使うには、本家の対応を待つというのではなく、
むしろ、Objective-Cが分かる人が作った方が早かったりします。


Objective-CでiOSのプログラミングをしてきた方なら、非常に簡単に作れます。



と言われています。


本当でしょうか?



日本語で書かれた記事もあり、
Titanium Module Development メモ その1
Titanium Module Development メモ その2
は、最初のとっかかりにはとても良いでしょう。


ですが、これだけではModuleを理解したとはいえません。
まず、はずせないのが、本家Module作成ガイド。
Titanium Module作成ガイドPDF


この資料は、Titanium Moduleを作る上での環境構築から実行までがまず書かれており、
その後、Proxy、ViewProxyを例にModuleの仕組みや実装する上での注意点が書かれています。

意外と重要だなーと思ったのが、
●ObjC側からTitanium側のJS側へのイベントの発行の仕方。
●UIスレッドで実行すべき処理がある場合のENSURE_XXXX系マクロについて、
●ObjCのオブジェクトをJS側へ返す時の作法について。


です。

これを読めば基本的にProxyは余裕で作れると思うんですけど、参考にしたいソースコードは、
やはり@masuidriveさんのソースコードでしょう。
StoreKitやAdmobのTitanium Moduleが公開されているのでとても参考になると思います。


https://github.com/masuidrive



Zipファイル処理のラッパーも参考になります。
Zipラッパー


とまぁ、ここまでで大分ノウハウが蓄積されると思うんですが、
やっぱり参考になるのは本系の実装ということで、
https://github.com/appcelerator/titanium_mobile
ソースコードを落として必要な箇所を見ていくと良いでしょう。


例えば、UIImageをJS側に返している箇所はどうなっているんだろう?とか。
本家だけにソースコード=サンプルみたいな感じでとっても参考になります。


ぶっちゃけ自分もこのソースと先ほどのPDFで大分理解できました。
マクロ展開した中身もこのソースで調べておくと良いでしょう。