CommonJS準拠に書き直してみよう
前回エントリでCommonJSについて少し知ることが出来ました。それまで書いていたコードをCommonJSに従って書き変えることにしました。具体的にはexportsで関数を作成して、requireで読み込むことをします。
・前回エントリ
TitaniumでCommonJS仕様に乗っ取って、ファイルをincludeする - not good but great
書き直すコードは以前から作っていた競馬ニュースのフィードを読み込むアプリになります。
TitaniumのYQLで複数フィード読み込み、Backボタンの文字色を変える - not good but great
Window作成を書き直してみる
win.js
exports.setWindow = function(name){ //タイトルのラベル var titleLabel = Ti.UI.createLabel({ text:name, color:"#FFF6EE", font:{ fontSize:20, fontWeight:"bold" } }); var win = Ti.UI.createWindow({ backgroundColor:"#F2E9E1", titleControl:titleLabel }); //バーの色 win.barColor = "#8C837B"; return win; };
タブメニューで切り替えるところに使うwindowに共通の部分が多くありました。違うのはタイトルくらいだったので、タイトルを引数にして、関数をつくりました。
app.js
//モジュールを読み込む var win = require("win"); //window作成 var win1 = win.setWindow("競馬ニュース"), win2 = win.setWindow("2ch まとめ");
引数にwindowオブジェクトを指定しているので、以降のコードを書き直す必要がありませんでした。app.jsがかなりスッキリして、見やすくなったと思います。
感想とか
この記事のタイトルはどう書けばよいのか迷いました。「exportsに関数をセットする」という言い回しは聞いたことがありましたが、実際何をやっているのかよくわかりませんでした。だから「関数として設定する」という言い方にしました。「exportsオブジェクトのプロパティに関数を設定する」とも言えるのでしょうか。もう少しそのあたりの勉強が必要みたいです。