特集:開発者のためのWindows Phone概説

スタート・ダッシュで差をつけるWP7の基礎知識

WINGSプロジェクト かるあ(監修:山田 祥寛)
2011/05/24
2011/05/26 更新
Page1 Page2 Page3

スマートフォン固有の機能も活用できるWindows Phone

 開発者としてスマートフォンに対応したアプリを作成する魅力は、スマートフォン独自の機能を利用したり、端末にあらかじめ搭載され、プログラムから利用可能なセンサーを利用したりすることだろう。

ロケーションと加速度センサー

 現在発売中のWindows Phoneには、カメラ、位置情報、加速度センサー、電子コンパス、照度センサーなどのセンサー・デバイスが搭載されている。この中でアプリから利用できるセンサーは、現在のところ位置情報と加速度センサーの2つだ。

 表1はセンサーで計測可能な情報と、利用する場合に用いるクラスの一覧だ。

センサー名 計測対象 クラス Code Recipeサンプル
加速度センサー 端末の向き/重力の方向 Accelerometerクラス(Microsoft.Devices.Sensors名前空間)(アセンブリ:Microsoft.Devices.Sensors.dll) 加速度センサーの情報を取得する
ロケーション(GPS) 現在位置/住所などの論理位置 GeoCoordinateWatcherクラス(System.Device.Location名前空間)(アセンブリ:System.Device.dll) GPSによる位置情報の取得
表1 Windows Phoneアプリから利用できるセンサー

 センサー類は、それ単品では使っても単に数字を取得できるだけだが、アプリやセンサー同士を組み合わせるとさまざまな利用方法が思い浮かぶ。よくある加速度センサーの利用例は、端末の向き(横長/縦長)に応じた表示の切り替えだが、さらにロケーションや地図アプリと組み合わせれば、ウォーキングの履歴管理などにも利用できる。

電話機能へのアクセス

 スマートフォンとはいえ、電話機なのだから、アドレス帳から連絡先を検索したり、実際に電話をかけたり、メールやショート・メッセージを送ったりといった電話機能をアプリから制御したいことは多々あるだろう。現在のところ、Windows Phoneではアプリから直接連絡先データを取得したり、電話をかけたりすることはできないため、Windows Phone OSの機能「Chooser」(=ChooserBaseクラスMicrosoft.Phone.Tasks名前空間)を継承したすべての派生クラス)を通して電話機能を呼び出すことになる。

 例えばMicrosoft.Phone.Task名前空間に含まれるChooserクラスを利用すると、カメラを起動したり(CameraCaptureTaskクラスを利用)、アドレス帳を起動してEmailアドレスを取得したりできる(EmailAddressChooserTaskクラスを利用)。詳しくは、MSDNの「Microsoft.Phone.Tasks名前空間」の項を参照してほしい。

2011年5月現在の注意点

 執筆時点では日本国内ではWindows Phoneを搭載したスマートフォンは発売されていない。Amazon.comなどの海外サイトを通じて個人輸入すれば端末の入手は可能だが、日本国内で利用する場合は次のような注意点があるので注意していただきたい。下記の注意点は、いずれも次期バージョンである「コード名:Mango」(=「Windows Phone 7.1」になると、うわさされている。ちなみに、現在のスマートフォンは、すべて「Windows Phone 7」ベース)で解決される予定だ。

(1)ユーザー・インターフェイス

 Windows Phoneは多国語対応が可能なOSであるが、日本国内で販売していないこともあり、現在のバージョン7では日本語のメニューが提供されていない(図6)。しかし、Twitterアプリの例(図4)のとおり、アプリ上で日本語の表示自体は問題なく行えるし、メトロUIで採用するタイルでも特に問題なく日本語が使用できる。

図6 現行のユーザー・インターフェイスでの日本語表示(左:トップ画面、右:言語の設定画面)

(2)日本語入力

 日本語入力についても課題がある。Windows Phoneが(文字が)マルチバイト圏の国でまだ販売されていないため、日本語の入力に欠かせない日本語IMEが提供されていない。

 有志により英語キーボードからの入力を日本語に変換するアプリが作成され、Windows Marketplace for Mobile(以下、Marketplace)で公開されている。ただし、Androidと違い、エンド・ユーザー自身が任意のアプリでIMEを置き換えることはできないため、正式な対応は次期「コード名:Mango」(詳細後述)を待つ必要がある。

 現在のWindows Phoneの日本語入力は、アプリごとにIMEを組み込む形で実装されている。多くはiseebi氏のコードを基に、インターネット上のソーシャルIMEサービスを利用して文字の変換を行うため、日本語の入力にはネットワーク環境が必要だ。現在Marketplaceで公開されている日本語入力アプリを下記に示す。

次期バージョン「コード名:Mango」

 本稿でもところどころで触れているが、Windows Phoneの次期バージョン「7.1」(コード名:Mango)が、MIX11の2日目のキーノートで発表された。この発表の中で判明した新機能を表2に示す。

 MIX11のキーノートの様子は、次のリンク先から参照可能だ。

 また、Mangoの新機能に関しては、4月25日に行われたMIX11の報告会の発表資料がよくまとまっている。

追加 機能
東アジア言語の対応 日本を含む東アジア言語への対応、メニューおよびIMEへの対応
連絡先、予定の連携 Contacts API、Appointments APIの追加。Windows LiveやFacebookのデータのプログラムからの読み込み
バックグラウンドAgentの追加 バックグラウンド状態で動作するエージェントの作成
カメラの制御 アプリから直接カメラを制御するAPIを追加
新センサーの搭載 ジャイロ・センサー(必須項目ではないため、搭載されない端末もある)
新アプリ基盤の採用 アプリの動作環境であるSilverlightが3から4にバージョン・アップ
XNAとSilverlightの相互運用の向上 UIを含めた相互運用が可能
ローカル・データベース SQL CEがデータベース・エンジンとして利用可能
新通信APIの追加 Socketベースの通信を行うAPIの追加
表2 Mangoで追加される新機能の概要

 今後、Mangoに対応した開発者ツールが5月中旬にリリースされる*1ほか、Marketplaceからアプリを購入できる国として「日本」が追加される予定だ。

*1 5月24日の深夜(=厳密には25日)に行われたWindows Phone Press Conferenceでは、Mangoに対応した開発者ツールのベータ版がリリースされた。この開発ツールはWindows Phone Developer Tools 7.1 Betaからダウンロードしてインストール可能だが、Microsoftの高橋氏のブログによると、現在のSDKはExpressionBlend 4日本語版との間に課題があるということである。現行版(7.0)の環境を壊したくない場合は、仮想PC上に作成するなど注意が必要だ。

 最後のページでは、Windows Phone開発について紹介していく。


 INDEX
  特集:開発者のためのWindows Phone概説
  スタート・ダッシュで差をつけるWP7の基礎知識
    1.スマートフォンに最適化されたWindows Phoneの画面
  2.スマートフォン固有の機能も活用できるWindows Phone
    3.Windows Phoneアプリの開発環境の特徴と開発方法

更新履歴
【2011/05/26】

 Windows Phone 7.1(コード名:「Mango」)についてより詳しい情報が発表されたため、それに併せて更新しました。





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メールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間