Windows Phone 8は、Windows 8と一部のAPIが共通なので、 Windows Phone SDKが公開される前から期待してた機能がありました。 しかし、公開されたAPIリファレンスを見て、 その期待があっという間に崩れ去った…それは、ローミング機能。
Windows 8ストアアプリでは、複数のPC・スレート間でアプリケーションの情報を共有して、 状態を同期させることができます。これはローミング機能と呼ばれて、 例えば、デスクトップPCで読みかけの電子書籍を、外に持ち出したスレートPCで続きを読むってことができる訳です。
このWindows 8ストアアプリのローミング機能は、
:::C#
Windows.Storage.ApplicationData.Current.RoamingSettings.Values[“LastPage”] = 10;
のようにWindows.Storage.ApplicationDataクラスを経由して、 ローミングしたい設定値を登録することで自動的に実行されます。
それで、Windows Phone 8 SDKが公開されて、このApplicationDataクラスが存在するか調べたら…
ApplicationData.RoamingSettings | roamingSettings property (Windows)
おおっ!サポートされている電話機にWindows Phone 8があるではないか!
ところが、本文をよく読むと、Remarksのところに一言こんな記述が。
「Windows Phone 8:APIは実装されていません。呼ばれたら例外を投げます」
… orz
サポートされてる電話機だけど、実装してないってのはないですよね…
結局、Windows Phone 8ではローミング機能は使えないと判ったのですが、 冷静に考えるとWindowsストアアプリとWindows Phoneアプリは別物で 相互にローミングできる訳ではないですし、複数のWindows Phone端末を 持っていてその間でローミングしたいって需要はそう大きくないので、 実装されていなくてもおかしくはないのかもしれません。
アプリをWindowsストアアプリとWindows Phoneアプリの両方にリリースして、 相互にアプリケーションの状態を同期させたい需要はあると思いますが、 現時点ではSkyDriveを経由して自前で同期させるしかなさそうです。