便利なコンポーネントが含まれているCoding4Fun ToolkitをユニバーサルWindowsアプリで導入/利用するまでの方法を解説する。
powered by Insider.NET
Windowsランタイムアプリを開発するときに、標準以外のコントロールを探したいことがあるだろう。そんなときにチェックしたい一つが、無償の「Coding4Fun Toolkit」だ。本稿では、その概要とプロジェクトへの導入方法を解説する。なお、本稿のサンプルは「Windows Store app samples:MetroTips #100」からダウンロードできる。
ユニバーサルプロジェクトを使ってユニバーサルWindowsアプリを開発するには、以下の開発環境が必要である。本稿では、無償のVisual Studio Community 2013 with Update 4を使っている。
*1 SLAT対応ハードウェアは、Windows Phone 8.1エミュレーターの実行に必要だ。ただし未対応でも、ソースコードのビルドと実機でのデバッグは可能だ。SLAT対応のチェック方法はMSDNブログの「Windows Phone SDK 8.0 ダウンロードポイント と Second Level Address Translation (SLAT) 対応PCかどうかを判定する方法」を参照。なお、SLAT対応ハードウェアであっても、VM上ではエミュレーターが動作しないことがあるのでご注意願いたい。
*2 事前には「Windows 8.1 Update 1」と呼ばれていたアップデート。スタート画面の右上に検索ボタンが(環境によっては電源ボタンも)表示されるようになるので、適用済みかどうかは簡単に見分けられる。ちなみに公式呼称は「the Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2 update that is dated April, 2014」というようである。
*3 Windows Phone 8.1エミュレーターを使用しないのであれば、32bit版のWindows 8.1でもよい。
*4 マイクロソフトのダウンロードページから誰でも入手できる(このURLはUpdate 4のもの)。
*5 本稿に掲載したコードを試すだけなら、無償のExpressエディションやCommunityエディションで構わない。Visual Studio Express 2013 with Update 4 for Windows(製品版)はマイクロソフトのページから無償で入手できる。Expressエディションはターゲットプラットフォームごとに製品が分かれていて紛らわしいが、Windowsランタイムアプリの開発には「for Windows」を使う(「for Windows Desktop」はデスクトップで動作するアプリ用)。また、2014年11月12日(米国時間)に新しくリリースされたVisual Studio Community 2013 with Update 4(製品版)もマイクロソフトのページから無償で入手できる。Communityエディションは本稿執筆時点では英語版だけなので、同じ場所にあるVisual Studio 2013 Language Packの日本語版を追加インストールし、オプションダイアログで言語を切り替える必要がある。
本稿では、紛らわしくない限り次の略称を用いる。
Visual Studio 2013 Update 2(Update 3/4も)では、残念なことにVB用のユニバーサルプロジェクトのテンプレートは含まれていない*6。そのため、本稿で紹介するコードはC#のユニバーサルプロジェクトだけとさせていただく。なお、VBのプロジェクトでもCoding4Fun Toolkitは利用できる(PCLは除く)。
*6 VB用のユニバーサルプロジェクトは、今年にリリースされるといわれているVisual Studio 2015(開発コード「Visual Studio 14」)からの提供となるようだ。「Visual Studio UserVoice」(英語)のリクエストに対する、2014年6月18日付けの「Visual Studio team (Product Team, Microsoft)」からの回答による。
Coding4Funは2005年にMSDNの1コーナーとしてスタートし、コーディングの楽しさを伝える記事を掲載していた(次の画像)。
やがて、記事だけでなくビデオ配信や各種プロジェクトへと活動の幅を広げるとともに、その場を「Channel 9」に移行した(次の画像)。
そのプロジェクトの一つに「Coding4Fun Windows Phone Toolkit」があって、Windows Phone用の各種コントロールを開発し公開してきた。現在では、Windowsランタイムアプリ用に拡張し、名称も「Coding4Fun Toolkit」と改め、GitHubを公開の場としている。
Coding4Fun Toolkitは、ソースコードがGitHubで公開されている(上述)。パッケージはNuGetから導入する(後述する)。本稿執筆時点での最新バージョンは2.1.0であり、Windowsランタイムアプリで利用できる(Windows Phone 7.x/8.xのSilverlightアプリへの対応は2.0.9で終了)。
Coding4Fun Toolkitには、次のようなコントロールが含まれている(後述するPhone用サンプルアプリのWebページより引用)。
Coding4Fun Toolkitには、これらのコントロールの他にも、データバインドに使用する各種コンバーターや、数値型に対する拡張メソッド(例えばDouble型のAlmostEqualsメソッド)など、有用なコンポーネントが含まれている。
Coding4Fun Toolkitに含まれている主なコントロールについてはサンプルアプリがストアで公開されており、コードを書く前に試せる(次の画像)。
NuGetからCoding4Fun Toolkitのパッケージを導入する。ユニバーサルプロジェクトの場合は、Windows用とPhone用のプロジェクトの双方に導入する必要がある(共有プロジェクトに直接は導入できない)。双方のプロジェクトに導入した後は、共有プロジェクトからも利用できる(Coding4Fun Toolkitの名前空間がWindows用とPhone用で同じになっているからであり、実際に使用されるバイナリは異なる)。
複数のプロジェクト(Windows用とPhone用)にNuGetから導入するには、以下のようにする。まず、ソリューションエクスプローラーでソリューションを右クリックし、コンテキストメニューから[ソリューションの NuGet パッケージの管理]を選ぶ(次の画像)。
出てきたダイアログの左側のペインで[オンライン]を選び、右上の検索ボックスに「coding4fun toolkit」と入力して検索すると、中央に検索結果が出てくる(次の画像)。
Coding4Fun Toolkitは、複数のパッケージに分かれている。次の四つだ。
これらの四つをまとめてインストールするパッケージも用意されている。[Coding4Fun Toolkit - Complete]というのがそれである。今回はこれを選んで、四つともインストールしてしまおう。上の画像にあるように、選んだ右側に出てくる[インストール]ボタンをクリックする。すると、次の画像のように、[プロジェクトの選択]ダイアログが出てくる。
今回はWindows用/Phone用の双方のプロジェクトにインストールしたいので、全てにチェックマークが付いた状態のまま[OK]ボタンをクリックする。すると、ダウンロードとインストールが自動的に行われる。なお、インストール中に「ファイル 'ReadMe.Coding4Fun.Toolkit.txt' はプロジェクト '(省略)' に既に存在します。上書きしますか」というメッセージダイアログが出てくるが、これはまとめて導入する四つのパッケージに同じテキストファイルが含まれているためなので、[すべてはい]ボタンを選んで上書きする。
インストールが成功すると、次の画像のようにパッケージの右側に緑色のチェックマークが付く。ダイアログ右下の[閉じる]ボタンをクリックして、Coding4Fun Toolkitの導入作業は完了だ。
Coding4Fun Toolkitが共有プロジェクトからも利用できることを確かめるため、簡単なユーザーコントロールを作ってみよう。共有プロジェクトに新しくユーザーコントロールを作り、次のようなコードを記述する。
<UserControl
x:Class="MetroTips100CS.MyUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MetroTips100CS"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400"
xmlns:c4f="using:Coding4Fun.Toolkit.Controls"
>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" /><RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" /><ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<!-- 標準のAppBarButton -->
<TextBlock FontSize="18" >AppBarButton</TextBlock>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<AppBarButton Icon="Accept" IsCompact="True" />
</StackPanel>
<!-- Coding4Fun ToolkitのRoundButton -->
<TextBlock Grid.Row="1" FontSize="18" >RoundButton</TextBlock>
<StackPanel Grid.Row="1" Grid.Column="1" Orientation="Horizontal">
<c4f:RoundButton Width="60" Height="60" ButtonWidth="60"
ButtonHeight="60" FontSize="27">✔</c4f:RoundButton>
<c4f:RoundButton Width="120" Height="60" ButtonWidth="120"
ButtonHeight="60" FontSize="27">TEST</c4f:RoundButton>
</StackPanel>
</Grid>
</UserControl>
上で使っているのは、Coding4Fun ToolkitのRoundButtonコントロールだ。今でこそ丸いボタンはAppBarButtonコントロールが標準で使えるようになっているが、それ以前はありがたいコントロールであった。このRoundButtonコントロールは、楕円形にもできるのが特徴だ。また、比較のためにAppBarButtonコントロールも表示してみた。
このユーザーコントロールを、Windows用/Phone用のそれぞれのプロジェクトの画面に貼り付けて実行してみると、次の画像のようになる。前述したように、パッケージの導入は個別のプロジェクトに行わねばならないが、利用するのは共有プロジェクトからも可能なのである。
オープンソースのCoding4Fun Toolkitには有用なコントロールが収められている。NuGetから導入するのだが、ユニバーサルプロジェクトであってもWindows用/Phone用のプロジェクトに導入する。導入後は共有プロジェクトからも利用できる。
Copyright© Digital Advantage Corp. All Rights Reserved.