WindowsのJavaScriptライブラリ (WinJS)は,JavaScript開発者にWindows Storeアプリを効率よく開発する手段を提供すべく,Windows 8と同時にデビューを果たしている。そのバージョン2.0が,Windows 8.1ローンチに含まれる予定だ。機能の拡張に加えて,大幅なパフォーマンス向上も図られている今回のリリースは,すべてのユーザ,とりわけARMあるいはAtomベースのCPUを搭載するデバイスのユーザにとってメリットのあるものだ。
Paul Gusmorino氏のBuildでのプレゼンテーション “What’s New in WinJS?” では,WinJS 2.0で予定されている変更の範囲に関して,詳細な説明がなされている。Gusmorino氏は多数のWin 8.1アプリケーションの中から,StoreやMusic,Skypeなど,2.0にスイッチしたものをいくつかリストアップした。
WinJS 2.0の設計目標に挙げられているユーザインターフェースパターンの追加とスピードの改善は,開発者とユーザのいずれにも恩恵を与えるものになるだろう。例えば2.0のListViewコントロールは,WinJS 1.0のものより約30%高速化されている (Microsoft Surfaceでの測定)。Gusmorino氏のデモでは,コントロールの速度向上を示すためにWindows Mailアプリが使用されていたが,目に見えて高速化されていた。
WinJS 2.0 一覧
改良されたコントロール
- List view
- App bar
インフラストラクチャ
- Scheduler
- Dispose model
- Async debugging
新しいコントロール
- Hub
- Navigation bar
- Search box
- Back button
ビルディングブロック
- Binding template
- Repeater
- Item Container
タッチ指向のOSにとっては興味深いことだが,List viewやApp barなどのコントロールではキーボードサポートが改良されている。List viewにはVertical GridとGrouped List Layoutのサポートが追加される予定だ。これによってユーザインターフェース構築時の柔軟性が向上する。
コントロールだけではなく,ライブラリの内部も同様に改良を受けている。コントロールクリーンアップにより,dispose()メソッドの使用が容易になった。コントロールの削除と同時に,コントロールへの未解決な参照もすべて削除されるため,ガベージコレクションが正しく機能するようになる。dispose()メソッドは階層的なので,子オブジェクトを所持している親オブジェクトも,1回のdispose()コールで削除することができる。コールスタックの情報量が増え,非同期メソッドがコールされるまでの実行ステップが,より包括的にリストアップされることで,非同期処理のデバッグもこれまでより容易になるはずだ。
新規あるいは更新されたコントロールに関するより詳しい情報は,WinJS 2.0プレビューの資料 を参照してほしい。