40歳からのキャリアチェンジ

20代はエンジニア・PM、30代はWeb系エンジニア向けのキャリアアドバイザー。40代の今はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連あたり

036-次のxxx件を読み込む機能について考察

RSSリーダーのようなアプリの場合、起動時に数件読み込み、ボタンクリック等のイベントをトリガーにして次のxx件を読み込むというのはよくある処理だと思うのでこれについて考察してみました

そもそもaddEventListenerはどこに仕込むのか

自分は最初この部分でつまづきました。

var tableView = Ti.UI.createTableView({
  data:data
});
var row = Ti.UI.createTableViewRow({
  hasChild:true,
  data:entry,
  height:80
});
var title = Ti.UI.createLabel(styles["titleLabel"]);
title.text = entry.title,
row.add(title);

みたいな感じで、TableViewと中身のTableViewRowを準備。

次のボタンを読み込むために、上記のコードの後に

var next_row = Ti.UI.createTableViewRow({});
next_row.addEventListener('click', function(e){
});

というのを付け加えて処理すればいいのかなと思って悩んでいました。

TableViewのappendRowメソッドを活用

色々悩んでいた中で、ちょうどWEB+DB PRESS Vol.61が発売されて、Titaniumの特集だったので一通りチェックする中で、どの章だったのか記憶は曖昧ですが、appendRowメソッドがふと目に止まりました。

そこでTitaniumの開発で欠かせない情報源の1つのKicthenSinkのソースで、grep append *.jsという感じで関連しそうなコードを検索した所、table_view_row_append.jsの49行目あたりを中心によむことでappendRowの使い方がわかりました。

あともう少しで解決しそうなのですが、Titanium側とサーバ側のSinatraのコードとそれぞれ見直さないといけず、そのあたり実際に手を動かしてみないと理解出来ないので、続きはまた明日にでも書きます