Windows8からアプリケーションの種類に、従来からあるアプリの「デスクトップアプリ」の他に、「Windowsストアアプリ」(旧Metroスタイルアプリ)が増えました。
しかし、必ずしも全てのアプリをWindowsストアアプリで開発する必要はなく、今後もアプリの内容に応じてデスクトップアプリとWindowsストアアプリを使い分けるべきとMicrosoftは言っています。
何を基準に使い分けるのか、その説明が非常に分かりにくいため、整理してみました。
【開発者の観点から見た使い分けの基準】
- Windowsストアアプリ
- ストアでのアプリ配布を行える ※デスクトップアプリもストアで紹介のみは可能
- マネタイズができる ※アプリの有償販売、課金、アプリ内広告配信が可能
- カメラやGPSなど、デバイスの機能を簡単に利用したい
- スワイプやピンチズーム等、タッチ操作を生かしたアプリを楽に開発したい
- WindowsRT(ARM版Windows)にも対応したい
- HTML/CSS/JavaScriptを使って開発したい
- デスクトップアプリ
- 既存の資産を生かしたい。
- 既存のロジックやライブラリ(有償、無償)をそのまま利用したい。
- WinフォームやWPFを使って開発した既存アプリを作り直したくない。
- スキャナなどのWinRTでは対応していない周辺機器を扱いたい。
- Windows7などにも対応したい。
【注意事項】
- そもそも、Windowsストアアプリやデスクトップアプリで開発せず、Webアプリケーションとして実装することも選択肢の一つ。
- Windowsストアアプリ(WinRT)は、iOSアプリによく似ている。
- セキュリティの観点から、アプリにできる機能が大幅に制限されている。
- 直接アプリ間で通信したりデータを受け渡すことができない。
- アプリ間の連携は検索やシェア等のOSの機能を経由して行う。
- ストア公開は審査が必要。ストアに公開せずにアプリを配布することはできない。
- Windowsストアアプリの場合、アプリの配布が大変。
- ストアに公開する場合、アカウント登録(有償)や審査が必要。
- ストアに公開せずにアプリを配布する方法は、企業向けの方法しかない。
- ストアを介さずに個人を対象にしたアプリを配ることができない。
- 企業向けには、サイドローディングという方法があるが、これがまた非常に分かりづらい。また、追加ライセンスの購入等、追加出費が必要。
- アプリはユーザー単位にインストールする必要がある。
- (従来の)デスクトップアプリでは、一人のユーザーがセットアップすれば他のユーザーも使うことができる。
- Windowsストアアプリの場合は、1台のPCを複数人のユーザーで共有している場合、ユーザーごとにインストール作業が必要になる。
- キオスク端末のような、不特定多数が触る端末ではWindowsストアアプリは向かない。チャームやアプリバーの制御ができない(無効化できない)ため。
Windowsストアアプリの場合、注意事項が多くて大変です。
ストアに公開したい、とか、タッチ操作に最適化したい、というような明確な目的が無い限り、デスクトップアプリやWebアプリとして実装した方が無難と思います。
OSはWindows8だけではない訳ですから。