10時代の新たなプラットフォーム「UWP」を使用したアプリ開発の基礎を解説する。Insider.NET連載目次PCだけでなく、さまざまなデバイスで動くUWPアプリ*1(次の画像)。10と同時に登場したこの新しいアプリ形式に興味をお持ちの読者はきっと多いことだろう。7.x/8.xのアプリを開発してきた経験があるのならば、UWPアプリも簡単である。Mobileエミュレーターで動作しているUWPアプリ(右)。この二つは同一のバイナリが動いているのである。この他にも動作するデバイスの種類は多い(後述)。そこで本稿では、Windowsフォーム開発者が遭遇するであろう大きなギャップに焦点を当てて、UWPアプリの開発方法を紹介していこう。samples」からダウンロードできる。この前編では、UWPアプリの特徴を紹介した後、UI作成の初歩を丁寧に説明していく。UWPアプリのUIはXAML(「ザムル」と読む)で記述する。WindowsフォームでUIを作る方法とはずいぶん違っているので、Windowsフォームと対比しつつできるだけ詳しく解説しよう。UWP!」〜UIはXAMLで後編では、Windowsフォーム開発者にとって大きなギャップとなるであろう課題を四つ選んで解説する予定だ。10のユニバーサルWindowsプラットフォーム用のアプリ。「アプリ」とはプログラムのこと。10のユニバーサルWindowsプラットフォームで動作するアプリに限定する。Westminster)は、本稿では除外する。10を搭載したスマートフォンなど)用のUWPアプリを開発するには、以下の開発環境が必要である。Mobileエミュレーターを使ってデバッグするにはハード/ソフトの条件が厳しくなる)。2015を使っている。Mobileエミュレーターの実行に必要だ。未対応でも、ソースコードのビルドと実機でのデバッグは可能である。対応PCかどうかを判定する方法」を参照。SLAT対応ハードウエアであっても、VM上ではエミュレーターが動作しないことがあるのでご注意願いたい。Mobileエミュレーターを使用しないのであれば、32bit版でもよい。10は「開発者モード」を有効にしておくこと(後述する)。2015のXAMLエディターがエラーになる。2015」と呼ばれるリリース(通称「TH1」)、またはそれ以降である。UWPアプリ開発におけるデバイスファミリーのバージョン指定としては「10.0.0.0」(Package.appxmanifestファイルのTargetDeviceFamily)である。Mobileエミュレーターを使用しないのであれば、Home版でもよい。本稿に掲載したコードを試すだけなら、無償のExpressエディションやCommunityエディションで構わない。APIのアプリ開発用)。2015(製品版)もマイクロソフトのページから無償で入手できる。Packの日本語版を追加インストールし、[オプション]ダイアログで言語を切り替える。10のページからダウンロードできる。10240」またはそれ以降である。複数のデバイスで動作するUWPアプリの最大の特徴は、一つのソースコードから作った実行ファイルが複数種のデバイスで動作することだ。デスクトップだけで動くWindowsフォームアプリとは最も異なるところだろう。10のエディションでUWPアプリは動作する(未発表のエディションは角かっこでくくった)。10]これら全てで動くアプリを一つのソースコードで作成できるのだ。加えて、CPUアーキテクチャが同じデバイスならば、全く同じバイナリが動作するのである*8。上記のデバイスのうちで、Windowsフォームアプリを含めた従来のデスクトップPC用アプリ(コンソールプログラムも含む)が動作するのは、PC/タブレット(大)だけである。Hubでも動くアプリを作りたいとなったら、選択肢はUWPアプリだけなのだ。タブレット(大)とタブレット(小)の境界は、画面サイズ8インチ前後とされている。厳密な区分けではないようだ。CPUアーキテクチャが異なれば、ソースコードは一つであってもワンバイナリにはならない。Native」の項を参照。CPU」でのビルドはできなくなっている。Basic)だけであったが、UWPアプリはそれらに加えてC++/CXやJavaScriptでも開発できる。Islandwood」)。本稿ではC#を使って解説していく。WindowsストアUWPアプリは、原則としてWindowsストアで配布する*9。Business」も予告されている。StudioのライセンスやUWPアプリをテストするためのライセンスの他に)Windowsストアの開発者アカウントが必要である。Windowsストアで配布するメリットは、次の通りだ。あなたが作ったWindowsフォームアプリを全世界の人々に届けようとしたらどれほどの苦労をすることになるかを想像してみてほしい。有料のアプリ、あるいは、アプリ内でのアイテムの課金は、Windowsストアが管理してくれる(手数料は3〜2割)。組織内で展開する方法として「サイドローディング」(「エンタープライズサイドローディング」ともいう)もある。テストするために開発者ライセンスでサイドローディングすることもできる(「開発者サイドローディング」ともいう)。開発者サイドローディングはライセンスが30日に制限されており、それを過ぎるとアプリは起動しなくなる。アプリをパッケージ化する」を参照。Mobileから数えると、ほぼ6年の実績がある。Mobileではマイクロソフトのストア以外からダウンロードしたアプリに金銭被害を及ぼすマルウエアが仕込まれていたこともあった)。マルウエアとフェイクアプリ(偽物)は別のものである。フェイクアプリ対策にはマイクロソフトも苦労しているようである。Windowsが「腐らない」Windowsフォームに限らず従来のデスクトップPC用のアプリは、複雑なものになってくるとインストール時にシステムDLLを置き換えたり、レジストリにたくさんのデータを書き込んだりする。そのようなアプリを多数インストールすると、レジストリの肥大化によるレスポンス低下や、DLLの不整合による動作異常を引き起こしてしまう。これを「Windowsが腐る」と表現することがある。UWPアプリでは、配布するDLLはアプリごとに全て実行ファイルと同じフォルダーに格納される。インストール時/実行時にレジストリへデータを書き込むこともできない。そのため「Windowsが腐る」心配をしなくてよいのである。この性質は業務システムにも有用なものだと筆者は考えている。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。