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を経由して自前で同期させるしかなさそうです。