Home > Titanium Archive

Titanium Archive

Titanium 非公式 BBS がオープンしました。

公式の Titainum 掲示板の公開が遅いので、@masuidrive さんが非公式ながら BBS をオープンしてくださいました。

日本の Titanium Developer のみなさん、Titanium の質問はこっちにすると親切丁寧な回答を期待できるかも!

非公式 Titanium BBS

Titanium BBS(JP unofficial)

[Titanium] JSDeferred を使って現在位置の取得を順次処理する

Titanium で、JSDeferred を使って順次処理するサンプルです。

JSDeferredはJavaScript上の,あらゆる非同期処理を扱うライブラリです。<中略> JSDeferredは,このようなコールバックの入れ子による非同期処理を,オブジェクトの連鎖による表現に変形させてあげることで,半分同期処理のような感覚で書くことができるようにします。

JSDeferredで,面倒な非同期処理とサヨナラ - gihyo.jp

バージョン -- 追記(2011/03/23)

Titanium
1.5.1
JSDeferred
0.4.0

Titanium 1.6.1 で動かない問題は、@Seasons さんがパッチを書いてくださいました。感謝!! パッチが公開されたらリンクします!

Seasons.NET

@hamasyou どもです^^ 0.4.0を使おうとしたところJSのコンパイルで止まってしまったのでJS初心者ということもあり色々と調べてました^^; ラベル付きブロックが使えない(正しく動作しない)みたいで、repeatの実装のところでJSコンパイルが止まってしまってました。

twitter より

サンプルコード

Titanium.include(Titanium.App.appURLToPath("app://lib/jsdeferred.js"));
Deferred.define();
 
var currentLocation = null;
(function() {
  var deferred = new Deferred();
  Titanium.Geolocation.addEventListener("location", function(e) {
    currentLocation = e.coords;
    deferred.call();
  });
  return deferred;
})().
next(function() {
  alert(currentLocation);
});
 
alert("ここは必ずしも、alert(currentLocation)の後に呼び出されるとはかぎらない!");

alert(currentLocation) としているところに現在位置を取得した後のコードを記述することで、現在位置を取得して何か処理をするというのを順序を保証して処理することができるようになります。

ただし、next の外側の処理は非同期で進んでしまうため、必ずしも、alert(currentLocation) との順序は保たれません。

Titanium Mobile - appcelerator

JSDeferred

Titanium で include でファイルを読むときのテクニック

Titanium.include(Titanium.App.appURLToPath("app://lib/jsdeferred.js"));

上記の様に、 app: プロトコルを使用して、appURLToPath メソッドでファイルを読み込むことで、Titanium のResources フォルダからの相対パスで書けるようになります。

[Titanium] Titanium 版 XML2JSON - XML を JSON に変換する

Titanium は、JavaScript でコードがかけると言っても色々と制約があり、eval() を使うようなライブラリは使用できません。

2011/01/18追記

Titanium.include("TiDOMParser.js") だと実機のほうでエラーが発生するという報告を頂いたので、TiDomParser に変更しました。合わせて、プログラム中の TiDOMParser を TiDomParser に変更しました。ご報告ありがとうございました。

2010/09/15追記

eval() が使えないと書きましたが、使えることが判明しました。。。KitchenSink のサンプルにもありました。。 僕の環境で動かないと思っていたのは、eval("1+1"); と試していたからで、eval() の中はコードになるので正確にはセミコロンが必要で、eval("1+1;"); としないとダメでした。。訂正です。。

XML を JSON にするライブラリに、XML to JSON というライブラリがありますが、内部で eval を使っているため動きません。(中身を書き換えれば動きそうですね。。)

そこで、DOM から JSON に変換する XML.ObjTree というライブラリを元に、Titanium 上で XML を JSON に変換するライブラリを作ってみました。

ライセンスとか気にしたつもりですが、ObjTree のライセンスに引っかかるとかあればご連絡ください。すぐに対応します。

続きを読む - [Titanium] Titanium 版 XML2JSON - XML を JSON に変換する

[Titanium] Titanium Mobile で iPhone 開発 - ハマった点

Titanium Mobile は iPhone、Android アプリケーションを JavaScript でコーディングできるクロスプラットフォーム環境です。

Titanium を使っていてハマった点をメモしておきます。

Titanium Mobile のダウンロード

続きを読む - [Titanium] Titanium Mobile で iPhone 開発 - ハマった点

[Titanium] Titanium Mobile で iPhone 開発 - その1

iPhone アプリの開発をしていて一番の難は Objective-C を使わないといけないことだと思う。Objective-C が大好きな人もいるかもしれないけど、僕はあの言語の気持ち悪さ(構文的な意味で)が嫌いです。。

で、どうにかならんもんかと調べてみるとなんと、JavaScript を使って開発することが出来る開発プラットフォームがあるじゃないですか。

というこで早速使ってみましたよ、Titanium Mobile!読み方は、タイタニウム らしいですが、チタニウムのが言いやすいよね。。

参考

続きを読む - [Titanium] Titanium Mobile で iPhone 開発 - その1

Index of all entries

Home > Titanium Archive

Search
Feeds
access

access counter

Return to page top