次に、Windowsストア・アプリの開発で使われる技術の概要を見ておこう。利用できるAPI、作成する実行ファイルの形式、それと開発言語についてだ。
Windowsストア・アプリから利用できるAPIは、大きく分けて次の4種類だ。
.NET Frameworkのクラス・ライブラリは、Windowsストア・アプリ用に選ばれた一部のものだけが利用できる(Windowsストア・アプリ用.NETともいう)。クラスの一部のメソッドが使えないこともある*5。また、JavaScriptからは使えない。
Windowsランタイム(以降、WinRT)は、Windowsストア・アプリのために新規に開発された、新しい実行環境である。WinRTのクラス・ライブラリは、Windowsストア・アプリから基本的には全部使える。ただし、Windows Phone 8向けのもの(Windows Phoneランタイム、略してWinPRT)の中には、Windowsストア・アプリから利用できないものがある*6。
Win32 APIは、Windowsにもともと備わっているAPI群だ(COMやDirectXも含む)。Windowsストア・アプリでは限られたものだけが利用できる。DirectXの一部も利用可能なので、ゲームの開発には欠かせない。ただし、C++/CX(後述)での開発が前提になる。利用できるAPIの一覧はMSDNの「Win32 and COM for Windows Store apps」にある(本稿執筆時点では英語のみ)。
WinJSとDOM APIはJavaScript専用のAPIだ。
なお、本連載では.NET FrameworkとWinRTを使用する。
*5 例えば、System.IO名前空間のStreamReaderクラスのコンストラクタには、ファイルのパス文字列を受け取るオーバーロードがある。しかし、このオーバーロードは、Windowsストア・アプリからは利用できない。
*6 Windowsストア・アプリから使うWinRTと、Windows Phone 8から使うWinPRTは、大部分に互換性がある。ただし、WinRTにしか存在しない部分(例えばローミング機能など)と、WinPRTにしか存在しない部分(例えば[戻る]ボタンのサポートなど)もあり、その部分を使っているソース・コードは移植するときに問題になる。
Windowsストア・アプリ用に作成する実行関連ファイルには、次の4種類がある。
種類 | ファイル拡張子 | 説明 |
---|---|---|
アプリ | .exe | アプリ本体 エクスプローラなどからは直接実行できない |
クラス・ライブラリ | .dll | アプリ本体や他のライブラリから呼び出せるライブラリ |
WinRTコンポーネント | .winmd | JavaScriptからも利用できるライブラリや、バックグラウンド・タスク用の実行ファイルなどを実装する WinRTの型だけを公開するように作る |
PCL | .dll | ポータブル・クラス・ライブラリ 利用するAPIを制限した特殊なクラス・ライブラリで、Windows Phoneのアプリなどとの間で共用できる |
Windowsストア・アプリ用に作成する実行関連ファイル |
最小限のWindowsストア・アプリは、アプリ(.exe)ファイル1つだけから成る(ほかにマニフェスト・ファイルや画像ファイルなど、多くの非実行関連のファイルがある)。ただし、「.exe」ファイルといっても、エクスプローラなどからは直接実行できない。そして、大規模なアプリでは複数のクラス・ライブラリ(.dll)を追加することが多い。WinRTコンポーネント(.winmd)とPCL(.dll)は特殊用途だと考えてほしい。
なお、以上はC#などで開発した場合だ。JavaScriptで作った場合はこれらの実行関連ファイルは作成されず、JavaScriptのファイル(.js)のままである。
本連載では、アプリ(.exe)とクラス・ライブラリ(.dll)を作る。
Windowsストア・アプリの開発に使えるプログラミング言語は、C#/VB/JavaScript/C++/CXの4つである。最後のC++/CXというのは、「Visual C++コンポーネント拡張」と呼ばれるもので、Windowsストア・アプリ開発用にC++を拡張した言語だ。なお、有償版のVisual Studioでは、F#でPCLを作ることも可能である。
本連載ではC#を利用するが、ほかの言語を使った場合も簡単に見ておこう。
まず、プログラミング言語と画面構築言語の関係だ。
プログラミング言語 | 画面構築言語 |
---|---|
C#/VB/C++/CX | XAML(第3回で解説予定) |
JavaScript | HTMLとCSS |
プログラミング言語と画面構築言語の関係 |
XAML(「ザムル」と読む)はXMLの一種だ。HTMLのようにタグ付けして記述する。WPFやSilverlightの開発経験がある人には、おなじみの言語だ。本連載ではプログラミング言語にC#を選んだので、画面構築にはXAMLを使うことになる。
HTMLとCSSは、Webページの作成経験がある人にはおなじみの言語だ。
次は、各プログラミング言語から利用できるAPIだ。
プログラミング言語 | 利用できるAPI |
---|---|
C#/VB | WinRT .NET Framework |
C++/CX | WinRT .NET Framework Win32 API |
JavaScript | WinJS DOM API WinRT |
各プログラミング言語から利用できるAPI |
それぞれに一長一短があるので、開発プロジェクトに適したプログラミング言語を選べばよい。例えば、DirectXを直接扱うのであればC++/CXになるし、Webアプリからの移植ならばJavaScriptが候補の筆頭となるだろう。また、作成する実行ファイルごとに異なるプログラミング言語を使うことも可能だ。例えば、画面まわりはJavaScriptで作り、ロジックはC#やVBでWinRTコンポーネントとして作るといったことができる。
Windowsストア・アプリを開発するにはVisual Studioを使う。
Win 8.1アプリを開発するには、Win 8.1が必須だ。ソース・コードの編集とアプリのビルドには、Visual Studioを使うのが一般的で、Win 8.1アプリの開発にはVisual Studio 2013が必須である。
これらの開発環境を整える話は、次回に詳しく説明する。
Windowsストア・アプリには次のような特徴がある。
また、Windowsストア・アプリ開発で使う技術には次のようなものがある。
次回は「初めてのWindowsストア・アプリ」。開発環境を整えて、アプリを1つ作ってみる予定である。
Copyright© Digital Advantage Corp. All Rights Reserved.