2年半の開発を経て、Backbone.jsのバージョン1.0がリリースされた。Backbone.jsは人気のあるModel/ViewのJavaScriptライブラリで、USA Today、Rdio、Airbnbを含む多くのWebアプリケーションで用いられている。
Backbone.jsはユーザーに3つのコアビルディングブロックを提供している。
- Modelは永続化可能なオブジェクトを表すために用いられる。Backbone.jsの同期機能を用いると、modelは自動的にリモートのデータソース(デフォルトではRESTfulなWebサービス)と同期する。同様に、modelのコレクションを管理したり、データソースと同期したりするための機能も提供されている。
- ViewはWebアプリケーションのUIを構築、維持するために用いられる。Viewはmodelが公開しているchangeイベントを待ち受けるようにする事ができ、modelを用いてUIを最新の状態に保つことが簡単にでき、またその逆を行うことも簡単にできる。
- RouterはBackbone.jsアプリケーション内でのナビゲーションを提供する。典型的なBackbone.jsアプリケーションは単一ページのインターフェースであるが、一般的にはブックマーク可能なURLを持つことが望まれており、画面遷移にブラウザの戻るボタンを用いることも望まれている。Backone.jsのrouterはHTML5の新しい履歴APIを用いてこの機能を提供しており、その履歴APIがサポートされていない場合はURLハッシュにフォールバックする。
Backbone.js 1.0は0.9系に比べていくつかの変更が加えられている。変更にはコレクションのより効率的なバルク更新の方法、エンコードされたURLセグメントの自動デコード、イベントエミッタに対する新しいlistenTo、stopListeningメソッドが含まれる。デフォルトでは、modelのバリデーションはmodelが保存されるまで延期される。逆に、以前のリリースではバリデーションはプロパティを設定すると即座に実行されていた。これらの変更はいずれも基盤を破壊するようなものではないので、0.9からのアップグレードはほとんど問題はないとされている。
ここまでは長い道のりであったが、1.0はBackbone.jsの歩む道の最終地点ではない。 アナウンスは新しいアイデアに対する明確な要求で締めくくられている。
Backboneの中心にある欠くことのできない前提は、JavaScriptを用いてWebアプリケーションを構築する際に便利な最小限のデータ構造(Modelとコレクション)やユーザーインターフェース(ViewやURL)プリミティブを追求していこうという事です。我々はそう言った類の機能を探し続けていますし、もしあなたがそれを見つけたならば、ぜひ我々に教えて下さい。全体的で、あなたにとって全てを決めてくれるフレームワークが一般的で、サイトのlook & feelやデフォルトの挙動を変更するために多くのライブラリを必要としているようなの現在のエコシステムにおいて、BackboneはWebアプリケーションのすべてのエクスペリエンスをデザインできる自由をあなたに与えるツールで居続けるべきなのです。
Backbone.js 1.0は単一のJavaScriptソースファイルとしてダウンロードする事ができる。最小化され、gzip圧縮されたバージョンは6.3KBである。Backbone.jsはViewやRouterのようなDOMに依存する機能を利用する際、jQueryやZepto同様に依存関係としてunderscore.jsを利用している。