昨日、またまたスマホのセミナーに参加してきました。
「「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を使ってタイムラインを表示させるクライアントアプリ。
作成手順は、
- Twitter Developers Documentation から使用するAPIを探す。
- Resource URL「http://api.twitter.com/1/statuses/user_timeline.format」を確認する。(JSON形式でレスポンスを受け取りたいときは、user_timeline.json)
- HTTP通信のクラスは、Ti.Network.createHTTPClient()で生成。
- open()でリクエスト作成、send()でリクエスト送信。*1
- 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
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向けに書き換えたサンプルを作った。
- https://github.com/appcelerator-titans/ACSTodo
- 「Cloud.Photos.create...」などとして使う。
- donadona氏がACSのサンプルアプリについて分かりやすく書いている。
- 料金については、結構無料で使える。数千~1万ユーザくらいなら無料でいける。
- サーバサイドの構築費をかなり下げられる。