Universal Windows Platform(UWP)
先にも簡単に述べましたが、UWPはWindows 10をOSとする端末で動作するアプリケーションを開発するためのプラットフォームです。
UWPアプリケーションが動作するOSはWindows 10となるため、開発にはWindows 10が必要です。
開発の特徴
UWPアプリケーションを作成可能な言語はC#、Visual Basic、C++、JavaScriptです。画面を定義するためにXAMLまたはHTMLといったマークアップ言語を利用します。
Windows 8、8.1のWindowsストアアプリと共通するところも多く、同プラットフォームでの開発資産を生かすことができます。
プラットフォーム固有の機能は拡張を追加
さまざまなデバイスで動作するUWPアプリケーションですが、デバイスによっては固有の機能を利用したいケースがあります。その場合は、参照に拡張(Extensions)を追加することで機能を利用可能にします。
デバイスごとに異なる画面サイズ
PCとタブレット、スマートフォン、IoTデバイス、さまざまな環境で動かせるUWPアプリケーションですが、それぞれのデバイスで画面サイズが異なるため、画面サイズに合わせたUIの設計が必要になります(スマートフォンのみで利用可能と、用途を限定することもできます)。
- 参考:UWP アプリの設計
Android、iOSアプリをUWPへ
AndroidやiOSのアプリケーションをUWPアプリケーションに変換する「Windows Bridge for Android」「Windows Bridge for iOS」も少しずつ情報が公開されつつあります。
Windows Bridge for Android
Windows Bridge for AndroidはこれまでProject Astoriaと呼ばれていたAndroidアプリケーションをUWPアプリケーションに変換する技術です。詳細は公開されていませんが、以下のURLからDeveloper Previewに応募することができます。
Windows Bridge for iOS
Windows Bridge for iOSは、これまでProject Islandwoodと呼ばれていたXcodeプロジェクトをVisual Studioにインポートできる技術です。こちらもfor Android同様Developer Previewですが、プロジェクトがGitHubに公開されており誰でも試すことができます。
DevOps
Visual Studio 2015のEnterprizeエディションとProfessionalエディションとの大きな違いはDevOps関連機能の有無に現れます。テスト、分析、モデリングなどの機能を含んだ文字通りエンタープライズな用途に対応したエディションが前バージョンのPremiumとUltimateを統合したEnterprizeです。
今回はその中でもVisual Studio 2015で新しく追加されたものや変更されたものを紹介します。
CodeLensがProfessionalでも利用可能に
前バージョンでは上位エディションでしか利用できなかった機能が下位エディションで利用できるようになるのも、新しいVisual Studioが登場した時の注目ポイントの一つです。
今回はバージョン管理の情報をコードエディタ上で表示するCodeLensの機能がProfessionalエディションでも利用可能になりました。
IntelliTest(Enterprizeのみ)
Visual Studio 2015ではユニットテスト周辺の機能も強化されました。メソッドから「単体テストの作成」を行う機能が復活したのもうれしい変更ですが、IntelliTestという機能が新しく追加されました。
IntelliTestは自動でテストケースを作成してくれます。
例えば以下のようなメソッドがあったとします。
// 引数の値に応じて2倍もしくは4倍して返すメソッド
public int sampleMethod(int tmpInt)
{
if (tmpInt > 3)
{
return tmpInt * 2;
}
else
{
return tmpInt * 4;
}
}
このメソッドに対しIntelliTestを実行すると以下のように2パターンの単体テストを実行します。
if文の分岐2パターンを網羅するために引数が0の場合と4の場合において自動でテストが走っています。このテストを保存してテストケースを追加することもできます。
今回は簡単なサンプルでしたが、IntelliTestはこのようにコードを解析して自動でカバレッジを高めるようなテストや、nullチェックを行うようなテストを作成してくれます。

