特集:Windows Phone “Mango”開発入門

たった30分で完成。初めてのWindows Phone 7.5アプリ開発

青柳 臣一
2011/09/27
Page1 Page2 Page3

 

 ついにWindows Phone 7.5搭載スマートフォンの発売が始まった。テレビCMや一般紙でも取り上げられているので、それらを目にした方も多いのではないかと思う。

 Windows Phone 7.5(コードネーム:“Mango”)のアプリケーション・プラットフォームはSilverlightとなっている。そのため、WPF(Windows Presentation Foundation)やSilverlightでの開発を経験したことのあるデベロッパーにとっては、とても馴染みやすいものとなっている。そこで本稿では、WPFやSilverlightでの開発経験がある方に向けて、Windows Phoneでのアプリケーション開発がどのようなものかを紹介したいと思う。

Windows Phoneとは?

Windows Phoneってどんなもの?

 Windows Phone 7は、系統としては従来のWindows Mobileと同じくWindows CEカーネルを用いたスマートフォン用OSと位置付けられている。ただし、思想もアーキテクチャもWindows Mobileとは大きく異なっており、アプリケーション開発という観点では全くの別物、全く新しいOSであると考えた方がいいだろう。

 ユーザー・インターフェイス(以降、UI)も一新されており、「メトロ(Metro)」「ハブ(Hub)」と呼ばれる統一されたデザインに基づいて設計されている。いまでは日本国内の多くの店頭で実際に手に取って試せるようになっているので、Windows Phone未体験の方は機会を見付けて、ぜひ一度体験してみてほしい。

Windows PhoneとSilverlight

 前述のようにWindows Phoneのアプリケーション・プラットフォームはSilverlightとなっている。ただし、これは「PC用のSilverlightがそのまま動いている」という意味ではない。さすがにPC用のSilverlightとはいろいろな違いがある。

 例えば、SilverlightにはChildWindowクラスがあるが、「子ウィンドウ」という概念自体がないWindows Phoneにはこれに対応するクラスはない。反対に、カメラやGPSといった機能に対応するために、Windows Phone上のSilverlightにはこれらを扱うためのクラスが追加されている。名称的には「Silverlight for Windows Phone」と記述されたりするが、Windows Phone用にカスタマイズされたSilverlightが動作していると考えていただくといいだろう。

 Windows Mobileでは、C言語やC++言語を用いてOSのAPIを直接呼び出すような、いわゆるネイティブ・アプリを開発・実行できた。しかし、Windows Phoneでは、基本的にネイティブ・アプリを実行できない。開発すること自体はある程度の知識があれば可能かもしれないが、そのアプリケーションを配布することができないのだ。

 詳しくは後述するが、Windows Phoneでアプリケーションを配布するにはマイクロソフトの審査を通過しなくてはならない。ネイティブ・アプリはもちろん、許可されていないAPIを呼び出しているアプリケーションは、この審査を通過できないのだ。セキュリティが重要となるスマートフォン用OSならではの仕組みが存在するのだ。

 なお、もともとSilverlightはInternet ExplorerなどのWebブラウザ上で動作するプラグインだ。しかし、Windows Phoneのアプリケーション・プラットフォームとしてのSilverlightはWebブラウザとは関係がない。少し乱暴な表現であるが、Windows PhoneそのものがSilverlightプラットフォームになっていると捉えていただくといいだろう。

 ところで、Windows PhoneにもInternet Explorer(IE)が搭載されているのだが、いまのところ、このIEはSilverlight未対応である。そのため、Silverlightを使用したWebサイトをWindows Phoneで閲覧することは現時点ではできない。この点は注意してほしい。

Windows Phone 7と7.5

 最初のWindows Phone 7は2010年10月、北米やヨーロッパで発売された。このときにサポートされていた言語は、英語、ドイツ語、フランス語、スペイン語、イタリア語のわずか5言語のみである。ただし、OSの内部は最初からきちんと多言語対応されていた。システム・メニューや入力キーボードはこれらの5言語のみ対応であったが、日本語のWebサイトやメールを表示することはほぼ支障なく可能だったようだ。

 2011年2月にコードネーム“NoDo”と呼ばれるアップデートが提供された。“NoDo”ではコピー&ペースト対応などいくつかの大きな機能追加が行われたが、対応言語の追加などは行われなかった。その後、コードネーム“Mango”によって日本語、中国語などをはじめとする多数の言語のサポート、そのほか500項目にも及ぶ機能追加などが行われると発表された。

 そして、2011年8月、auから世界最初のWindows Phone 7.5コードネーム“Mango”搭載機「IS12T」が発売された。実はこの時点では、日本以外の国ではWindows Phone 7.5自体が発表されていなかった。英語版よりも早く、世界に先駆けて発表・発売だったわけだ。次の画像は、Windows Phone 7.5の日本語対応の例である。

Windows Phone 7.5の日本語対応
画像はカーブ・フリック(=[あ]から左斜め上に「小」という項目があるが、例えば「あ」から「小」に指をスライドさせると「ぁ」が入力される)で日本語を入力しているところ。

 なお、Windows Phone 7.5以前に発売された機種も基本的に7.5にアップデート可能となるらしい。スマートフォンの場合、通信キャリアやデバイス・メーカーによる機能追加や調整が行われている。「どの言語をサポートするか」の決定も通信キャリアやデバイス・メーカーが行うとのこと。そのため、7.5にアップデートしたとしても必ず日本語サポートが追加されるというわけではない。

無料でそろう開発環境

Windows Phone SDK

 Windows Phone 7.5のアプリケーションを開発するために必要なツールがマイクロソフトから提供されており、すべて無料で使用できる。それがWindows Phone SDKだ。本稿執筆時点ではRC(Release Candidate:製品候補版)ではあるが、英語版と併せて日本語版も提供されている。

 Windows Phoneアプリケーションの開発の中心になるのは、WPFやSilverlightの開発で慣れ親しんだVisual Studioだ。Windows Phone SDKにもVisual Studio 2010 Express for Windows Phoneが含まれている。また、製品版のVisual Studio 2010 ProfessionalやUltimateにも対応しているので、これらがインストールされている環境へWindows Phone SDKをインストールすると、ProfessionalやUltimateのVisual StudioでWindows Phoneアプリケーション開発を行える。

 Windows Phone SDKには以下の開発ツールが含まれている。

  • Visual Studio 2010 Express for Windows Phone
  • Expression Blend for Windows Phone
  • Windows Phone SDK 7.1 (RC)
  • Windows Phone Emulator (RC)
  • Windows Phone SDK 7.1 Assemblies (RC)
  • Silverlight 4 SDK and DRT
  • Windows Phone SDK 7.1 Extensions for XNA Game Studio 4.0
  • Microsoft Expression Blend SDK for Windows Phone 7
  • Microsoft Expression Blend SDK for Windows Phone OS 7.1
  • WCF Data Services Client for Windows Phone
  • Microsoft Advertising SDK for Windows Phone

 Windows SDKに含まれているWindows Phoneエミュレータを使用すれば、Windows Phone実機がなくてもアプリケーションの動作テストを行える。エミュレータでもGPSやいくつかのセンサもテストできるようになっている。もちろん、Visual Studioと連携してステップ実行などのデバッグも可能だ。このエミュレータのおかげで、Windows Phone実機を所有していなくともアプリケーションの開発が可能となっている。もちろん、本格的にアプリケーション開発する際には実機でのテストも欠かせないが、エミュレータだけでもほとんどのことはテストできるようになっている。

 なお、Windows Phone SDK 7.1 RCではGo-Liveライセンスが提供されている。Go-Liveライセンスとは、「この開発ツールを使って作成したアプリケーションを配布してもよい」というライセンスのことである。そのため、すぐにでもアプリケーションを開発し、配布することが可能だ。

Windows Phone 7.5とWindows Phone SDK 7.1

 ところで、開発ツールの名称が「Windows Phone SDK 7.1」となっていることにお気づきだろうか。「Windows Phone 7.5」というのは製品名であって、OSのバージョンは「Windows Phone OS 7.1」となっている。開発ツールの名称は製品名ではなくOSバージョンに合わせて命名されているらしく、「Windows Phone SDK 7.1」という名称になっているようだ。

 なお、Windows Phone 7のころは、「Windows Phone SDK」ではなく「Windows Phone Developer Tools」と呼ばれていた。「WPDT」と略されることも多かったが、これが「Windows Phone SDK」という名称に変更された。

 この「Windows Phone 7.5のバージョンは7.1」というのは、デベロッパーであればいろいろなところで目にすることになる。Windows Phone SDKの名称ももちろんそうであるが、開発時に頻繁に参照することになるリファレンス・マニュアルにも「7.1」と記載されている。この点について少し補足しておこう。

Windows Phoneのクラス・ライブラリ・リファレンス・マニュアル

 Windows Phoneのクラス・ライブラリ・リファレンス・マニュアルは、オンラインで参照することができる。WPFやSilverlightと同じMSDNライブラリだ。というか、実はSilverlightとWindows Phoneのクラス・ライブラリ・リファレンス・マニュアルは一体化されている。

 以下の画面は、「SilverlightのStringクラスのリファレンス・マニュアル」をブラウザで開いたところである。

SilverlightのStringクラスのリファレンス・マニュアル(英語ページ)
バージョン情報欄には「Silverlight 3、4」だけでなく「Windows Phone OS 7.0、7.1」でもサポートされていると明記されている。

 MSDNライブラリのツリーでいうと、[MSDN Library]−[.NET Development]−[Silverlight]−[.NET Framework Class Library for Silverlight]−[System]−[String Class]であるが、このバージョン情報欄には「Silverlight 3、4」だけでなく「Windows Phone OS 7.1、Windows Phone OS 7.0」でもサポートされていると記載されている(※上述のとおり、Windows Phone OS 7.1がWindows Phone 7.5、Windows Phone OS 7.0がWindows Phone 7)。このようにリファレンス・マニュアルはSilverlightとWindows Phoneで共通となっており、このバージョン情報欄にどちらでサポートされているかが記載されるという形式になっている。

 なお、本稿執筆時点ではMSDNライブラリの日本語ページはまだWindows Phone 7.5に対応していない。そこで上記では英語ページを紹介した。参考までに「Stringクラスの日本語ページ」では以下のようになっている。

SilverlightのStringクラス(日本語ページ)
バージョン情報欄には「Silverlight 3、4」「Windows Phone OS 7.0」と記載され、まだ「Windows Phone OS 7.1」の表記はない。

 また、MSDNライブラリの英語ページには「Windows Phone Development」がある。Windows Phoneのさまざまな技術情報が記載されているので、必要に応じて参照するといいだろう。残念ながら、まだ英語版しか存在しない。早い段階で日本語翻訳されることを期待したい。

App Hub

 さて、「Windows Phone SDKには、Windows Phoneアプリケーションを開発するために必要なものがすべて含まれている」と書いたが、実はもう1つ重要な要素がある。それが「App Hub」である。

 App Hubとは、マイクロソフトが運営するデベロッパー向けのポータル・サイトだが、Windows Phoneアプリケーションを配布するにはこのApp Hubのサブスクリプション(年間9,800円)が必要となる。Windows Phoneアプリケーションの配布について簡単に紹介しておこう。

 Windows Phoneでは、アプリケーションの配布にマイクロソフトが提供しているマーケットプレイスが使われる。Windows Phoneのユーザーはこのマーケットプレイスで検索したり、人気ランキングを参照したりして、好きなアプリケーションをインストールするわけだ。また、PC上のZuneソフトウェア経由でWindows Phoneにインストールすることもできる。

 当然、デベロッパーは、作成したアプリケーションをマーケットプレイスに公開し、ユーザーに使ってもらえるようにしなくてはならない。これにはApp Hubに加入していることが前提となる。App Hubにログインするとアプリケーションをアップロードできるようになっている。ここにアップロードしてマイクロソフトに審査を依頼する。審査を通過すると、マーケットプレイスにアプリケーションが掲載される。この流れは、有料アプリケーション、無料アプリケーション、いずれであっても同様だ。

 ところで、アプリケーション開発中にも実機でのデバッグ・テストが必要になる。Windows Phoneではデベロッパーであっても自由にWindows Phone端末にアプリケーションをインストールすることはできない。たとえそれが自分で作成したアプリケーションであり、自分が所有しているWindows Phone端末であってもインストール・実行することはできないのだ。

 これを可能にするには、開発者アンロックを行う必要がある。開発者アンロックは、デベロッパーがApp Hubに加入し、所有しているWindows Phone端末をアンロック対象として登録することによって行う。こうすると、そのデベロッパーは自分の所有しているWindows Phone端末に自由にアプリケーションをインストールできるようになる。また、Visual Studioと接続して、実機上のアプリケーションでデバッグ・テスト作業もできるようになる。

 なお、Windows Phone SDKに付属しているエミュレータは、最初からアンロックされた状態になっている。そのためデベロッパーがアンロック作業を行う必要はない。

 このように一般に配布するには、App Hubへの加入が必須となっている。

 それでは次のページから、実際にWindows Phone 7.5アプリケーションの開発を始めよう。


 INDEX
  [特集] Windows Phone “Mango”開発入門
  たった30分で完成。初めてのWindows Phone 7.5アプリ開発
  1.Windows Phoneとは?/無料でそろう開発環境
    2.ブロジェクトの作成/横向き対応/ページ・デザイン/実行
    3.アプリケーションバー/画像を開く/コメント表示/画像保存/画像読み込み


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH