
「Visual Studio上でiOS/Androidアプリ開発を」の声に応えた
そもそも、なぜ、日本マイクロソフトのテクニカルエバンジェリストが、iOSやAndroidのアプリケーションを開発するツールの話をするのか。その理由について渡辺氏は、利用されるデバイスとOSが増え、その有用性が一般に認知されてきたことと、それに伴い、開発者の関心もクロスプラットフォームに移ってきていることを挙げた。
また、最近のスマートデバイス向け開発では、以下の実現も要求される。
- すばやい市場投入:OSのバージョンアップが早く、新しいデバイスも出る。
- コストの抑制:いかに既存チームのスキルを生かし、工数を削減するか。
- 質の高いUX:キーボード、マウス以外の入力方法への対応など。
決定的なのは、こうした事情を背景に「マイクロソフトのVisual Studioで、なぜiOSやAndroidのアプリケーションが作成できないのか、という指摘が顧客から数多く寄せられた」(渡辺氏)ことだろう。
マイクロソフトは、これらを実現するために2013年11月、Xamarin社とグローバルでパートナーシップを締結。Visual Studio上でiOS/Androidアプリを開発可能にする同社のアドイン「Xamarin」を、Visual Studio 2013の公式アドインとした。さらに、ポータブルクラスライブラリやAzureモバイルサービスといった、既存の.NET、C#の資産を活用するためのツールにも正式対応となっている。
Xamarinの特徴は次の3つである。
- “フル”ネイティブな開発経験:JavaとObjective-Cと同じことができ、すべてのAPIが使える。
- パフォーマンスが高い:インタープリターではない、コンパイルされたバイナリパッケージとして出力される。
- C#ですべて書ける:.NETやVisual Studioにおける既存の資産やスキルを活用して、アプリケーションを開発できる。
クロスプラットフォーム開発で作成可能なアプリケーションには、「Web上でブラウザーからアクセスするもの」「Webとネイティブをブリッジしたハイブリッド」「ネイティブ」の3種類があるが、Xamarinで作成するのは「ネイティブ」である。
なお、クロスプラットフォーム開発だからといって、すべての部分をデバイスやOSを超えて共通化するわけではない。「共通のビジネスロジック部分をC#で書く」というのがXamarinの作法になっていると、渡辺氏は説明する。
一方、画面はネイティブで作成する。Windowsストアアプリ向けの画面はBlendで作成。Android向けの画面は、Xamarinが提供する公式のデザイナーにより、Visual Studio上でデザインできる。iOS向けの画面だけはMac上での作成となる。
デバッグでは、EclipseやXcodeで作成する場合と同様に、シミュレーターを使用できる。実機にデプロイしてデバッグしていくことも可能だ。