backbone-boilerplateではじめるHTML5アプリケーション開発

JavascriptをベースにしたHTML5アプリケーションを初めて開発するとき、まず、アプリケーションの基盤をどのように構築すればよいか悩む人もいるのではないでしょうか。

かくいう私も悩みました。

プロジェクトの構成はどうするか、フレームワーク(MVCとか)、テストとか、ビルド、CIなど‥

 

もし、MVCフレームワークにBackbone.jsの利用を考えているなら、backbone-boilerplateを利用してみるのが良いと思います。

https://github.com/backbone-boilerplate/backbone-boilerplate

f:id:qualitas:20140521042907p:plain

これは、Backbone.jsを利用したアプリケーションテンプレートで、Backbone, Underscore(Lo-Dash), jQuery, RequireJS などのJavascriptフレームワークを組み込んだアプリケーションの雛形を提供してくれます。

さらに、gruntを利用したビルドや、Mocha + Chai, Jasmineのようなテストフレームワークを利用したテストも組み込まれています。

また、HTML5サイトを構築するためのテンプレートである html5-boilerplate をベースにしています。

 

2012/1月頃に登場したboilerplateですが、頻繁に更新されていて、Javascriptアプリケーション開発の最新のノウハウが入っていると思います。

 

セットアップ

利用するためには、node.jsが必要なので、あらかじめインストールします。

 

backbone-boilerplateのREADMEに記載のとおりに、コマンドを実施します。

 

1. githubからクローンするか、zipをダウンロードして展開

git clone --depth 1 https://github.com/backbone-boilerplate/backbone-boilerplate

 

【2014/7/14追記】

※2014/6/24 にbackbone-boilerplateがアップデートされました。

本記事執筆時のbackbone-boilerplateを取得する場合、以下のようにしてください。

git clone https://github.com/backbone-boilerplate/backbone-boilerplate

git checkout c698a5482b2ee7369d4972bfa3faed8f8709ea1b

 

2. フォルダ名を変更

mv backbone-boilerplate my-project

3. カレントディレクトリを移動

cd my-project

4. 以下のようにコマンド入力

npm install -g grunt-cli bower

npm install -g coveralls

npm install

bower install

 

利用方法

アプリケーションをローカルPC上で動作させるには、以下のように、gruntタスクを実行します。

grunt server

ブラウザで、http://127.0.0.1:8000/ にアクセスするとアプリが動作します。

ただ、デフォルトだと、以下のように、index.html内にコンテンツが無いので、画面には何も表示されませんが・・

<body>
  <!-- Application container. -->
  <main role="main" id="main"></main>
 
  <!-- Application source. -->
  <!-- build:[src] /source.min.js -->
  <script data-main="/app/main" src="/vendor/bower/requirejs/require.js"></script>
  <!-- /build -->
</body>

テストを実行する

以下のように実行します。

grunt karma:run

テストが実施され、test/coverageフォルダにカバレッジレポートが出力されます。

カバレッジレポートは、デフォルトでは、lcovの形式になっていて、以下のパスに、レポート参照用のindex.htmlが出力されます。

test/coverage/PhantomJS 1.9.7 (Windows 7)/lcov-report/index.html

 

JenkinsのようなCI環境でレポートをカバレッジレポートを表示したい場合は、coberturaの形式でカバレッジレポートを出力させることもできます。

Gruntfile.jsファイルの以下の箇所を、'lcov'から'cobertura'に変更します。

        coverageReporter: {
          type: "cobertura",
          dir: "test/coverage"
        },

以下のパスに、cobertura-coverage.xml が出力されます。

test/coverage/PhantomJS 1.9.7 (Windows 7)/cobertura-coverage.xml

 

backbone-boilerplateを利用することで、JavascriptベースのHTML5アプリケーションに慣れていない人でも、プロジェクト構成やフレームワーク、ビルドなどを、ひととおりおさえることができます。

 

ただ、このbackbone-boilerplateには、アプリケーションのサンプルソースが含まれていません。

このboilerplateを利用したサンプルアプリは、別途githubで公開されているため、そちらを参照する必要があります。

https://github.com/tbranyen/github-viewer

 

backbone-boilerplateについては、今後もブログを書いていきたいと思います。