akiyoko blog

akiyoko の IT技術系ブログです

「Titanium Mobile」で作るiOS/Androidアプリ ライブコーディング

昨日、またまたスマホのセミナーに参加してきました。

「「Titanium Mobile」で作るiOS/Androidアプリ ライブコーディング」(2012.6.29)


現場が忙しかったので、代々木の会場に着いたのは19:55。25分の遅刻です。。

Appcelerator社の増井氏の講演は2日前に聞いたばかりですが、今回は、Titanium Mobileのライブコーディング。通常のセミナー形式と違って、実際のコーディング風景を生で見ることができます。


 

サンプルコーディング

新規プロジェクトのサンプルコードから少しずつカスタマイズ。

  • 中でも重要なモジュールは tiapp.xml(タイアップと読む)と、app.js。
  • app.jsは最初に実行される。
  • app.jsは非常に長くなるので、requireを使って分割するのがよい。
  • その上で、app.jsには起動時の挙動のみを書くのがよいかも。
  • ui/handheldにはスマホ、ui/tabletにはタブレットのモジュールを分割して置く。


モジュールの分割方式(どこに何を置くか)については、夏あたりにTitanium Mobileの上位フレームワークの提示ができるので、そちらを参考にされてみては?とのこと。
後で個別に質問したところ、予想通り、MVCフレームワーク「alloy」を指しているとのことでした。

  • UI部分もJavaScriptで書くので、UI関連のコードが多くなる。
  • Interface BuilderからTitanium向けのコードに変換するツールを(非公式ながら)公開している人もいる。
  • GUIツールでUIを開発するのは社内で企画として上がっているが、公開とかはまだ。


1秒ごとに現在時刻を表示するサンプル。クロージャを使う。

setInterval(function() {
    var d = new Date();
    label2.text = String.format("%d:%d:%d", d.getHours(), d.getMinutes(), d.getSeconds());
}, 1000);

出典:https://github.com/masuidrive/TiHandson/blob/master/source/test01c-app.js

 

Twitterアプリ

Twitter APIを使ってタイムラインを表示させるクライアントアプリ。

作成手順は、

  1. Twitter Developers Documentation から使用するAPIを探す。
  2. Resource URL「http://api.twitter.com/1/statuses/user_timeline.format」を確認する。(JSON形式でレスポンスを受け取りたいときは、user_timeline.json)
  3. HTTP通信のクラスは、Ti.Network.createHTTPClient()で生成。
  4. open()でリクエスト作成、send()でリクエスト送信。*1
  5. responseTextでレスポンスを取得。

 

var http = Titanium.Network.createHTTPClient();
http.open("GET", "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=appcelerator_ja");
http.onload = function() {
    var json = JSON.parse(http.responseText);
    tableView.data = json.map(function(tweet) {
        return({title: tweet.text});
    });
};
http.send();

出典:https://github.com/masuidrive/TiHandson/blob/master/source/test02b-app.js

  • コンソールにデバッグ出力させたいときは、Ti.API.info(xxx);

 

Appcelerator Cloud Services (ACS)

最後に、Appceleratorのクラウドサービスについて。

  • BaaS(Backend as a Service)として提供。
  • APIを提供するクラウド。DBやユーザ認証に関するWeb APIを提供する。
  • REST APIを提供。
  • 今年買収したCocoafishが企画していたサービス。
  • 7月中に正式版としてオープンする予定。今はβ版。
  • Amazon Cloud Serviceをベース。Mongo DBを使用。管理画面がある。
  • 「Todo List」をACS向けに書き換えたサンプルを作った。
  • donadona氏がACSのサンプルアプリについて分かりやすく書いている。
  • 料金については、結構無料で使える。数千~1万ユーザくらいなら無料でいける。
  • サーバサイドの構築費をかなり下げられる。

*1: TitaniumのAPIについては Titanium Mobile 2.0.2 API Documents (http://tidocs.com/mobile/2.0.2/) を参照。