Mobileといったスマートフォンの分野で(主にビジネスマン向けに)大きなシェアを持っていた。Phone開発機能を導入している(高度なIntelliSenseのサポートや、高速なエミュレータの起動、扱いやすいデバッグ機能など)。アプリ開発ガイドやアプリ配布プラットフォームの整備を行い、開発者が魅力的なアプリを開発しやすい環境を提供している。実際に開発を行っていくうえでは、開発環境や開発におけるガイドライン、アプリ配布用のマーケットプレイスなどの環境がどれだけ整備されているかが1つの鍵となる。表3に各プラットフォームの比較を示す。表3の比較表を作成するうえでは、.NET中心会議で行われたパネル・ディスカッションの議事録を参考にさせていただいた。Phoneはソフトウェアのガイドラインを示したり、ハードウェア規定を設けたりすることで端末ごとの違いを少なくしている。開発環境に目を向けると、Windows開発者としては使い慣れたC#やVBを利用して開発できるのはうれしいポイントだろう。Phoneも企業内配布を検討中ということで期待が持てる。●統合開発環境の整備スマートフォンの開発では、作成したアプリをパッケージにまとめたり、作成したアプリをエミュレータや実機に転送したり、実機を使ったデバッグのためにコンパイル・オプションを変更したりと、いくつか面倒な作業がある。このため、実際の開発では、単純にビルドするだけでなく、開発に必要な一連の機能がそろった統合開発環境を簡単に利用できるかは気になる点だ。表4に各プラットフォームにおける開発環境を示す。Blendといったツール類も同時にインストールされる。Phoneの開発が行えることは喜ばしい。Studioに完全には対応していない。Studioの再構成を行う必要がある。本作業はマイクロソフトが正式にサポートする方法ではないため、各自の責任で行ってほしい。Phone」以下に「1041」フォルダを作成し、そこに「1033」フォルダの内容をコピーする。Phone」以下に「1041」フォルダを作成し、そこに「1033」フォルダの内容をコピーする。10.0\Common7\IDE\」に移動して、以下のコマンドを実行する。Phoneの開発が行える(図7)。Phone、iPhoneの開発環境に比べ、次のようにいくつかの個別パッケージをダウンロードして、インストール作業を行う必要がある。Eclipseをインストール詳しくは、次の記事を参照してほしい。Phone開発では、ほかのプラットフォームと比べ、作成するアプリに応じてプログラミング・モデルや開発言語を自由に選択できるという特徴がある。●Silverlightか、XNAかスマートフォン・アプリは、メールやスケジュール帳など、「クラウド上のデータベースに、エンド・ユーザーの情報を保存・更新するタイプ」と、シューティング・ゲームやアクション・ゲームのように、「2Dオブジェクトや3Dオブジェクトを駆使したUIや処理をリアルタイムに実行するタイプ」に分けることができる。Phoneでは、それぞれのタイプに対応できるように、ゲームなどのインタラクティブな開発にはXNAを利用した開発、それ以外にはSilverlightを利用した開発と、2つのプログラミング・モデルが用意されている。そもそも、この2つのタイプでは、画面の処理や動作がまったくといっていいほど異なるので、自分の作りたいアプリに応じて、開発者がプログラミング・モデルを選択できるメリットは大きい。Silverlightでも、コントロールを中心にしたデータベースの更新など、いわゆる業務アプリのような処理以外にも、アニメーションや動画といったオブジェクトが利用できる。Silverlightの3Dオブジェクトは、あくまで擬似的なサポートにとどまる。3Dオブジェクトを駆使したゲームを作成したい場合は、Xbox360向けのゲームなどで利用されることが多いXNAを選択することになるだろう。逆にいえば、3Dオブジェクトや2Dを頻繁に利用するようなアプリ以外は、Silverlightを選択してアプリ開発を行えばよい。Phoneの次期バージョンでは、Silverlight内にXNAのオブジェクトを表示したり、連携したりすることも可能になる。これにより、「アプリの大枠はSilverlightで作成し、一部の3Dオブジェクトを表示したい部分だけXNAを利用する」といったシナリオや、「XNAで作成したゲーム内に、Silverlightのテキストボックスやボタンを配置して、テキストボックスへの入力結果やボタンのクリック・イベントなどを簡単に取得する」といったシナリオも採用できる。【コラム】Webブラウザ前回の記事でも触れたが、スマートフォンで採用されているWebブラウザは、ほとんどがHTML5をサポートしている。Phoneの現在のバージョンはIE7をベースにしている(これにIE8の機能もいくつか追加している)ため、HTML5への対応は以前からIEがサポートしてきた一部のタグのみで、極めて限定的だ。Phoneの次期バージョン「Mango」では、IE9を標準ブラウザとして採用することが発表された。7.1では多くのHTML5機能が使えるようになる。Phoneの開発には、C#とVBの2つの開発言語がサポートされている。Phoneの開発を行える。Toolsをインストールする必要がある。Centerからダウンロードし、インストールしてほしい。Phoneの開発では、前述したC#かVBのどちらかを選択する必要がある。C++やCといったアンマネージな開発言語を選択することはできない。Phone自体の動作を不安定にしたり、端末のバッテリを消費したりしてしまい、利用者に不便をかけさせないための対策だ。「CやC++が利用できない」というと、動作速度の面で心配する声も聞こえるが、実際に触ってみると、市場に出回っているアプリは驚くほど軽快に動作する。構築するアプリの性質にもよるが、バッチ系のよほど重い処理をスマートフォンにさせない限り、動作速度に問題はないだろう。Phone開発者向け技術情報」では、多くの開発者向けのリソースが公開されている。キット」はぜひ一度目を通しておきたい。概要」の2つは、一度目を通しておきたい。PhoneのPDF」が無料で公開されている。Hub」も充実している。カタログ」では、目的からコード・サンプルやチュートリアルを検索できる。本稿を執筆している4月24日時点では、いくつかのコンテンツは英語での提供となっているが、順次、日本語化されていく予定だ。開発に困った場合は、コミュニティのフォーラムで質問を投げてみるのもいいだろう。Phoneへの移行」に関するドキュメント複数のスマートフォンに対してアプリを提供する場合、同じ機能を実装しようにも、どのAPIを使ったらよいか、プラットフォームごとのデザイン・ガイドラインがどうなっているか、そもそも実現可能であるかなど、確認すべき項目はいくつもある。Phone開発とほかのスマートフォン開発の相互運用を支援するサイトだ。Phoneアプリへの移行方法が詳しくまとまっている。Phoneの機能概要、そして簡単な開発の手引きをまとめた。現在のところ、日本語が入力できない。日本語のアプリが少ない。Phoneだが、端末を操作した人の感想はおおむね良好だし、次期OSであるMangoが完成すれば、日本語に対応しいつでもスタート・ダッシュを切れる状態になる。Phone端末を保持し、すでに開発を行っているという状況にあった。Phone開発は静かに動き出している。7.1(コード名:「Mango」)についてより詳しい情報が発表されたため、それに併せて更新しました。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。