あんにんにっき。

日々思ったことや、おこったことを記録するブログ。要するに日記。

ゲネプロ

 相方がバレエを習っているのだけども、それの発表会が26日(日曜日)にありまして。
 その前日である今日はゲネプロがあり、それを観にでかけていた。あと、ビデオ録画なんかもしていた。
 相方は録画内容を帰ってすぐにチェックして、あそこで腕を伸ばすべきだとか立ち位置がどうだ、とか色々研究していて。そういう研究する姿勢は素直に尊敬できるなぁ、などと感心していた。


 ところで。私は、結婚するまで「ゲネプロ」などという単語を全く知らなかったのだが。これって一般的な単語なのかな?とおもって調べてみた。
 wikipediaによると、ドイツ語での「通し稽古」に相当する単語「ゲネラールプローベ」の略語らしい。でも、日本式の略語なので、ドイツでは通じない(まあ、よくある話)との事。
 本番と全く同じ条件で行うものらしい。たしかに、照明も衣装も舞台も同じだった。


 オペラやバレエやクラシック音楽の世界では一般的な単語のようだ。どれも結婚するまでは縁遠い世界だったからな。結婚してからは、バレエやらオペラやらミュージカルなんてのもたまには見るようになった。どれも意外と面白い(たぶん、面白いものを選んで教えてくれてるってのはある)。
 自分の知らないことをガイド付きで知ることができる、ってのはありがたい経験だよね。

Titanium Mobileでファイル読み込みをしてみようと思う(けど、うまくいっていない)

 とてもありがたいリファレンスサイト(http://tidocs.com/mobile/1.6.0/)を眺めてみたところ、Titanium.Filesystem に、 getFile (path) というメソッドが存在し、pathを指定して実行すると、 Titanium.Filesystem.File がreturn される様子。
 そして、Titaniumu.Filesystem.Fileを参照してみたところ、 read() というメソッドがあり、名前から類推するに、ファイルの中身を読み出す処理っぽい。
 さらにreadメソッドの内容を調べてみたところ、Titanium.Blobとやらをreturn する事が判明。
 Blobはちょいと扱いにくそう。基本的に画像を扱うための形式と思われる(メソッドが imageAsThumbnail しかないため)。


 さて、ファイル出力するにはどうしたものやら。
 もしくは、そもそも画像以外のデータをファイル出力して管理する必要は無い、データの内容をfileで読み書きするような事はTitaniumの標準的なやり方と違うのかもしれない。
 とりあえず、sqliteなりにデータ入出力する方法を検索してみる。

Mac OS Xでgitをインストールしてみよう、と思ったら既に入っていた件

 最近、おうちコーディングを再開したので、バージョン管理も考えておこう、などと思い至った。
 最近の流行りはgitとからしいので(いや、最近とかじゃないし)、それをいれてみるか、と思ったのだが、ふと、そういえばXCode4をインストールした後、なんか画面でgitを使ってバージョン管理が云々と書いてあったな、などと思い出した。
 ためしに、コンソールで

git --version

 と入力してみたところ、 git version 1.7.3.4 と出てきた。
 どうやら既に入っているらしい。XCode4をインストールするだけでgitは入るということのようだ。


 ただ、個人的には問題が一つ残っている。
 分散バージョン管理、との事なのだけど、ちょいと使ってみた感じだとどのへんが分散バージョン管理なのかよくわからん。これは、ローカルのマシン1台だけで使うには意味のないツールなのだろうか?

Titanium MobileでTableViewの行クリックすると詳細画面へアニメーションしながら画面遷移させてみる。

// 最初に開かれる画面(TableView)
var win1 = Titanium.UI.createWindow({  
    title:'bookmark',
    backgroundColor:'#fff'
});

var rows = [
	{title:'apple',  hasChild:true, url:'http://www.apple.co.jp'},
	{title:'amazon', hasChild:true, url:'http://www.amazon.co.jp'},
	{title:'google', hasChild:true, url:'http://www.google.co.jp'}
];

var tblView = Titanium.UI.createTableView({
	data:rows
});

win1.add(tblView);




// ナビゲーショングループと、それを含むTopLevelのWindow
var rootWin = Titanium.UI.createWindow();
var navGrp  = Titanium.UI.iPhone.createNavigationGroup({
	// ナビゲーショングループの1枚目の画面を指定
	window:win1
});
// ナビゲーショングループをTopLevelのWindowに追加し、開く
rootWin.add(navGrp);
rootWin.open();



// 行クリック時の処理
tblView.addEventListener('click', function(e){
        var childWin = Titanium.UI.createWindow({
        	title:'webwindow',
        	backgroundColor:'#333'
        });
        
        var webv = Titanium.UI.createWebView({
        	url:e.rowData.url
        });
	
	childWin.add(webv);

	//クリックで子画面を開く
	navGrp.open(childWin, {animated:true});
});

 このように書くと、行をクリックしたとき、画面が横スライドして子画面が出てくる。
 子画面の元に戻るナビゲーションボタンとかも、特に設定しなくても表示されている。
 簡単!(Titanium.UI.iPhone.createNavigationGroup の iPhone の部分を記述し忘れて、小一時間悩んだのは秘密だ)

Titanium Mobileで、アニメーションしつつ画面を開く(と、いうつもりだが、うまくいっていない)

var childWin = Titanium.UI.createWindow({
	title:'webwindow',
	backgroundColor:'#333'
});

var webv = Titanium.UI.createWebView({
	url:'http://www.google.co.jp'
});

childWin.add(webv);

tblView.addEventListener('click', function(e){
	//クリックで子画面を開く
	childWin.open({animated:true});
});

 昨日の続き。
 上記のようにして、クリックで画面が横に動くような感じで子画面を開こうと試みた。
 が、結果はうまくいかず。
 子画面はひらくが、アニメーションしてくれない。


 ちょいと調べて、他にアニメーションさせる方法を見つけた。
 openの引数に、アニメーション方法を指定する、というもの。

tblView.addEventListener('click', function(e){
	//ページを上に開くような効果で子画面を開く
	childWin.open({
		transition:Titanium.UI.iPhone.AnimationStyle.CURL_UP
	});
});

 iOSに標準で付いている、メモの新規追加のような感じで画面が切り替わる。
 ただ、この方法は4種類しかなく、求めているものと違う感じ。

  • CURL_DOWN→ページが上から下に閉じてくるような感じ
  • CURL_UP→ページを上に開くような感じ
  • FLIP_FROM_LEFT→画面がくるっと反転。左から右へ
  • FLIP_FROM_RIGHT→画面がくるっと反転。右から左へ

 他に方法があるっぽい。
 今のところ、NavigationGroupを使うのではないかな、と推測。明日以降試す。

Titanium MobileでTableView。すごく簡単!

 3分クッキングもかくや、と思うほどの簡単っぷり。

// データ行の内容(表示文字,チェックON)
var rows = [
	{title:'Row 1', hasCheck:true},
	{title:'Row 2', hasCheck:true},
	{title:'Row 3', hasCheck:true}
];

// table viewの生成(行の表示内容を指定して)
var tblView = Titanium.UI.createTableView({
	data:rows
});

// イベント登録:クリックすると、チェック状態が変更される。
tblView.addEventListener('click', function(e){
	e.rowData.hasCheck = ! e.rowData.hasCheck;
});

 これだけ書けば(実際には、このTableViewをWindowにaddする必要もあるけど)、次のような画面が得られる。

 クリックすると、チェックのON/OFFが変わる。

 プロパティには、hasCheckの他に、色々プロパティがある。
 それは、 http://tidocs.com/mobile/1.6.0/ を参照すると色々書いてある。
 このサイトはすごくいい。むちゃくちゃ便利。
 この前でた、Titanium Mobile本を読んでざっくり概要を理解して、その後でこういうサイト見ながら進めていけば、かなり簡単に物が作れるような気がする。

光回線化失敗、その後

 NTTから電話があった。
 電話回線を通す配管を開けてもらうようオーナーに交渉してもらえませんか?との事だったが、私が所有者なんですが、と言ったら、ああそうですか、って事でその話しはそこで止まった。
 工事費は取られないとの事(まあ、工事自体は発生していないので、当然のような気がするけど。世の中には出張費、というものがあるようなので)。
 また今度よろしく、って事になった。


 さて。近々リフォームを考えている関係上(実際にできるかどうかは未定)、それより前に工事を行う、なんてのは論外と思う。
 ということは、リフォームが実際に進められるようお祈りするくらいしかすることがないのかも。
 WiMax2ならば!というのはさらに未来の話しだし。
 とりあえずは、現状維持で。