Excite Smartphone Engineer's Blog

2012年 10月 03日

Titanium実装ノウハウの1


こんにちは。
ExciteのTitanium担当まえだです。
ですが、担当になったはごーくごく最近。
担当まえだが一発目に開発したアプリは

「屋久島・奄美諸島で使えるクーポン」
Titanium実装ノウハウの1_e0291676_18464877.png



Android/iOSの両OSに対応しています!
屋久島、奄美諸島に行かれれる方は是非是非是非是非インストールして使って下さい!
Android版:https://play.google.com/store/apps/details?id=jp.co.excite.coupon.yakushimaamami
iOS版:http://itunes.apple.com/jp/app/id543130583
なんと、あのAppBankさんにも紹介されました!ココ

と、宣伝はこのくらいにして、社内でTitanium勉強会を開いたので共有しちゃいます!




内容的はTitanium概要と屋久島・奄美諸島で使えるクーポンの開発環境をすっごく簡単にまとめています。
何かのご参考になれば幸いです!
(※今回の内容はすべてTitanium SDK2.0.2の内容となります。)



今回はアプリを作って(苦行を経て)得た実装ノウハウを少ないですがざっくばらんに共有したいと思います。
今回は下記3つ。(今回は文字数の関係で1つ)

1. APIで用意されている currentTabが取れない!?
2. AndroidでTab内WindowのFocus Eventが取れない!?
3. AndroidでTableViewSectionは使うべからず。


1. APIで用意されている currentTabが取れない!?w
これは困りました。だって取得できないんだもんw
currentTabとは、Tabを使っているときに今表示されているTabを取得できるTitanium標準で用意されているものです。

取得方法は
var activeTab = Ti.UI.currentTab;

のはず。だが、取れない。

Docでは下図の様にPropertyが書いてある。
Titanium実装ノウハウの1_e0291676_2415239.png

別に非推奨になったり、代わりにこれ使って!とも書いていない。
Tabを管理しているTabGroupがopenしていないはずも無いし。。。
ということで、ココを参考にして、自前で用意。
var tabGroup = Ti.UI.createTabGroup();
tabGroup.addEventListener('focus', function(e) {
tabGroup._activeTab = e.tab;
tabGroup._activeTabIndex = e.index;
if (tabGroup._activeTabIndex === -1) {
return;
}
Ti.API._activeTab = tabGroup._activeTab;
});

タブを切り替えた時にグローバルなところにactiveTabを入れる。
それで、欲しい時は
var activeTab =  Ti.API._activeTab;

でとれる!!→解決

と、今回は文字数制限の関係でここまでになります。。
次回更新までお待ち下さい!!!
更新しました!!→ココ

最後に参考にした資料を2つほどあげさせて頂きます。
Scalin Titanium Mobile


Wynn Netherland: Accelerating Titanium Development with CoffeeScript, Compass, and Sass from Appcelerator Inc.


by sp_tech | 2012-10-03 14:40 | Titanium | Comments(0)


<< Titanium実装ノウハウの2      【iOS6】iPhone5縦長... >>