イベントレポート
de:code 2016
iOSもAndroidも! WindowsでもMacでもモバイルアプリを1つのコードで開発できる「Xamarin」
2016年5月27日 11:32
日本マイクロソフト株式会社の主催による開発者向けイベント「de:code 2016」で、25日に行われた「Xamarin」入門者向けのセッション「これから始めるXamarin~環境構築からiOS/Android/UWPアプリのビルドまで~」をレポートする。
Xamarinは、オープンソースプロジェクト「Mono」をベースにしたモバイルアプリのクロスプラットフォーム開発環境。2月にMicrosoftによる買収が発表され、4月にはMicrosoftの開発者向けカンファレンス「Build 2016」において、Xamarinの機能をVisual Studioユーザーに無償提供することが明らかにされた。
従来のモバイルアプリ開発では、OSごとにツールがまちまちで、開発言語が異なるためコードの再利用もできなかった。しかし、Xamarinを使えば、基本的にはC#または.NETとVisual Studioで、iOS/Android/UWPのモバイルアプリを開発できる。コードを共通化でき、Visual Studioや.NETの資産を活用することも可能だ。
OSには個別に標準のコントロールやスライダーといったUIデザインや、戻るボタンの位置などの作法がある。開発されたアプリでのユーザー体験を向上するために、アプリのロジックを共通化する一方で、UIは個別に開発するのがXamarinの基本思想となる。
Xamarinはすでに開発開始から5年以上が経過しており、ベースとなったMonoは15年以上の実績がある。iOSとAndroidのネイティブUIやAPIはすべて移植されており、C#などからすべて利用できる上、パフォーマンス面でもネイティブでのアプリ開発との違いはないという。
現時点では、国内のXamarin利用者はまだまだ少なく、日本語のドキュメントなども整備されていないが、その有用性から、導入例もすでにいくつか見られる。
開発環境としては、WindowsでiOSアプリの開発を行うことも可能だが、アプリのビルドにはMac OS Xで動作するXcodeが必要となる。Androidアプリの開発はWindowsでもMacでも可能だ。
Windowsでは、Visual Studio 2015 Update 2にXamarinが同梱されているため、あとはAndroidアプリ開発用のAndroid SDKとJavaのインストールが必要だ。Mac OS Xでは、Xamarin StudioとXcodeがあれば、Android/iOSアプリの開発が行える。
【お詫びと訂正 18:20】
Mac OS XではUWPアプリを開発できないため、記事初出時から本文の一部と記事タイトルを変更しました。お詫びして訂正いたします。
今回のセッションでは、Android向けとiOS向けにサンプルアプリを展開するデモも行われた。Androidではエミュレーターが難易度を上げるため、実機を使った方が問題が少なくなるとのことだ。
前述のようにXamarinは、UIはOSごとに個別に開発するという基本思想だが、このUI部分のコードも共通化してアプリを開発できるのが、Xamarinユーザーの要望を受けて開発されたXamarin.Formsだ。
Xamarin.Formsでは、UI部分のコードをXAMLで記述すれば、OSごとのネイティブのUIにマッピングされるという。このため、より簡単にアプリの開発が行える。ただし制約があり、用意されているページは5種類、レイアウトは7種類、コントロールは19種類のみとなる。
最後に、Microsoftの持つ開発環境の未来についても語られた。現在、.NET Framework、先日オープンソース化された.NET Core、そしてXamarinがあるわけだが、最終的にはクラスライブラリを共通化して、1つのビジネスロジックを書けば、最終的なターゲットとなる環境に応じて、UI部分を開発すれば済む、という状態が理想で、「全部そろえたMicrosoftが目指すべき方向性」(日本マイクロソフト株式会社の高橋忍氏)とした
すでにCEOであるサトヤ・ナデラ氏や開発責任者のスコット・ガスリー氏も、こういった方向性を打ち出しているが、この実現へ向けては、「Microsoft社内での開発の重要度が上がるよう皆さんのフィードバックが重要になる」(日本マイクロソフト株式会社の砂金信一郎氏)とした。