Windowsで環境変数をいじらないでTitanium Mobileを使う

この記事は以下のバージョン時の情報になります。
・Java SE 6 Update 24
・Titanium Developer 1.2.2
・Titanium mobile SDK 1.6
・Android SDK r10
Titanium DeveloperはTitanium Studioに置き換えられました。Titanium Studioに対してはあまり参考にならないエントリーになっています。

デブサミ2011で聞いたTitanium Mobileが面白そうだったことを思いだし試しにいれてみようと思った。

Titanium MobileはjavascriptなどWeb技術でiOS,Androidアプリをつくれるツール。今までそれつかうぐらいならHTML5アプリでいいやんと思っていたがデブサミでjavascriptからネイティブに実装したモジュールと連携できるらしいことを聞いて俺向きのツールと判断している。

とりあえず最初にKitchenSinkというでもアプリを動かすところまで。WindowsなのでiOSアプリはつくれないのでKitchenSinkはAndroidで動かす。

Titanium Mobile
http://www.appcelerator.com/products/titanium-mobile-application-development/

Windows 7向けインストール手順
http://wiki.appcelerator.org/display/guides/Installing+on+Windows+7

↑は0から作る人にはとても丁寧に書いてある一方、すでにAndroid開発環境がある状態ならもっとすっとばしたいし、なによりこんなにPATHとか弄りたくないと思ったので環境変数変えないでいけるところまでやってみる。

今回は以下の状態を想定している

  • Windows 7 x64
  • JDK,JREがインストール済み
  • Android SDKインストール済み(C:\android-sdk-windows)
  • msysgitインストール済み(C:\msysgit)

Install JDK x86

32bit版のJDKの方がいいらしいので64bit版しかいれてなかったら入れる。
http://www.oracle.com/technetwork/java/javase/downloads/index.html<

Eclipseはx64で動かしているし、x86,x64を共存させるのでJAVA_HOMEとか設定したくないという意図もある。

Workaround for a missing adb

Androidのフォルダ構成の変更にTitaniumがついていけてない。

コマンドプロンプトを起動して以下を叩く

cd C:\android-sdk-windows\tools
mklink adb.exe ..\platform-tools\adb.exe
mklink AdbWinApi.dll ..\platform-tools\AdbWinApi.dll

Titanium Developerのセットアップ

http://www.appcelerator.com/products/download/からダウンロード(ページを開くといきなりダウンロードがはじまる)して、インストール。

Titanium Developerを起動し、いわれるままにサインインする

人のアイコンをクリックして、AndroidSDKのパスを入れたりする。

右上のNew Mobile SDK availableをクリックしたりする。

KitchenSinkプロジェクトをインポートする

msysgitを起動、適当なディレクトリに移動後
git clone git://github.com/appcelerator/titanium_mobile.git

gitがない人はhttps://github.com/appcelerator/titanium_mobileから「Download」ボタンから落としてもいける。

Titanium Developerを起動し、Import Projectで、gitでインストールした場所から
titanium_mobile/demos/KitchenSink
を選択する

AndroidエミュレータでKitchenSinkを起動する

Titanium Developerを終了する。

適当なところにTitanium.cmdというファイルを以下の内容で作成する。

SET JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_24
SET android_sdk=C:\android-sdk-windows
SET PATH=%PATH%;%JAVA_HOME%\bin;%android_sdk%\tools;C:\msysgit\msysgit\bin;C:\Python27\Scripts;
"C:\Program Files (x86)\Titanium Developer\Titanium Developer.exe"

作成したTitanium.cmdを実行。

Titanium Developerが起動したら、PROJECT > KitchenSinkを選択し
Test & Packageのタブから Run Emulator を選択、
SDKでAPIs 2.3とかを選択してLaunchボタンをクリック。

SDKの一覧にAPIsがなかったらAndroidのSDK Managerを起動して
Avaliable packages > Third party Add-ons > Google Inc. add-ons
の下からGoogle APIsを入れておくこと。

Titanium Mobile KitchenSink

なんとか普通に動いた。

手順作成中のトラブル

パスなしで突っ走ったら
[ERROR] Error locating JDK: set $JAVA_HOME or put javac and jarsigner on your $PATH
-> やっぱり、環境変数は要る。

Building KitchenSink for Android ... one moment
から進まない。
-> たぶんpython + SCons が要る(optinalって書いてあるけどTitanium mobileにはmandatoryじゃないのか?)

インストールでこける
[ERROR] Failed installing com.appcelerator.titanium: pkg: /data/local/tmp/app.apk
-> KitchenSinkはGoogle Mapsなどを参照するのでSDKには* APIsを選択しないといけなかった。

おわりに

動いたのは動いたけどまだコード書いてないのでなんともいえない。Titanium Developer はコンパイラっぽいがIDEではなさそう。ソースの閲覧・編集とかはできそうにない。このあたりはデブサミでも言及されていた気がするが、Aptanaを取り込んだらしいのでそのうちIDEとして公開されるのだろうか。Eclipseベースだからプラグインとして公開されると素のAndroidプロジェクトとかと共存できてとっても嬉しいのだけれど。

とりあえず次はNDKと連携したHello, Worldをつくろう。