久しぶりにブログでも。
Titanium2.0のロンチイベントに参加してきた。
全体的に大きな変化はないそうだけども、一番の変化はレイアウトシステムをスクラッチで作り直したということらしい。以前のバージョンではレイアウトはOSの機能を使っているところがあったので機種ごとにバラバラな対応をしたりレイアウトの処理が重かったりしていたのを改善するため、レイアウトシステムを刷新したらしい。 Continue reading »
ツイート 久しぶりにブログでも。
Titanium2.0のロンチイベントに参加してきた。
全体的に大きな変化はないそうだけども、一番の変化はレイアウトシステムをスクラッチで作り直したということらしい。以前のバージョンではレイアウトはOSの機能を使っているところがあったので機種ごとにバラバラな対応をしたりレイアウトの処理が重かったりしていたのを改善するため、レイアウトシステムを刷新したらしい。 Continue reading »
ツイート iPhoneのバッテリーデータの取得と言うか、やりたいことはDockに刺さっているかどうかの取得なんだけど、これが意外とよくわからなかった。
基本的にはバッテリーの状態は自動的にPlatformのプロパティに入るらしく判別するには
switch (state){
case Titanium.Platform.BATTERY_STATE_UNKNOWN:
return 'unknown';
case Titanium.Platform.BATTERY_STATE_UNPLUGGED:
return 'unplugged';
case Titanium.Platform.BATTERY_STATE_CHARGING:
return 'charging';
case Titanium.Platform.BATTERY_STATE_FULL:
return 'full';
}
っていう感じでTi.Platform.BATTERY_STATE〜に0か1で入るらしい。
で、本来ならDockケーブルの抜き差しがあったときにイベント感知をして欲しいのだけど、いろいろしらべていると、Ti.PlatformにaddEventlistenerで’battery’としたら取得できるっぽいのだけど、どうやら動いていないみたい。
Titanium.Platform.addEventListener('battery', function(e){
var state = e.state;
alert('state chaged:' + batteryStateToString(state));
});
これが出来れば完璧なんだけどとりあえず、別の方法でバッテリーの情報を取得するタイミングが必要になるっぽい。
あと、実は気が付かなかったのが。
//バッテリーのモニタリングをtrueに設定? Titanium.Platform.batteryMonitoring = true;
これを設定しておかないとバッテリーの状況をモニタリングしてくれないのでバッテリーの情報が取得できないっぽい。これは気が付かなかったw
という初心者な自分向け情報w
ツイート GitHubに手こずってなかなか記事がUPができない。。(とか愚痴る)
今回はTableViewのRowに設定した子要素にアクセスする感じの部分。
TableViewの行の設定は配列にrowのデータを入れたり、createViewRowで設定したりとか複数の方法があるけども、どうやら行を選択して次のアクションをさせるにはTableViewにクリックイベントを設定するらしい。
ツイート どうやらTi.においてTableViewRowは避けて通れなそうな雰囲気のTableViewRowを調査。
まずは普通のTableViewの場合
//tableViewに格納するテストデータ
var rows = [
{title:'Row 1', hasChild:true,header:'header 1'},
{title:'Row 2', hasDetail:true},
{title:'Row 3', hasCheck:true,header:'header 2'},
{title:'Row 4'}
];
// テーブルビューのstyleを指定する。
var tableview = Titanium.UI.createTableView({
data: rows,
style: Titanium.UI.iPhone.TableViewStyle.GROUPED
});
通常のTableViewはrowsを配列で用意してcreateTableViewをしてdataに流しこむだけ。
これに対して、TableViewRowはもう少し複雑なものをTableのrowとして入れられるっぽい。
ツイート TableViewにはいろいろ複雑なというか、深い要素があるっぽいのでとりあえずまとまるまでに時間が少し掛かりそうなので基本を抑えるために基本だけの記事を書いてみる。
TableViewに必要な要素は
//tableViewを作る
var tableView = Ti.UI.createTableView({
data:rows
});
Ti.UI.currentWindow.add(tableView);
ツイート とりあえず、たった今解決した感じで、本当は画面のキャプチャとか上げるべきなんだけど、今使っているMBAはなにげに画像編集系のソフトをインスコしていないのでiPhoneで写真をとって編集してうpとかしてみるw
ちなみにDeveloper登録に関しては様々なエロい方々ががっつり記事を書いていてくださっているのでそちらをご参考に何とか頑張ってください。おいらは下記の2つをみたよ。
どちらもわかりやすいけど、後者はTitaniumMobileについてだし、画面のキャプチャがあってよりわかりやすいかもしれない。
ツイート Titaniumのopen関連の実験をしたら次は当然closeだよね!っちゅうことでcloseの特徴についてcloseはopenと関連しているので
この4つのopenのうちcurrentTabとnaviGroupのopenは自動的にcloseのボタンが表示されるように自動的にcloseの処理も実行されるので各必要はなし。
一方、windowとtabGroupの場合は自前で『戻る』ボタンを用意しないといけないわけです。
で、このwindowとtabGroupの2つの違いだけども、window.openの時にmodal:trueにして、modalTransitionStyleを指定している場合はwindow.close();を実行すると、modalTransitionStyleで指定したtransitionの動きとは逆の動きを自動的に実行してくれます。
一方、tabGroupの場合は自分でtransitionの指定もしないと行けないということだったりします。
とまぁ、そんな2つの違いがあるよ。
この他にもあるのかもしれないけどちょっと良くわからないからぜひ他のもあったらおしえてくだしあ。
ツイート Titaniumをやっていてどうしてもわからなかったのがページ遷移。
Titaniumのページ遷移には4通りあるっぽい。
ツイート そんな訳で急遽(?)ブログを復活させたのは原点回帰なんだけど、なぜ原点回帰したかというと、どうしても頭の中で整理できないことはブログに色々考察していた気がすると思ったのだった。
まあ、実験した内容をとりあえず書く!同じような所で詰まっている人が偶然見たら拾える的な事だった気がする。(違うかもしれない)
とりあえず、最近はTitaniumMobileをやっているよ。
詳しくはそのうち書くかもしれないけどまぁ、iOSのアプリとかAndroidのアプリがJSで作れるっていう素敵なツールだよ。
AndroidはJAVA、iOSはObjectiv-Cでアプリを開発するんだけど、どちらもプログラムの習得コストがね。。
まぁ、そんな訳でJavaScriptで開発できるツールが素敵ってことでTitaniumMobileを選んだわけです。
いろいろ特徴的な所があるっぽいのでただ今実験中!
ツイート