特集
» 2014年11月07日 16時43分 公開

特集:ノンコーディングでユニバーサルWindowsアプリを作ろう:無償のオンライン型開発環境「Windows App Studio」入門 (5/5)

[山本康彦,BluewaterSoft/Microsoft MVP for Windows Platform Development]
前のページへ 1|2|3|4|5       

ソースコードを活用する

 ここからは、Windows 8.1とVisual Studio 2013を使う。

 アプリのパッケージを生成したときに、ソースコードもダウンロードできるようになっている。ダウンロードしたzipファイルの中身を適当なフォルダーに展開し、その中のソリューションファイル(「AppStudio.sln」というファイル名になるようだ)をVisual Studio 2013で開いてみよう(次の画像)。

自動生成されたソースコードをVisual Studioで開いたところ(全体)
自動生成されたソースコードをVisual Studioで開いたところ(ソリューションエクスプローラーを拡大) 自動生成されたソースコードをVisual Studioで開いたところ(上:全体、下:ソリューションエクスプローラーを拡大)
ここでは、無償のVisual Studio Express 2013 for Windowsを使っている。
ソリューションの構成は、ユニバーサルプロジェクト(Windows専用部分のプロジェクト/Phone専用部分のプロジェクト/共有プロジェクトの3つからなる)と、バイナリだけが提供されている「Lib」プロジェクト、それとPCL(移植可能なクラスライブラリ)のプロジェクトとなっている。

 このソースコードをベースとして、独自のアプリを作り込んでいってもよい。筆者の感覚としては、ある程度できた後はVisual Studioで作業した方が早そうだと感じた。

 また、このソースコードはとても参考になるので、いろいろと見てほしい。

【ソースコードの見どころ】

  • コードの分離: XAMLファイルはWindowsとPhoneのそれぞれのプロジェクトに、ViewModelは共有プロジェクトに
  • 多彩なコマンド: ViewModelの分離に使うためのコマンドがいくつか用意されている
  • 多彩なコンバーター: データバインドに使うためのコンバーターがいくつか用意されている
  • Html2Xamlコントロール: 共有プロジェクトの「Controls\Html2Xaml」フォルダー。HTMLをXAMLに変換して表示するための機能が入っている(どんなHTMLでも表示できるわけではない)
  • NuGetの利用: NuGetのライブラリをいくつか利用している(今回確認できたのは「HtmlAgilityPack」/「Newtonsoft.Json」/「PCLStorage」の3種類)

 ところで、これほど素晴らしいWindows App Studioなのだが、1つ困ったことがある。Phoneで「中華フォント問題」*10が起きるのだ(次の画像)。

Phoneでは中国語のフォントで表示されてしまう(画面の一部を拡大) Phoneでは中国語のフォントで表示されてしまう(画面の一部を拡大)
赤丸を付けた文字を見ると、日本語の字体とは違うことがよく分かる(例えば「新」の左下の「木」「着」の上中央の縦線など)。
この問題は、システムがCJKフォントを選択する際のデフォルトの挙動に起因する。俗に「中華フォント問題」などと呼ばれる。

 この問題は、現在のところWindows App Studio上では回避できない。Visual Studioを使って、以下のように対策コードを追加する。

protected override void OnLaunched(LaunchActivatedEventArgs e)
{
  ……省略……

  if (RootFrame == null)
  {
    ……省略……
    RootFrame = new Frame();

    // CJKフォント対策
    RootFrame.Language = "ja";

    ……省略……

CJKフォント対策のコード(C#)
共有プロジェクトの「App.xaml.cs」ファイルで、太字の部分を追加した*11
Frameコントロールを生成した後で、そのLanguageプロパティに適切な言語を指定すればよいのだ。

 これで、次の画像のように、きちんと日本語のフォントで表示されるようになる。

CJKフォント対策を行った表示(画面の一部を拡大) CJKフォント対策を行った表示(画面の一部を拡大)
前の画像と見比べてみてほしい。赤丸を付けた以外にも異なる字体がある。

*10 ストアアプリがCJK(中国語/日本語/韓国語)に共通する文字の表示を要求した際に、システムがデフォルトで選択するフォントが(エンドユーザーの言語設定などによらず)決め打ちになっているために生じる問題。デフォルトで選択されるフォントがPhoneでは中国語のものであるため、日本で「中華フォント問題」となる。Windowsでは、日本語のフォントがデフォルトで選択されるため日本では問題にならないが、中国で「日本語フォント問題」となっているはずである。これを回避するには、ここで示したようにコントロールのLanguageプロパティを設定するか、明示的にフォント名を指定する。

*11 日本語のアプリなので、「"ja"」とリテラルで決め打ちしている。多言語化対応したときなど、決め打ちできないときには、「WinRT/Metro TIPS:エンドユーザーの言語設定を取得するには?[ユニバーサルWindowsアプリ開発]」を参考にしてどうするか考えてほしい。


まとめ

 Windows App Studioを使えば、情報提供型のユニバーサルWindowsアプリを簡単に作れる。完成したアプリは、ストアで公開できるし、インストールがちょっと手間だがサイドローディングで仲間内に配布することもできる*12

 Webブラウザーだけで簡単に制作できるので、ぜひ挑戦してみてほしい。自分が興味を持っている情報を集めたアプリが、あっという間に完成するのだ。また、すでにユニバーサルWindowsアプリを手掛けている人も、Windows App Studioが生成するソースコードをぜひ活用してほしい。

 Windows App Studioの使い方については、「方法」のページの他に、Microsoft Virtual Academyの動画コンテンツ「ノンプログラマーのためのアプリ開発入門 - Windows App Studio 編」も参考になる。

*12 サイドローディングしたアプリは、永久に使えるわけではないので注意してほしい。Windows App Studioから提供されたデジタル署名の有効期限が切れると、起動しなくなる。そのときは、[Generate]し直したパッケージを再度インストールすればよいはずだ。今回筆者が調べたところでは、Windowsのサイドローディング用に提供されたデジタル署名の有効期限は2014年6月1日から2015年7月4日までとなっていた。


「特集:ノンコーディングでユニバーサルWindowsアプリを作ろう」のインデックス

特集:ノンコーディングでユニバーサルWindowsアプリを作ろう

前のページへ 1|2|3|4|5       

Copyright© 1999-2018 Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。