Windows 10 アプリを作ってみる【説明編】【UWPとは?】【他のWindowsアプリとの違い】


Windows 10 のデスクトップアプリを作ってみよう!
ということで、UWP (ユニバーサルWindowsプラットフォーム) アプリを作ってみよう!
Visual Studio 2015 を使い、C# (もしくは VB or C++) で開発します。

と、その前に、

  • Windows 10 で動くアプリを作りたいんだけど、どうしたらいいの?
  • UWPアプリとはなんぞや?
  • 他の Windows アプリケーションプラットフォームとは、どう違うの?
  • Windows 10 のアプリは、他の Windowsアプリ(Win8.x以前など)と違うの?

など、知識編の記事をお送りします!

( *゚▽゚* っ)З「実際にコード書く前に、私と一緒にお勉強しましょう!」

win10

このエントリーをはてなブックマークに追加

Windows デスクトップアプリ

Windowsアプリを作ろう!と思って、Visual Studio 2015 で「新規作成」をしてみます。

↓ スタートページの左の「新しいプロジェクト」をクリック
vs0

↓ すると、「Windowsアプリ」カテゴリの下には、3つのカテゴリが。
vs1

上から

  1. ユニバーサル
  2. Windows 8
  3. クラシック(=昔の)デスクトップ

です。

Σ(゚Д゚)「なんか複数ある!デスクトップアプリ作りたいだけなのに!」

折りたたまれているところを開くと、
vs3

  1. ユニバーサル(UWP
  2. Windows 8
    1. ユニバーサル Windows 8.1(WinRT
    2. Windows 8.1
    3. Windows Phone
  3. クラシック(=昔の)デスクトップ
    1. Windowsフォームアプリ
    2. WPFアプリ

どれを選んでも、Windows 10 で動くデスクトップアプリが作れます。

ヽ(;▽;)ノ「なにこれ?!なんでこんないっぱいあるの!?意味分かんない!どう違うの!?結局どれ選べばいいの!?」

( *゚▽゚* っ)З「これはね、昔の形式と、最近の形式がね、ほぼ全部列挙されちゃってるのよね。Windowsは互換性の鬼だからね、古い形式(Windows Formsアプリなど)で作られたアプリでも、普通に最新のOSである Windows 10 で動くのよ。ちなみに一番新しい形式は『UWPアプリ』よ」

これらは、どう違うのでしょうか?
そして、どれがオススメなのでしょうか?

Windowsアプリの形式の比較

↓ ストアに配布できる形式と、できない形式がある。古いものはできない
app

↓ Windowsのバージョンごとの対応表。縦の太さは、OSのシェアによる
winos

スライド引用元:今だからもう一度確認したい、クライアント テクノロジの概要と選択

( *゚▽゚* っ)З「新しい順に表にまとめてみたわ!」

正式名称 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/C++ .exe Win NT3.1/ Win95
大昔からある形式で、いまだに根強いファンがいる。Win32(ウィン サンニー)。今では Windowsアプリを開発する上で当たり前となっている .NET Framework(*) を使わないで、OSの APIを直接叩く形で開発する。ポインタなどを生で触る。.NET Framework ライブラリーは .NET Framework ベースでできているが、.NET Framework ランタイムは、Win32ベースで作られている。ずっと昔から Windowsアプリを開発している人から言わせれば「Win32こそがネイティブアプリ開発である」(実際に詳しい人に話聞いてきた)
(*).NET Framework(ドットネット フレームワーク): Microsoft が開発したアプリケーション開発・実行環境。同社のWindowsに同梱されており、Windowsアプリケーションの開発・実行環境の一つとして広く普及している。.NET対応のアプリケーションソフトは.NET Frameworkが存在する環境なら機種やOSの違いなどに拠らず同じように動作させることができる。[(引用元)] Java の JVM のようなもの。

色々あるけど、私のオススメは「UWP」アプリです!
これからの Windows は 10 のみだし。(「Windows 11」などは将来存在しないということ。)
もうUWPで作っておけば間違いないんじゃないかな? Xamarin.Forms でも UWPアプリ作れるしね!

app

UWPアプリとは

uwp

UWP(ユーダブリューピー)アプリ!なんだそりゃ!?

( *゚▽゚* っ)З「UWPアプリとは、UWPで動くアプリのことよ!」

「UWP」って何?

( *゚▽゚* っ)З「UWPとは、ユニバーサル(=普遍的な)Windowsプラットフォームのことよ!『One Windows Platform』と言われることもあるわね。で、UWPアプリっていうのは、Windows 10 OSが搭載された様々な環境で動くアプリってことね。デスクトップでもモバイルでも、ゲーム機(Xbox One)でさえも!」

UWPが発表されるまでは、デスクトップ、モバイル、ゲーム機、と、派生していて、枝がバラバラでした。(Windows 8.x 時代に、統合しようと色々頑張ったりしたけど、結局バラバラだった。)
でも Windows 10 で、ついにそれらがひとつになりました!という話
journey_to_one_platform

( *゚▽゚* っ)З「Microsoftは、ずっと、環境を統一したいなあって考えていたのよ。それがようやく Windows 10 で叶った感じね!」

ふぅん!

( *゚▽゚* っ)З「まあとにかくこれから Windows アプリを作ろうと思ったら UWPアプリを作ればいいのよ。ストアでも配布できるし、そのままスマホ(Windows 10 Mobile)でも動くし」

↓ 同一のUWPアプリを、それぞれPC(Windows 10 のデスクトップ)で開いた図と、スマホ(Windows 10 Mobile)で開いた図
uwp_desktop uwp_mobile

↓ Windowsストア にあるアプリは、UWPアプリ もしくは WinRT(=UWPの前身)アプリである
store

ストアアプリは課金アプリも作ることが出来る

↓ UWPアプリは、Windows 10 のスタートメニューにある、タイル表示もできる
windows10startmenu

まとめ

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の搭載された様々な環境)で動くようになった

参考:

次回は UWPアプリを実際に作ってみます!
Visual Studio 2015 で「新規作成」→「新しいプロジェクト」→「Visual C# -> Windows -> ユニバーサル ->空白のアプリ(ユニバーサルWindows)」から、どんどんやっていきますよ!

(本当は実際にUWPアプリを作って見るところまで書くつもりだったのですが、予定外に説明書きが長くなってしまったので、「説明編」と「実習編」で記事を分断しました。)

( *゚▽゚* っ)З「ちなみに、現在、オフィス夜22:30よ!誰もいない」


Comments (5)

  1. ちょまどサンの見ながらウィジェットみたいなのが作れたらいいなぁ、、、
    (((o(*゚▽゚*)o)))

    ブランク14年ちょい!
    趣味的にだけど頑張って作ってみるじぇ!!

    1. chomado より:

      応援しています!

  2. 336 より:

    細かいハナシですがWin32アプリはMFC使って書くほうが多そうな気はしますね(MFCはWin32と分けるべきなのかな?)。
    ともかく、UWPの実習編、楽しみにしてます!

    1. chomado より:

      実習編、なるべく早く出します!コメントありがとうございます!

  3. しゃいしば より:

    uwpアプリ実習編、楽しみにしてます!

Skip to main content