Titanium Mobile User Group Japan FAQ Stocker

Titanium Mobile ユーザー会のサイト上に掲載する FAQ を蓄積するためのシステムです。
蓄積された FAQ は Titanium Mobile ユーザー会の FAQ サイトに掲載されます。
一般的な質問はサポート BBS でお願いいたします。

FAQ を投稿、または編集するためには Twitter アカウントでログインしてください。
FAQ 一覧の JSON ファイルはここから取得可能です。

編集や削除はログインしているユーザの誰もが行えるようになっています。
情報の誤った編集や削除には細心の注意を払ってください。

Titanium Mobile 全般について

Titanium Mobile は使えるツールですか?

既に多くのアプリケーションが Titanium Mobile で開発され、 App Store や Google Play に掲載されています。また、Web API と連携するようなアプリケーションの構築が得意なので、使えるツールだと思います。

2013年1月現在、世界中で40万人の開発者がアカウント登録し、5万以上のアプリが公開されています。9,000万台の端末にアプリがインストールされ、これは過去8ヶ月で66%の増加率となっています。またeBayやPayPal、三菱電機などのエンタープライズクラスのクライアントも1,400社以上が利用しています。

Posted by ryugoo_ (2013-01-02 16:30:33) || Updated by yagi_ (2013-01-03 15:59:44)

Titanium Mobile は有料ですか?

Titanium Mobile は基本的には無料で使うことができます。
さらに、Github 上でオープンソースプロジェクトとして開発されています。
また、エンタープライズ向けに有償のサポートや追加 API を付与したプランも用意されています。
http://www.appcelerator.com/plans-pricing

Posted by ryugoo_ (2013-01-02 16:30:33) || Updated by ryugoo_ (2013-01-02 16:35:36)

Titanium Mobile の開発事例を教えてください

QA@IT の「Titanium Mobile で開発されたアプリの一覧がまとまっているサイトはありますか?」
にて掲載されているリンク集が役立ちます。
http://qa.atmarkit.co.jp/q/2392

また、 Sawalog さんの Titanium 製アプリ150個まとめが非常に詳しいです。
http://www.sawadaru.com/blog/?p=562

Posted by ryugoo_ (2013-01-02 16:30:33) || Updated by ryugoo_ (2013-01-02 16:35:57)

PhoneGap (Apache Cordova) や Sencha Touch とは何が違うのですか ?

PhoneGap や Sencha Touch は HTML / CSS / JavaScript で書かれた Web ベースのアプリケーションを、アプリマーケットで配布できるようにパッケージングするタイプのツールです。 Web ベースなので UI を自分で構築する必要があります。 jQuery Mobile などを使うことで、プラットフォームの標準的な見た目を「模した」アプリケーションを作ることはできますが、あくまでも模した物なので見た目や挙動はどうしてもプラットフォーム標準とは異なってしまいます。

Titanium Mobile は JavaScript を使ってネイティブ UI を持つアプリケーションを作る為のツールです。ネイティブ UI を使うので、見た目や挙動は iOS や Android が提供しているプラットフォーム標準の物になります。標準的な見た目や挙動をユーザに提供することができるので、できあがったアプリケーションが Titanium 製であるということは分かりづらいですし、ユーザが慣れ親しんだ使い勝手にもしやすくなります。

もちろん、 Titanium も WebView を使うことができるので、 PhoneGap や Sencha Touch と同じように Web ベースのアプリケーションを作ることもできます。

Posted by ryugoo_ (2013-01-03 03:32:51) || Updated by ryugoo_ (2013-01-03 03:41:42)

Titanium SDKはソースコードが公開されているフリーソフトウェアですが、このツールで作成されたアプリのライセンスはどうなっていますか?

Titanium Mobileのソースコードはこちらで公開されています。
https://github.com/appcelerator/titanium_mobile

ライセンスはこちらです。
https://github.com/appcelerator/titanium_mobile/blob/master/LICENSE

上のリンク先にある通り、Titanium MobileのソースコードはApache2.0ライセンスで公開されています。Apacheライセンスはこちらを参照してください。
http://www.apache.org/licenses/LICENSE-2.0

Apacheライセンスなので、特に利用の制限はありません。Titanium Mobileで作成されたアプリのライセンスは、Apacheライセンスで作成されたことを示す記述がどこかに含まれてさえいれば、作成者で自由に設定することができます。こちらはアプリの作成時に自動的に処理されますので特に意識する必要はありません。また、オープンソースソフトウェアの利用制限がある場合は個別交渉で別途ライセンスを受けることも出来ますので、そちらはAppcelerator社にお問い合わせください。Titanium Mobile自体を再配布する場合はApacheライセンスに従って同条件とする必要があります。

その他関連リンクはこちらです。
http://ja.wikipedia.org/wiki/Apache_License
http://d.hatena.ne.jp/donayama/20100126/timobile_license_faq

Posted by yagi_ (2013-01-03 16:32:04)

iOS アプリ開発について

Titanium Mobile で iOS アプリ開発を行うときの注意点を教えてください。

Titanium Mobile と iOS アプリ開発は相性が良い組み合わせですが、ハイパフォーマンスなアプリケーションの構築は苦手です。例えば毎秒 60fps 描画が必要なアクションゲームのようなものは得意ではありません。

Posted by ryugoo_ (2013-01-02 16:30:33)

iOSの実機でビルドが出来ません!「SystemExit: 65」というエラーが出ます

エラーメッセージにSystemExit: 65が出る場合、Resources以下に日本語などマルチバイト文字の含まれるファイルがある可能性が高いので探してみてください。JavaScriptに限らず、画像やHTMLでも問題が発生します。

SDK 2.xの場合はシミュレータでもエラーになります。3.xの場合はシミュレータでは問題なくても実機で動かそうとするとエラーになります。

Posted by yagi_ (2013-02-05 23:40:45)

Android アプリ開発について

Titanium Mobile で Android アプリ開発を行うときの注意点を教えてください。

Titanium Mobile で Android アプリ開発を行うことは iOS アプリ開発よりも難しくなっています。 Java で開発を行うとき同様、多種多様な端末と Android OS のバージョンの違いを吸収しなくてはいけませんし、書かれている Titanium Mobile のドキュメント通りに動かないこともあります。

手元にいくつかの端末を用意して、細かく実機転送と確認を行うことが開発を効率よく進めるためには必要でしょう。

Posted by ryugoo_ (2013-01-02 16:30:33) || Updated by ryugoo_ (2013-01-02 16:36:38)

サポートされている Android のバージョンは?

Titanium Mobile の SDK 2.x の場合、互換性の一覧はこちらに記載されています。
http://docs.appcelerator.com/titanium/2.0/index.html#!/guide/Titanium_Compatibility_Matrix-section-29004837_TitaniumCompatibilityMatrix-AndroidSDK%2FTargetAndroidPlatform

Titanium Mobile SDK 3.x の場合はこちらです。
http://docs.appcelerator.com/titanium/3.0/#!/guide/Titanium_Compatibility_Matrix-section-29004837_TitaniumCompatibilityMatrix-PrerequisiteAndroidSDK%2FAPI

大雑把にまとめると、Titanium SDK 2.x 系から Android 4.x の対応が始まりました。Titanium SDK 1.8 以降は Android 2.2 以上のサポートとなっています。 Titanium SDK 2.1.2 以降は Android SDK 2.2 - 4.1.x です。 Android 4.1 Jelly Bean 以降に対応させる場合は Titanium SDK 2.1.2 以降をご利用ください。

Posted by yagi_ (2013-01-02 16:30:33) || Updated by ryugoo_ (2013-01-03 19:46:30)

BlackBerry / Mobile Web 開発について

BlackBerry / Mobile Web の情報が少ないのですが…

BlackBerry は欧州で広く使われていますが、日本ではあまり大きなシェアがないため開発の事例を見かけません。なので国内で Titanium Mobile を使って BlackBerry のアプリを開発したという話を聞くことは難しいでしょう。また、 Mobile Web も事例を聞きませんが コロパニー 様 (http://colopany.com) の Web サイトが Mobile Web で作られているとのことです。

Posted by ryugoo_ (2013-01-02 16:30:33) || Updated by ryugoo_ (2013-01-02 16:37:15)

モジュールについて

モジュールはどこで手に入れることができますか?

Titanium Mobile 用のモジュールは Appcelerator 公式の Open Mobile Marketplace や Github 上で入手することができます。 iOS 用のモジュールは iOS でしか動作しませんし、 Android 用のそれも同じです。どちらから入手する場合もライセンスには注意が必要です。

Open Mobile Marketplace : https://marketplace.appcelerator.com/home
GitHub : https://github.com/

Posted by ryugoo_ (2013-01-02 16:30:33) || Updated by ryugoo_ (2013-01-03 19:47:45)

開発環境 (Studio など) について

Titanium Studio を Mac OS X にインストールしても起動しません。

Titanium Studio は Eclipse ベースのアプリケーションなので、 Java ランタイムが必要です。 OS X Lion 以降ですと、アプリケーションが Java を求めている場合、起動時に Java ランタイムのインストール確認メッセージが表示されるはずなので、そちらをご確認ください (http://helpx.adobe.com/jp/x-productkb/global/cpsid_91087.html)

Posted by ryugoo_ (2013-01-02 16:30:33)

作っていたアプリのコードにはエラーが無いのに、動作確認をすると必ずエラーが出ます。

Titanium Studio を使っているならば、 Project → Clean を選択して、プロジェクトファイルのリフレッシュを行ってください。一度ビルドした結果をキャッシュしておくことで、2回目以降のビルドを高速化するための仕組みが、思わぬタイミングで悪さをすることがあります。

これを消すことで、改めてビルド時にキャッシュを生成します。 Titanium Studio を使っていないならば、プロジェクトディレクトリにある build ディレクトリの中身を全て削除してください。

Posted by ryugoo_ (2013-01-02 16:30:33) || Updated by ryugoo_ (2013-01-03 03:36:16)

tiapp.xml を変更したのですが、ビルドしてもアプリケーションに設定が反映されていません。

Titanium Studio を使っているならば、 Project → Clean を選択して、プロジェクトファイルのリフレッシュを行ってください。一度ビルドした結果をキャッシュしておくことで、2回目以降のビルドを高速化するための仕組みが、思わぬタイミングで悪さをすることがあります。

これを消すことで、改めてビルド時にキャッシュを生成します。 Titanium Studio を使っていないならば、プロジェクトディレクトリにある build ディレクトリの中身を全て削除してください。

Posted by ryugoo_ (2013-01-02 16:30:33) || Updated by ryugoo_ (2013-01-03 03:36:25)

Titanium Studio を使わないと Titanium Mobile を使った開発はできないんですか?

そんなことはありません。
Titanium Studio は公式に提供されている最も確実な開発手法ですが、コードを書くだけならお使いのテキストエディタで自由に開発することができます。

Vim / Emacs / Sublime Text など、一部のテキストエディタはプラグインと設定によって、Titanium Studio のようにコードヒントを出すこともできますし、GitHub で公開されている MakeTi や titanium_cli を使うことで、コマンドラインからの操作だけで Titanium Mobile 開発を完結させることも可能です。

MakeTi : https://github.com/appersonlabs/MakeTi
titanium_cli : https://github.com/appcelerator/titanium

Posted by ryugoo_ (2013-01-02 16:30:33) || Updated by ryugoo_ (2013-01-03 03:36:52)

Appcelerator Cloud Services について

Appcelerator Cloud Services とは何ですか?

Appcelerator Cloud Services (ACS) は Backend as a Service (BaaS) と呼ばれるサービスの1つです。
http://www.appcelerator.com/cloud/

サーバにデータを保存したり、取り出したり、他のユーザと共有したりするためには、サーバの準備やサーバサイドプログラミングを行う必要があります。そこで ACS を使うことで、サーバサイドプログラミングを行うことなく、用意された API を呼び出すだけでサーバにデータを保存したり、取り出したりすることができるようになります。

ACS は Titanium Mobile から簡単に利用することが可能で、 JavaScript のコードを書くだけで利用することが可能です。また、 Titanium Mobile 以外にも Web 上の JavaScript や iOS / Android のネイティブな SDK も提供されているので Web と連携したアプリケーション開発に高い柔軟性を持って使うことができます。

日本語の資料は @kaz_konno さんがアップロードされた物をご覧ください。
https://speakerdeck.com/kazkonno/insutantomobairubaas-appcelerator-cloud-services-acs

価格改定によって無料利用枠の制限が大幅に緩和されました。特に Push Notification API がデバイス数 100 台から 500 万コールに単位変更され、魅力的なサービスになっています。
http://ti-news.hatenablog.jp/entry/2013/01/10/132925
http://developer.appcelerator.com/blog/2013/01/pricing-updates-for-appcelerator-cloud-services-and-analytics.html

Posted by ryugoo_ (2013-01-02 16:30:33) || Updated by ryugoo_ (2013-01-13 11:20:32)

Alloy MVC Framework について

Alloy MVC Framework とはなんですか?

Alloy は Titanium Mobile 用の MVC フレームワークです。
Titanium Mobile を開発する Appcelerator が公式に開発しています。
https://github.com/appcelerator/alloy
http://docs.appcelerator.com/titanium/latest/#!/guide/Alloy_Framework

Titanium Mobile は JavaScript でコーディングしていくのですが、 UI や様々なロジックなど、コードがごちゃ混ぜになりがちで、上手にコードの分割や設計を行わないと管理が難しくなりがちでした。また、 JavaScript のコーディングスタイルやユーザによって共通しないベストプラクティスの問題などもあり、チームによる大規模開発が難しいのも事実でした。

そこで、 Alloy が登場しました。 MVC という大変よく使われるアーキテクチャで Titanium Mobile 開発が可能で、
・Model : Backbone.js ベースの O/R マッパー + JavaScript
・View : XML + TSS (Titanium Style Sheet)
・Controller : JavaScript
という組み合わせでコーディングを行います。

XML で UI を構築し、見た目は CSS ライクな TSS (Titanium Style Sheet) を使って装飾します。
ロジックは XML の UI にヒモ付けた ID を元に JavaScript でイベントやロジックをくっつけ、
モデルとして Backbone.js ベースの O/R マッパーを使って抽象化されたデータベースを使うことができます。

Ruby on Rails や Adobe Flex (Flash Builder) をイメージしていただくと良いのではないでしょうか。

Appcelerator がいうには Alloy を使うとアプリが最適化されて、アプリケーションのパフォーマンスが良くなるそうです。
決まった管理方法でアプリケーション開発を行えるので、チーム開発にも向いているのではないでしょうか。

Posted by ryugoo_ (2013-01-02 16:30:33) || Updated by ryugoo_ (2013-01-03 16:43:42)