ガジェット通信

見たことのないものを見に行こう

エバンジェリストちょまどさんが登壇!XamarinでiOS/Android/UMPアプリを開発しよう

DATE:
  • ガジェット通信を≫

エバンジェリスト、ちょまどさんが登壇、Xamarinの特徴を紹介

日本マイクロソフト・テクニカルエバンジェリストのちょまどさんが登壇したセッションは「これから始めるXamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~」。タイトルからもわかるように、Xamarin初心者のためのセッションだ。

XamarinはC#でWindows Storeアプリはもちろん、iOSアプリやAndroidアプリ、UWPなどが開発できるクロスプラットフォーム開発環境である。そのXamarinが、2016年2月にマイクロソフトに買収されたことで、IDEのVisual Studioに含まれることになった。

そんな注目度の高さに加え、de:codeでは珍しい初心者向けセッションということ、さらにちょまどさんがエバンジェリストとして登壇するということもあり、会場は満席。立ち見が出るほどの盛況ぶりだった。

このセッションの登壇者はちょまどさんだけではない。進行役に日本マイクロソフト・デベロッパーエバンジェリズム統括本部部長でエバンジェリストの砂金信一郎さん、

そしてXamarinの仕組みや使い方について、Xamarinの販売代理店だったエクセルソフトの営業であり、ユーザー会「Japan Xamarin User Group」の主催者でもある田淵義人さん、

さらに日本マイクロソフト・プラットフォームエバンジェリストの高橋忍さんという、豪華な4人によるセッションとなった。

ちょまどさんはマイクロソフトに入社する前はプログラマとして、XamarinでiOSおよびAndroid向けのモバイルアプリの開発をしていた。

そこで砂金さんが「これまでのモバイルアプリの開発において、Xamarinを使わないとどんな問題があったのか」問いかけ、ちょまどさんによるXamarinを使うメリットなどの説明が始まった。

「今までのモバイルアプリ開発はターゲットプラットフォーム特化型が一般的。iOSアプリであればSwiftとXcode、AndroidアプリはJavaとAndroid Studio、そしてWindowsアプリはC#とVisual Studioで開発というように、言語や開発ツールがバラバラで、プラットフォームごとに完全にコードが分離。さらにスキルやコードの再利用ができず、プラットフォームごとの実装差異が生まれやすくなっていたんです。しかも、言語やツールの習得コストもかかっていました」

そして一呼吸置いて「そこでXamarinなんです」と、Xamarinをアピール。

企業での活用実績も豊富に。NHK紅白公式アプリもXamarinで開発

Xamarinを使用すればコードはすべてC#で書くことになり、JavaやSwiftを書くことはない。またロジック部分はコードを共通化できるようになる(UI部分はそれぞれの作法にあった書き方をするため、個別に書くが)。

「機能的制約があるんじゃないの」という疑問についても、「ご安心ください。Xamarinは各プラットフォームのネイティブUI・APIを100%利用可能でアプリのパフォーマンスもネイティブと同じ。機能的制約は気にしなくていいと思う」とちょまどさんは言い切る。

Xamarinの良さはそれだけではない。最新バージョンのC#6.0で開発できることだ。デメリットは「日本語の情報が少ないこと。そして必要となるスキルの多さ」とちょまどさんは説明する。

すでに企業での活用実績もある。Xamarin社のホームページでは、1万5000社の企業がXamarinを活用しているという。日本でも活用実績はすでにある。

例えば、三井住友銀行の住宅ローン事前審査アプリ「スピードアンサー15」や、「NHK紅白公式アプリ」は、その一例だ。

またエムティーアイが開発したiOS版およびAndroid版の「日本酒アプリ Sakenomy」では、「Xamarinで開発することで約80%コードを共通化している」と砂金さんは語る。ちなみにちょまどさんいわく「SakenomyはXamarin.Formsで作られている」のだそう。

またアユダンテ社が開発した電気自動車の充電スポット検索アプリ『EVsmart』もXamarin(Xamarinネイティブ)で開発されている。同アプリのバックエンドはAzureを採用しており、クライアント側もサーバサイドもC#で書くことにより大きなコード共通化を計っている。

このような「フロントエンドとバックエンドをC#で作るアプリケーション場合は、Xamarinを使う価値はより上がる」と砂金さんは説明。だが心配になるのは価格だ。

「確かにこれまでは、Xamarin.iOS、Xamarin.Androidなどそれぞれのライセンスについて、開発者1人につき年間12万円程度かかり、さらに、それらの両方を開発するクロスプラットフォーム開発したかったら、両方購入する必要があり、結局1人1年24万円程度かかりました。非常に高価でしたね。しかし、マイクロソフトがXamarinを買収したことで、2016年4月よりXamarinがVisual Studioに付いてくるので、無料で使えるようになりました」(ちょまどさん)

コードの共通化はロジック部分のみ、UIは各プラットフォームで個別開発

続いて田淵さんによるXamarinの仕組みに関する説明が始まった。Xamarinの基盤となっているMonoは、.NET Framework互換の環境を実現するためのオープンソースのソフトウェア群だ。

「このMonoこそ、iOSやAndroidなどすべての環境で動かせる仕組みの大きなポイントとなっている」(田淵さん)

XamarinではiOSやAndroidのAPIに100%対応。例えばiOSであればiOSのAPIを、AndroidであればAndroidのAPIをC#からたたけるようになっている。

Xamarinを使用した開発では、iOSやAndroid、Windows向けなど異なるプラットフォームのアプリでもロジック部分は共通化し、UIの部分を個別に作っていくことになる。「UI部分を個別に作るのは、ユーザーエクスペリエンスを大事にするため」と田淵さんは説明する。

わかりやすく言うと私たちユーザーは、AndroidはAndroid、iPhoneはiPhoneそれぞれ固有の作法に慣れているため、「UIはネイティブを使った方がユーザーにとって使い勝手が良くなるからだ」(高橋さん)。

開発環境は大きく2つに分かれる。一つはWindowsでVisual Studioを使って開発する。もう一つはMacだけで開発する。その場合は「Xamarin Studioを使うことになる」とちょまどさん。

前者の場合、iOSアプリの開発をする場合、Mac(Xcode)が必要になる。一方後者の場合、Windows10 Mobileの開発はできない。

さらにセットアップまでの難易度についても紹介。表を見ればわかるとおり、「WindowsでiOSアプリをつくるのは、つまずきポイントが満載。できるけど大変です」と明かす。

というのもWindows側でXamarinの開発環境でアプリを作るだけではなく、Mac側でも開発環境を用意し、それをつなげていくことになるからだ。

ただ、Androidアプリの開発においては、「Windowsですね。私の場合、Web側はAzureを使っていたので、Visual Studioからのデプロイがより簡単だったんです」とちょまどさんは言う。

XamarinでAndroidアプリとiOSアプリを作る

ここまで説明したところでXamarinのデモ。デモをするのは田淵さんとちょまどさん。初めてのデモに「一番嫌な時間が来た」とちょっと不安げ。

田淵さんの説明に合わせ、ちょまどさんがVisual Studioを操作していく。

まずはプロジェクトの作成から。XamarinをVisual Studioにインストールすると、複数のプロジェクトテンプレートがインストールされる。「AndroidとiOS用のテンプレートがたくさん出てくるので、どれを使ってよいか迷うが、Visual C#のCross-PlatformからNative Portableを選択してプロジェクトを作成します」と田淵さん。

するとAndroidのプロジェクト、iOSのプロジェクト、Windows Phoneのプロジェクトが出てくるが、Androidのプロジェクトをそのままビルドする。

デプロイ先は実機とエミュレータが選べるが、「実機を使うのが楽」と田淵さんは言う。今回のデモでもちょまどさんのAndroid端末をつないで行っていた。

今回のデモではトースト(ぱっと出てフェードアウトするメッセージ)を追加することを行った。もちろん、トーストのAPIもVisual Studioからたたけるようになっている。

「Visual StudioではIntelliSenseも働くので、効率よく開発できるのも良いところだ」(田淵さん)

さらにブレークポイントを貼って、実機にデプロイしたアプリのデバッグをする様子も披露した。

続いてデモはiOSアプリのデプロイに。使用したのはMacとXamarin Studio。Xamarin Studioではmulti-platformのテンプレートを選択して、プロジェクトを作成。

そして先ほど同様、iOSのアプリが含まれるプロジェクトを作っていくという手順だ。画面はVisual Studioと似た構成。もちろんiOSのプロジェクト構成もXcodeとほぼ同じ構成となっている。

iOSの場合には、UIデザイナーで編集しながらView Controllerというファイルにコードを書いていく。

「コードはC#だが、iOSの作法を知り、APIをきちんと使い分けていく必要がある。だからスキルがたくさん必要なんです」と田淵さんは説明する。またiOSシミュレータを使って、簡単に動作をできる様も紹介し、デモは終了。

一つのビジネスロジックで、どのターゲットにもデプロイできる世界に

話題はXamarinの今後について。「今後Xamarinはどうなっていくのか」という砂金さんの問いに、田淵さんは次の様に回答した。

「2年前にリリースされたXamarin.Formsは、iOS、Android、UWP/Windows Phone向けアプリの画面の共通化を図るために作られた。これを使えばUIコードは統一されます」

ちなみに言語はXAMLを使用する。Xamarin.Formsでは画面構成をページという単位で管理する。ページは5種類用意され、「基本的な構成はサポートされている」と田淵さん。

そして各ページでレイアウトパターンを選んでパーツ(コントロール)を乗せ、画面を構成していくのである。ただコントールは19個しかないため、ベーシックなアプリを作ることしかできない。
(編集部注:iOS/Android/UWPのネイティブコントロールを呼び出し、リッチなアプリも構築できるが、原則ベーシックなアプリに向いていると言えるだろう)

ちょまどさんも「凝ったUIを作りたいのであればXamarinネイティブを使うことをお勧めします」と付け加えた。

Xamarinがマイクロソフトに買収されたことで、.NETの開発環境は大きく3つ用意されることとなった。このいずれにおいてもマイクロソフトが目指すのは、.NETベースのフレームワークでクラスライブラリを共通化すること。

「開発者は1つのビジネスロジックを書いてコンパイルすれば、最終的にどんなターゲットでもデプロイすれば終了というようにするのが理想。それが今回、Xamarinを買収した目的だと思う」と高橋さんは語る。

そこで重要になるのが、「皆さんからのフィードバックです」と砂金さん。「こういうふうになればいいなという熱い思いを伝えてほしい」(砂金さん)

高橋さんも「ユーザーである皆さんが、声を挙げてほしい。その声を元に、開発項目のプライオリティをつけているので」と付け加えた。

最後にちょまどさんが「みんなも頑張って、Xamarinを使って開発しましょう。応援しています」と会場に呼びかけ、セッションは終了。

マイクロソフトの買収により、Visual Studioにクロスプラットフォーム開発ツールのXamarinが組み込まれることとなった。これまでXamarinで開発しようとすると、開発者一人に対し年間約12万円が必要だったため、なかなか手がでなかった人も多かった。

しかしこれからはVisual Studioユーザーであれば無料で使える。ぜひ、この機会にちょまどさんも勧めるXamarinでiOS、AndroidアプリをXamarinで開発してみてはいかがだろう。

【関連リンク】日本MS技術イベント「de:code 2016」で登壇しました

カテゴリー : デジタル・IT タグ :
CodeIQ MAGAZINEの記事一覧をみる ▶
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。

TOP