新しいAPI
Windows 8.1はスタートボタンの追加や、起動時にスタート画面をスキップしてデスクトップ画面を表示するといったデスクトップユーザー向けの変更が注目されていますが、ストアアプリも機能が拡充されています。
XAMLツリーのBitmap変換
RenderTargetBitmapクラスを利用することで、UIElementを簡単にBitmap画像に変換できます。
お絵かきアプリなどで、キャンバスに描かれた線を画像にして保存するといった機能を簡単に実現できるようになります。
これは8.0では簡単に実現できませんが、要望の多かった機能の一つでした。
RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap(); // RenderAsyncにUIControlを渡す await renderTargetBitmap.RenderAsync(canvas, (int)canvas.Width, (int)canvas.Height); // 描画はImageコントロールのSourceプロパティに渡すだけ renderImage.Source = renderTargetBitmap;
読み上げ機能
テキストを読み上げることも可能になりました。これはアクセシビリティの向上に貢献する機能です。
以下は、読み上げ機能で利用するSpeechSynthesisのサンプルコードです。
MediaElement mediaElement = this.media; var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer(); // textは読み上げる文字列 Windows.Media.SpeechSynthesis.SpeechSynthesisStream stream = await synth.SynthesizeTextToStreamAsync(text); mediaElement.SetSource(stream, stream.ContentType); mediaElement.Play();
画面の変更
8.1 Previewで画面に表示されるストアアプリの数は、画面解像度に合わせて最大4つまで表示可能になると書きました。
このことによって、8.0では判別のつきやすかったメインのストアアプリが見つけづらくなりました。
8.0では上の画像のように最大2つのストアアプリが表示され、幅の狭いスナップと、その残り幅でフィルという状態で表示され、フィル=幅の広い側がチャームからの呼び出し対象となるメインのストアアプリでした。
しかし8.1 Previewでは、同じ幅でストアアプリが表示可能であるため、一見検索チャームや共有チャームの対象がどのストアアプリになるか判別が難しい状態です。
チャームから検索を呼び出すと、現在表示されている複数のストアアプリから検索チャームに対応したものを選択する一覧が表示されます。ただし共有の場合は、メインのストアアプリに対しての共有が行われます。
正式版の8.1でも同様の動作になる場合、ストアアプリに検索フォームを持たせるなど、変更に合わせた修正が必要になりそうです。
ただちに8.0のストアアプリが動作しなくなるわけではない
それでは8.0対応のストアアプリは8.1 Preview上では動作しないのかというと、ちゃんと動作します。ただし、複数のストアアプリが並んだ状態では8.0対応のストアアプリはチャームの状態として横幅320ピクセルで表示されます。320ピクセル以上の幅がある場合は、左右に余白が生まれてしまいます。
まとめ
Windows 8.1 Previewは、ストアアプリ開発シーンから見ると、新しいAPIやデバイスへの接続など、これまでにできなかったことができるようになる可能性を示唆しています。これは開発者として非常に喜ばしいことです。ただしそれと共に、同時表示可能ストアアプリの増加と、それに伴うチャームの扱いの変更など、ストアアプリのお作法にも変更が加わることが予想されます。
今後の8.1の正式版を踏まえた上で、ストアアプリ開発を行うならこのような追加と変更を念頭に置いておくと良いでしょう。



