titaniumTweetはじめに毎日が夏休みのみなさんこんにちは。Mobile使ってると、なんでiPhoneアプリなのにObjective-CじゃなくてJavaScriptで作れるか大変不思議ですよね。Mobileでアプリ起動から、JavaScript(app.js)を読み込んで実行しているところまでをソースコードを読んで追ってみました。Mobileで適当なプロジェクトを一つ作成してビルドして生成された/build/iphone/以下にあるソースコードを読んで行きます。SDKのバージョンは1.7.1です。今回、掲載してるソースコードで行番号が飛んでる部分は長いので省略しています。@”TiApp”)なのでTiApp.mmを見ていきます。TiAppではアプリケーションが起動したときに呼ばれるapplication:didFinishLaunchingWithOptionsを見ていきます。preload:nil];を見ていきます。kjsBridgeはKrollBridgeクラスなのでKrollBridgeのbootは以下になってました。start];を見ていきます。withObject:nil];757:}@selector(main)で指定されてるメソッドを見ていきます。withObject:self]を見ていきます。start];322:}selfの型はKrollBridgeクラスなのでKrollBridgeのdidStartNewContextを見ていきます。}570:}ここでapp.jsを読もうとしてますね。selector:@selector(booted)]を見ていきます。selector:selector];440:}ここで@selector(evalFileOnThread:context:)で指定してるメソッドは以下のようになっています。}TiCheckScriptSyntaxでJavaScriptの構文をチェックして。TiEvalScriptでJavaScriptを実行しているみたいです。TiEvalScriptは/build/iphone/headers/TiCore/TiBase.hで定義されていました。exception);で宣言されています。JS_EXPORTは以下のようになっていて、共有ライブラリから読みこむようになってました。i386/armhttp://github.com/appcelerator/tijscoreに実装のソースコードがありました。jsUndefined());75:}tijscoreのREADMEによると以下のような記述があり。WebKitのKJS(JavaScirptの処理系)をフォークして使ってるようです。最後に長々とソースコードを追ってみましたが。MobileでのJavaScriptの実行は、WebKitのKJSをフォークして使ってるという話でした。date*日本語が含まれない投稿は無視されますのでご注意ください。Viewを作るJavaScriptが実行される時の流れを追ってみたモジュールの作り方が何となく分かったので、さっそくカスタムViewを書き始めましたが、幾つか分からない点があったので記録しておきます。fax.0422-26-9781お問い合わせはこちらからどうぞ。