読者です 読者をやめる 読者になる 読者になる

TitaniumMobile勉強記

Web系エンジニア向けのキャリアアドバイザーやってましたが現在はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連(Node.js、Titanium)あたり

022-ブロガー選択→記事一覧表示UI

昨日の朝は、大学の友達の依頼で、人と会っていたので、ほとんどコード書けなかった。

*会う直前に、相手の所属の会社がわかって、事前の予想とおり保険の勧誘だったので、自分が現在加入している保険契約の内容、うちの奥さんが以前、保険関連の事務業務していたことなどをサラッと話したらすぐ話しが片付いたけど

以前書いたコードの一部をこんな感じに書き換えました。

  _row.addEventListener('click',function(e){
     var blogger_id = e.rowData.blogger_id;
     var datapath = e.rowData.data[blogger_id].data;
     if(datapath){
       //該当ブロガーのエントリ一覧のファイルを生成する処理
       Titanium.include(datapath);
     }

  });

Titanium.include(datapath)のところで、エントリ一覧情報を生成するファイルを読み込んでそちらに処理を任せるイメージにしてみました。

とりあえず意図した画面は出るけど、色々課題が・・

var data = [
  {
    entry_url:'http://blog.pasonatech.co.jp/yokota/15282.html',
    entry_title:'なぜ「地域情報サイト」は日本で流行らないのか?',
    entry_body:'「ヒットするWebサービスは何か?」「今年流行るそうなWebサービスは何か?」といった質問をうける事があります。このような質問に正確に答えるのは難しいですが、ヒントはあります。それは、米国で流行っているサービスを出すことです。'
  },
  {
    entry_url:'http://blog.pasonatech.co.jp/yokota/101/15207.html',
    entry_title:'電話機は放送機材と融合するのか?〜SkypeQik買収のニュースを見て考えた〜',
    entry_body:'少し前のニュースになりますが、Skype社が「Qik」を買収したとのニュースが流れました。'
  },
  {
    entry_url:'http://blog.pasonatech.co.jp/yokota/101/15183.html',
    entry_title:'Facebookが次に何をするかは、Googleを見ていればわかる気がする',
    entry_body:'「Facebookが次に何をするか?」これだけFacebookが話題になると、Facebookが次に何をするのか関心を持つ方も多くなってくると思います。私は彼らが何をするかについては、Googleが何をしてきたかを見れば、ある程度予想できるのでは無いかと思います。'
  },
  {
    entry_url:'http://blog.pasonatech.co.jp/yokota/199/15160.html',
    entry_title:'WordPressのバージョンアップのために「さくらのレンタルサーバ」のMySQLを4系から5系にアップグレードしました',
    entry_body:'自分のブログにはWordPressを利用していますが、ここ最近、WordPressのバージョンアップができ無い状態が続いていました。理由はWordPressの最新版ではMySQLが一定以上のバージョンでは無いとインストールができないからです'
  },
  {
    entry_url:'http://blog.pasonatech.co.jp/yokota/101/15156.html',
    entry_title:'今年のネット業界を予想する 〜新年の挨拶にかえて〜',
    entry_body:'明けましておめでとうございます。本年もどうぞよろしくお願いいたします。今回は新年のご挨拶にかえて、今年のネット業界を予想してみたいと思います。'
  }

];

/*
 以下のUI生成は使い回ししたいので、リファクタリング必須
 こんな感じ?
 var view = new EntryTableView(data);
 */


var win = Titanium.UI.createWindow({

});


var row = [];
for(var i=0; i<5;i++){
  var _row = Titanium.UI.createTableViewRow({
    selectedBackgroundColor :'#fff',
    height  : 60,
    hasDetail : true
    });
  //メインタイトル
  var entry_title = Ti.UI.createLabel({
    color:'#576996',
    font:{fontSize:16,fontWeight:'bold', fontFamily:'Arial'},
    top:2,
    left:10,
    height:30,
    width:250,
    text:data[i].entry_title
  });
  _row.add(entry_title);
  //本文
  var entry_body = Ti.UI.createLabel({
    color:'#222222',
    font:{fontSize:10,fontWeight:'normal'},
    left:30,
    top:27,
    height:30,
    width:220,
    text:data[i].entry_body
  });
  _row.add(entry_body);
  row.push(_row);
} //end loop
var tableview =Ti.UI.createTableView({
  data:row
});

win.add(tableview);
Titanium.UI.currentTab.open(win,{animated:true});