日本マイクロソフトが5月24~25日に開催した開発者向けカンファレンス「de:code 2016」で、「これから始める Xamarin ~ 環境構築から iOS/Android/UWP アプリのビルドまで ~」と題した入門者向けの「Xamarin(ザマリン)」セッションが行われた。
日本マイクロソフト テクニカルエバンジェリストの千代田まどか氏。フォロワー1万人を持つ漫画家でもある
メインの講師を務めた“ちょまど”こと千代田まどか氏は、日本マイクロソフトに転職してきたのが今年の4月という新米エバンジェリストであり、ステージ上でのライブコーディングも初めてという初々しい姿を見せている一方で“Xamarin LOVE”の心意気が十分に伝わってきた。ちょまど氏に加えて、お目付け役として同社のベテランエバンジェリスト砂金信一郎氏と高橋忍氏の2人、エクセルソフトの田淵義人氏も登壇した。
現在のモバイルプラットフォームは主にiOS、Android、そしてWindows 10 Mobileと分かれており、基本UIがバラバラの上に開発環境や言語もバラバラで、ネイティブアプリをクロスプラットフォームで実装する場合、スキルやコードの再利用が出来ずに開発者の言語習得コストもかかる。
ちょまど氏は、Xamarinを利用するとロジック部分はコードを共通化でき、すべてC#や.NETでの開発が可能となるので既存資産が活用できると説明。さらに、XamarinではC#でネイティブUI/APを利用可能で、アプリパフォーマンスも変わらないという特徴がある事を紹介した。
クロスプラットフォームの開発環境としては、今回説明するXamarin以外にも「Unity」がある。XamarinはC#6.0が利用できるというメリットがある一方、日本語ユーザーがまだ少なく、必要なスキルが多いというのが難点だ。
Xamarinを使うとC#でロジック部分を共通化できるので、機種ごとの依存部分&UIだけ分離すればよい
Xamarinの活用事例としては、国内では三井住友銀行の住宅ローン事前審査アプリやNHK紅白歌合戦アプリなどがある。グローバルでは1万5000社以上の企業アプリで使われている実績があるという。
一方、Xamarin最大の欠点は開発者1人当たり年間999ドルかかるライセンスフィーにあり、且つiOSとAndroidの開発を行うためには2ライセンスかかっていた。これが、MicrosoftがXamarinを買収し、4月からVisual StudioでXamarinが使えるようになってしまったので、その最大の欠点は解消した、とちょまど氏は強調。「タダ」で、「Windows開発者にとってなじみの深いC#とVisual Studio」で開発できる点をアピールした。
Xamarinの開発環境は現在二択で、「WindowsにVisual Studio」か「MacにXamarin Studio」のいずれかになっている。ただし、iOSアプリをWindowsで作成するためには規約の関係上、コーディングのためにMacが必要であるし、MacでWindows系のバイナリを作ることはできないという。ちょまど氏の言葉を借りると、「MacでiOSアプリを作るのはチョー簡単、WindowsでWindows 10 Mobileアプリを作るのも簡単。でもWindowsでiOSアプリを作るときはつまづきポイントがあり、Macで開発環境を作って繋げないといけない」そうだ。ちなみに現在Windows版のXamarin Studioは(買収に伴って)ダウンロード不可とのこと。
ここで、ちょまど氏が初のライブコーディングに挑戦。Androidの場合、Windows上のエミュレータのパフォーマンスがよろしくないこともあり、USBケーブルでターゲットマシンを動かすのがおすすめだという。JavaではなくC#で開発できるので、Windowsアプリの開発に慣れている人ならばハードルが低そうだ。実機動作でもブレークポイントを利用したデバッグができる。次にiOS版の開発をデモ。こちらはMacにXamarin Studioをインストールしてエミュレータで動作させていた。どちらもHello Worldの表示とボタンをタップすると回数が表示させるサンプルを実行し、ボタンのデザインを変更していた。
セッションでは、UIを機種ごとに個別記述するのではなく、ある程度UIコードを統一して機種依存のコードを減らす「Xamarin Forms」の機能も紹介。これは画面の設計をXAMLで行うので、Windows系開発者にとってはなじみやすいだろう。つまりXamarin Nativeで作るかXamarin Formsで作るかの2つの選択肢があり、Xamarin Formsの方がマルチプラットフォーム化のコストは下がる。一方、Xamarin Formsはできてから2年しか経過しておらず、まだ内容が充実していない。このため、サックリ作るならForms、凝ったUIを作りたいならNativeとするのがよいだろうとアドバイスをしていた。
Xamarin Formsを使うとUI部分の共通化も行える一方、まだ機能が少ない
.NETは、.NET Framework、.NET Core、Xamarinでベースライブラリが異なるという現実があり、これは本来.NET Standard Libraryで共通化されないといけないと指摘。また次のC#7.0もどこから適用になるかどうかはまだわからず、「このあたりは開発者の声によって優先度が変わるので、ぜひともフィードバックを」(ちょまど氏)とお願いをしていた。
将来はライブラリが共通化されるハズだ
まとめとして、ちょまど氏は、自身がエバンジェリストとして内定してからXamarinの買収とVisual Studioへの組み込みが行われたので、Xamarionのエバンジェリストになれたことはラッキーだったと振り返った。これで興味を持ったらすぐXamarinを使い始めてほしいことと、日本ではユーザー会として「Japan Xamarin User Group(JXUG)」があり、今回登壇した田淵氏がまとめ役となっていることを紹介して、セッションを締めくくった。