デフォルトのUWPアプリ用プロジェクトテンプレートはあまりにも貧弱だ。そこで、UWPアプリ開発に役立つ拡張機能やNuGetパッケージを探してみた。
Visual Studio(以下、VS)で「素の」UWP(Universal Windows Platform)アプリを開発しようという場合、アプリのひな型を作成するためのプロジェクトテンプレートには[空白のアプリ(ユニバーサル Windows)]しかない(Xamarinを使用してUWPアプリ「も」開発する場合には空のアプリか、マスター/詳細形式を選択可能ではある)。
VSが標準で提供しているテンプレートがこの1つだけ。高度なUWPアプリを作ろうとしたら、ほぼスクラッチの状態から全てを開発者が作り上げていく必要がある。これでは、UWPアプリ開発に取り掛かろうという気にはそうそうはならない。そこで、本稿ではUWPアプリ開発の大きな助けとなるツールやNuGetパッケージをGitHubで探してみた。
UWP Community Toolkitは、UWPアプリ開発に役立つヘルパー関数やカスタムコントロールなどをまとめたもの。NuGetパッケージとして提供されている。
どんな機能があるかは、サンプルアプリが提供されているので、これで確認できる。
このアプリを見ると分かるように、コントロール/アニメーションなど、多くの機能が提供されている。
UWP Community ToolkitはNuGetパッケージとして提供されている。VSでUWPアプリプロジェクトを開き、ソリューションエクスプローラーでプロジェクトを右クリックして、コンテキストメニューの[NuGet パッケージの管理]項目などからインストールする。機能ごとに個別のパッケージとして提供されているので必要なものを選択するようにしよう。このときには検索テキストに「Microsoft.Toolkit」などと入力する。
パッケージとしては以下のようなものがある(抜粋)。
いずれかのパッケージをインストールすれば、同時に依存関係があるパッケージもインストールされるはずだ。
例えば、空白のUWPアプリプロジェクトを作成して、そこにMicrosoft.Toolkit.Uwp.UI.Controlsパッケージをインストールし、Bladeコントロールを追加したものだ。一番左のブレードでタイルをクリックすると、右側に選択したブレードがそれぞれ表示される。
このパッケージを利用すれば、UWP向けに作成された多くのコントロールを利用できる。[空白のアプリ]プロジェクトテンプレートを利用するにしても、こうしたツールキットが提供してくれるさまざまな機能を使うことで、全てをスクラッチから作るという手間はかなり減るはずだ。
Template 10は、UWPアプリ用のプロジェクトテンプレートやコントロールなどを集めた拡張機能。VSの[ツール]メニューから[拡張機能と更新]からインストールできる(「Template 10」ではなく「Template」で検索するとよい)。インストール後には、[新しいプロジェクト]ダイアログに[Template 10]というカテゴリーが表示されるようになる。ここには3種類のプロジェクトテンプレートが表示される。
Template 10で追加されるテンプレートはおおよそ次のような機能を提供してくれる。
[Blank]プロジェクトテンプレートは、[空白のアプリ]プロジェクトテンプレートとほぼ同様だが、ソリューションエクスプローラーを見ると、Template 10がMVVMを意識したフォルダ構成となっているのが分かる。
実際、残る2つのプロジェクトテンプレートから作成したプロジェクトでは、ページ遷移を含むロジックの記述はビューモデルをメインに行われるようになっている(ドキュメントでは「MVVMを必要とはしないが、それを使用しないXAMLアプリとか想像が難しい」とも書いてある)。
[Minimal]テンプレートは、[Hamburger]テンプレートからハンバーガーメニューを取り除き、タイトルバー部分でページ遷移を行うようにしたもの。いわば実用的なXAMLアプリを作成する際の「最小限」の機能を備えたプロジェクトテンプレートといえる。
[Hamburger]テンプレートは、よくあるハンバーガーメニューを備えた、フルスペックのUWPアプリを作成するためのプロジェクトテンプレートということになるだろう。
Template 10にはこの他にも、XAMLベースのアプリを作成する上で必要となるコントロール、サービス、ビヘイビア、コンバーター、MVVMクラス、各種ユーティリティークラスなども含まれている。UWP Community Toolkitとは異なり、最初からハンバーガーボタンを持ったプロジェクトを作成するといったことも可能なので、普通のUWPに求められている要件を手早く満たしたいときにはうってつけだ。なお、Template 10の各種機能はNuGetパッケージとしても提供されているので、個別のプロジェクトでパッケージをインストールして、その機能を活用することも可能だ。
これからUWPアプリ開発に取り掛かろうという人にとっては、整理されたソースコードを手に入れて、それにあれこれと手を加えて試せるという意味で、よいサンプルにもなっている。
次にMicrosoftが提供する同様なプロジェクトテンプレートを見てみよう。
Copyright© Digital Advantage Corp. All Rights Reserved.