小さな Titanium Mobile の読み物

The Little Book on Titanium (Appcelerator Titanium)

JavaScript を使って iOS/Android などマルチプラットフォーム対応のネイティブアプリケーションを構築することができる Appcelerator Titanium についてまとめた非公式サイトです。

ページ1 | はじめに

  1. Appcelerator Titanium
  2. Write Once, Adapt Anywhere
  3. 使えるの?
  4. 苦手なものは何?

ページ2 | 開発ツール

  1. Titanium Studio
  2. Titanium CLI

ページ3 | 開発スタイル

  1. JavaScript
  2. Titanium Classic
  3. Alloy

ページ4 | アプリケーションの例

  1. プロジェクトを作る
  2. レイアウトを考える
  3. 土台を作る
  4. 細かい機能を実装していく
  5. 終わりに

ページ5 | Titanium を拡張する

  1. モジュール
  2. Titanium Cloud Services
  3. altJS

はじめに

Appcelerator Titanium™

Appcelerator Titanium™ (以下 Titanium) は JavaScript を使って iOS や Android などに対応するネイティブアプリケーションを開発することができる開発ツールです。2013年12月現在は iOS と Android が主な対応プラットフォームですが、 Tizen や BlackBerry にも対応しているほか、 Ti.Next と呼ばれる次期バージョンでは Windows Phone 8 への対応も予定されています。

Write Once, Adapt Anywhere

Titanium は1つのコードから複数のプラットフォームに対応するアプリケーションを開発できるツールですが、 Write Once, Run Anywhere とは異なるポリシーを持っています。 Titanium は1つのコードの中で特定のプラットフォームに最適なコードを書き分ける Write Once, Adapt Anywhere というポリシーで開発を行います。

例えば iOS と Android では UI に対するデザインガイドラインが異なります。 iOS ではタブは下にあり、 Android では上にあるなどの違いです。ユーザはこうしたガイドラインに沿ったアプリケーションに慣れ親しんでいます。なので、 iOS でタブを上に持って行ったり、逆に Android でタブを下に持って行くなど、ガイドラインから外れた UI にしてしまうとユーザは混乱してしまいます。

UI の違い

一方で違うプラットフォームでも同じように使えるロジックがあります。例えば Web API と通信して JSON を取得したり、画像をアップロードしたりするような処理はプラットフォームが異なっても同じように動くことを期待します。このように、特に UI に関連する処理を1つのコードの中でプラットフォームに最適化する形で書き分け、共通ロジックを使い回す方針が Write Once, Adapt Anywhere です。

Titanium は使えるの?

Titanium は Web API と通信して情報を表示したり、情報を送信したりするタイプの Web アプリケーションのフロント側の開発に向いています。 JavaScript という非同期操作を主とする Web アプリケーションの開発現場で使われている言語を使うためです。

// HTTPClient API の例
(function () {
    var http = Ti.Network.createHTTPClient();
    http.open('get', 'http://ip.jsontest.com/');
    http.onload = function () {
        var data = JSON.parse(http.responseText);
        console.log(data); // {"ip": "123.456.789.0"}
    };
    http.onerror = function (e) {
        console.error(e);
    };
    http.send();
}());

例えば JSON を取得して何らかの処理を行いたい場合は、上のようなコードを書くだけで Titanium は HTTP 通信を実現します。

Titanium が苦手なものは何?

Titanium はハイパフォーマンスを求めるタイプのアプリケーション開発を苦手とします。毎秒60フレームを求めるようなゲームや Instagram のように画像にエフェクトをかけるようなアプリケーションがそれに該当します。ただし、後述するモジュールを活用することで問題を解決できる可能性があります。