Windows 10 のデスクトップアプリを作ってみよう!
ということで、UWP (ユニバーサルWindowsプラットフォーム) アプリを作ってみよう!
Visual Studio 2015 を使い、C# (もしくは VB or C++) で開発します。
と、その前に、
- Windows 10 で動くアプリを作りたいんだけど、どうしたらいいの?
- UWPとはなんぞや?
- 他の Windows アプリケーションプラットフォームとは、どう違うの?
- Windows 10 のアプリは、他の Windowsアプリ(Win8.x以前など)と違うの?
など、知識編の記事をお送りします!
( *゚▽゚* っ)З「実際にコード書く前に、私と一緒にお勉強しましょう!」
Windows デスクトップアプリ
Windowsアプリを作ろう!と思って、Visual Studio 2015 で「新規作成」をしてみます。
↓ スタートページの左の「新しいプロジェクト」をクリック
↓ すると、「Windowsアプリ」カテゴリの下には、3つのカテゴリが。
上から
- ユニバーサル
- Windows 8
- クラシック(=昔の)デスクトップ
です。
Σ(゚Д゚)「なんか複数ある!デスクトップアプリ作りたいだけなのに!」
折りたたまれているところを開くと、
- ユニバーサル(UWP)
- Windows 8
- ユニバーサル Windows 8.1(WinRT)
- Windows 8.1
- Windows Phone
- クラシック(=昔の)デスクトップ
- Windowsフォームアプリ
- WPFアプリ
どれを選んでも、Windows 10 で動くデスクトップアプリが作れます。
ヽ(;▽;)ノ「なにこれ?!なんでこんないっぱいあるの!?意味分かんない!どう違うの!?結局どれ選べばいいの!?」
( *゚▽゚* っ)З「これはね、昔の形式と、最近の形式がね、ほぼ全部列挙されちゃってるのよね。Windowsは互換性の鬼だからね、古い形式(Windows Formsアプリなど)で作られたアプリでも、普通に最新のOSである Windows 10 で動くのよ。ちなみに一番新しい形式は『UWPアプリ』よ」
これらは、どう違うのでしょうか?
そして、どれがオススメなのでしょうか?
Windowsアプリの形式の比較
↓ ストアに配布できる形式と、できない形式がある。古いものはできない
↓ Windowsのバージョンごとの対応表。縦の太さは、OSのシェアによる
スライド引用元:今だからもう一度確認したい、クライアント テクノロジの概要と選択
( *゚▽゚* っ)З「新しい順に表にまとめてみたわ!」
正式名称 | VSでの項目名 | ストア配布 | 開発言語 | UI記述言語 | 吐き出すファイル形式 | 初登場時期 |
---|---|---|---|---|---|---|
UWPアプリ | 「ユニバーサル」 | ◯ | C#/C++/VB/ JavaScript |
XAML/ HTML5(JSでの開発時) |
.appx | Win 10 |
ユニバーサル(=普遍的な)Windowsプラットフォーム用のアプリ(通称「UWPアプリ」)。Windows 10 OS が入っていれば、デスクトップでもモバイルでもゲーム機(Xbox)でもHoloLensでも、一つのコード(プロジェクトファイル)で動く | ||||||
WinRT | Win8.1の「ユニバーサル」 | ◯ | C#/C++/VB/ JavaScript |
XAML/ HTML5(JSでの開発時) |
.appx | Win 8 (モバイルは8.1) |
UWPの前身。Win8.1 から、同一のソースコードで Winモバイル(スマホ) と Windows デスクトップのアプリが作れる WinRTというものができた。当時はそれを「ユニバーサルアプリ」と呼んでいた。(8の時代にもWinRTは存在したがデスクトップのみだった) | ||||||
WPF | 「WPFアプリケーション」 | ✕ | C#/C++/VB | XAML | .exe | Win Vista |
Windows Presentation Foundationのこと。XAMLが初めて出てきた | ||||||
Windows Forms | 「Windowsフォームアプリケーション」 | ✕ | C#/C++/VB | — | .exe | Win XP |
Win32 | 「Win32」 | ✕ | C++ | — | .exe | Win 95 |
大昔からある形式 |
色々あるけど、私のオススメは「UWP」アプリです!
これからの Windows は 10 のみだし。(「Windows 11」などは将来存在しないということ。)
もうUWPで作っておけば間違いないんじゃないかな? Xamarin.Forms でも UWPアプリ作れるしね!
UWPアプリとは
UWP(ユーダブリューピー)アプリ!なんだそりゃ!?
( *゚▽゚* っ)З「UWPアプリとは、UWPで動くアプリのことよ!」
「UWP」って何?
( *゚▽゚* っ)З「UWPとは、ユニバーサル(=普遍的な)Windowsプラットフォームのことよ!『One Windows Platform』と言われることもあるわね。で、UWPアプリっていうのは、Windows 10 OSが搭載された様々な環境で動くアプリってことね。デスクトップでもモバイルでも、ゲーム機(Xbox One)でさえも!」
UWPが発表されるまでは、デスクトップ、モバイル、ゲーム機、と、派生していて、枝がバラバラでした。(Windows 8.x 時代に、統合しようと色々頑張ったりしたけど、結局バラバラだった。)
でも Windows 10 で、ついにそれらがひとつになりました!という話
( *゚▽゚* っ)З「Microsoftは、ずっと、環境を統一したいなあって考えていたのよ。それがようやく Windows 10 で叶った感じね!」
ふぅん!
( *゚▽゚* っ)З「まあとにかくこれから Windows アプリを作ろうと思ったら UWPアプリを作ればいいのよ。ストアでも配布できるし、そのままスマホ(Windows 10 Mobile)でも動くし」
↓ 同一のUWPアプリを、それぞれPC(Windows 10 のデスクトップ)で開いた図と、スマホ(Windows 10 Mobile)で開いた図
↓ Windowsストア にあるアプリは、UWPアプリ もしくは WinRT(=UWPの前身)アプリである
ストアアプリは課金アプリも作ることが出来る
↓ UWPアプリは、Windows 10 のスタートメニューにある、タイル表示もできる
まとめ
UWPアプリの特徴
- UWPアプリは、Windows 10限定である。(Windows 8 や 7 では動かない)
- UWPアプリは、ストア(Windows Store)で配布できる。無料アプリも有料アプリも課金アプリも作れる
- UWPアプリは、スタートメニューのタイル表示ができる
- UWPアプリは、同じひとつのコード(プロジェクトファイル)で、Windows 10 デスクトップでも、Windows 10 Mobile(=Win10の入ったスマホ) でも、Xbox Oneでも、HoloLens(=ゴーグル型デバイス)でも動く
- 今までは、デスクトップ用、Windowsモバイル用、と、それぞれ別々にアプリを作る必要があった。しかし、UWPが発表されてからは、UWPアプリを一つ作れば、それが UWP上(≒ Windows 10 OSの搭載された様々な環境)で動くようになった
参考:
- 大先輩エバンジェリストの高橋しのぶさんのセッション(60分間):今だからもう一度確認したい、クライアント テクノロジの概要と選択
次回は UWPアプリを実際に作ってみます!
Visual Studio 2015 で「新規作成」→「新しいプロジェクト」→「Visual C# -> Windows -> ユニバーサル ->空白のアプリ(ユニバーサルWindows)」から、どんどんやっていきますよ!
(本当は実際にUWPアプリを作って見るところまで書くつもりだったのですが、予定外に説明書きが長くなってしまったので、「説明編」と「実習編」で記事を分断しました。)
( *゚▽゚* っ)З「ちなみに、現在、オフィス夜22:30よ!誰もいない」