アプリケーションプラットフォームの影響

Windows Phone 7 ではアプリケーションプラットフォームとして、Silverlight と XNA が採用された。この決断には大きなデメリットも存在している。

  • Windows Mobile の資産が生かせない
  • ハイクオリティのゲームを作るのに Win32が使えない

アプリケーションでもWin32が使えないから、というデメリットもありますがゲームの世界は特に影響が大きいでしょう。どちらかというとハイクオリティのゲームが比較的簡単に作れるのがXNAのメリットであり、ゲーム会社はそれぞれがXNAにあたるようなフレームワークを独自に構築しているわけです。

XNAとSilverlightのメリット

当然メリットがあっての選択。

  • Expression Blendを使ったUIデザイン環境
  • Visual Studio 2010 + C# でもたらされる最高の開発生産性
  • フレームワークによるセキュリティ

言葉で書くとなんか「これだけ?」と思ってしまいますが、まぁなれれば開発者としてどんどん退化していくことが不安になるくらい、至れり尽くせりの開発環境です。とくに Photoshop や Illustrator を Ver.2 のころから使っていた身としては、Expression Blend を触って 「とうとう開発ツールも開発言語もここまで来たか」と感動しています。

Illustrator でいくら頑張ってきれいに作っても ビットマップにしかならないって悲しいんだよね。せっかくパーツごとに、レイヤーわけしても納品はパーツごとのpng画像。なんかいろいろ失われている焦燥感。これを味わったことがある人は、Expression Blend で PSDファイルや Ai ファイルを読み込んでみて!といいたい。(まぁあまりにも細かくレイヤーわけしていると今度は面倒なことになりますが)

真の狙いは将来にあるのか?

もし、ネイティブアプリケーションを良しとしてMarketplaceにアプリケーションが集まったとします。今はいいでしょう。しかしアプリケーションプラットフォームを大きく変えるときに、また新しいハードウェアが今後出てきたときに、ネイティブアプリケーション資産はほぼ生かせなくなります。この時に Silverlgitht なり、XNAであれば、新しい環境になってもランタイムなりフレームワークがリリースされることにで、互換性を保つことができます。現にXNAの環境はより高いレベルでデバイス間の相違を埋めています。

これからMarketplace にアプリが集まることを想定したら今後を見据えてネイティブアプリをサポートしないことは重要です。

ならば Compact Framework の互換性を生かしておくべきだったのでは?という意見もあります。これは議論にも上がったのだと思いますが、おそらく「互換性を維持することのメリットよりもデメリットのほうが大きい」というのが本音だと思います。そもそもハードウェアも、入力装置などの仕様も異なるペン時代のUIのアプリケーションを残すメリットはあまりないと判断したのではないでしょうか。必要なものがあれば作るでしょうしね。

待たれるのが拡張

しかし、Silverlightはまだまだできることが少ない。Silverlightに許されたシステムリソースの利用範囲は非常に狭い反に限られています。セキュリティ上致し方ないのですが、これからこの制限を一つ一つ広げていくことが大事です。たとえば、スケジュール情報へのアクセス、アプリケーション間での連携、入力情報のリアルタイムな処理など。OSの持つ機能をラップしたライブラリの登場を心待ちにしています。