SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2014】セッションレポート (PR)

【デブサミ2014】13-C-6 レポート
WindowsアプリがiOS/Androidアプリに! Xamarinの実力を披露

  • このエントリーをはてなブックマークに追加

 フルネイティブなアプリをクロスプラットフォーム開発する。しかも、C#と.NETを使って。日本マイクロソフト株式会社でテクニカルエバンジェリストを務める渡辺友太氏のセッションでは、Xamarin(ザマリン)+Visual Studioという環境でiOS、Android、Windowsすべてに対応したネイティブアプリを作る方法が紹介された。

  • このエントリーをはてなブックマークに追加
日本マイクロソフト テクニカルエバンジェリスト 渡辺友太氏
日本マイクロソフト テクニカルエバンジェリスト 渡辺友太氏

「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で作成する場合と同様に、シミュレーターを使用できる。実機にデプロイしてデバッグしていくことも可能だ。

Visual StudioとXamarinによる開発環境
図:Visual StudioとXamarinによる開発環境

WindowsアプリからiOS/Androidプロジェクトを自動生成

 ここまでの説明を終えた渡辺氏は、次にVisual StudioとXamarinによるクロスプラットフォーム開発のデモを披露した。

 最初はWindowsストアアプリ(Windows 8アプリ)。当然ここではXamarinは必要ないのだが、クロスプラットフォーム開発の話なので、話の流れ上デモが行われた。

 Visual Studioを起動し、Windowsストアアプリのテンプレートを選択すると、Windowsストアアプリのプロジェクトを含むソリューションが作成される。そこから通常のネイティブアプリ開発を行うと、これがAndroidアプリやiOSアプリの「元」となる。

 次はAndroidアプリ。XamarinがインストールされているVisual Studioで、先ほどWindowsストアアプリを作成したソリューションを右クリックし、[新しいプロジェクト]を選択すると、Androidアプリのテンプレートも表示される。これを選ぶと、ソリューションにAndroidプロジェクトのファイルが生成される。開いてみると、Visual Studioの中でAndroid Designerが立ち上がり、toolboxからボタンを入れるといった作業ができる。ソースコードを見ると、普通にAXMLで書かれていることがわかる。

 残すところはiOSアプリ。先ほど作成したAndroidアプリのソリューションを右クリックすると、iOSのテンプレートも入っている。ビューコントローラーを見ると、そのままC#だが、ボタンを追加するなどの作業は問題なく行える。残念ながら、iOSシミュレーターとStoryboard、Interface BuilderはWindowsに対応していないので、この部分に関してはMac上で作業する必要がある。

 また、デバッグするにはMacとVisual Studioを接続しなければならない。Visual StudioにXamarinをインストールすると、設定に[Find Mac Build Host]というボタンが現れる。これをクリックすると、ネットワーク内にあるXamarin.iOS Build Hostが起動しているMacを探してくれる。対象となるMacでXamarin.iOS Build Hostを起動して接続するためのPIN番号を取得し、その情報をWindows側で入力すれば、接続が完了する。この環境により、Windows上のVisual Studioで、Mac側で立ち上がったiOS Simulatorを使ったデバッグが行えるようになる。

 ここまでのデモでは、それぞれのプラットフォーム上に向けて別々に作業が行われたが、それをクロスプラットフォーム化する「PCL」(Portable Class Library)という仕掛けがある。これは、複数の.NET処理系に対し、バイナリレベルで再利用できるライブラリを作成するものだ。

PCL(Portable Class Library)
PCL(Portable Class Library)

 ビジネスロジックやデータ、抽象化された機能などの部分をPCLとして共通化し、プロジェクトを作っていく。その共通部分を、ネイティブのUIを定義しているプロジェクトから参照することにより、クロスプラットフォーム開発を効率的に行えるようになる。

 ここまでがXamarinの大きな流れだが、スマートデバイス向けのアプリが、クライアント上だけで完結することは少ない。通常はクラウドに繋ぐことになる。その意味で、「バックエンドをどう共通化していくかに留意する必要がある」(渡辺氏)

 Windows Azureにはモバイルサービスという仕掛けがあり、これを使えばバックエンドを簡単に作成できる。管理画面を見てみると、Windowsだけでなく、Android、iOSを対象とするプッシュ通知や、Facebookでのログインなどを設定するための項目が並んでいる。Xamarinに関するドキュメントも用意されており、すぐに開発を始めることができる。

 さらに、Visual StudioからXamarinが公式に運営しているマーケットプレイス「Xamarin Component Store」に入り、様々なコンポーネントを追加することができる。中には、Azureモバイルサービスに公式に対応したコンポーネントもある。

 セッションの最後に、渡辺氏はXamarinで使えるMVVMフレームワーク「MVVMCross」を紹介。デモでは、MVVMCrossを活用して共通ロジック部分をPCLとして作成し、クロスプラットフォームに展開していく様子が披露された。

スピーカー紹介

渡辺友太(わたなべゆうた)

日本マイクロソフト株式会社 テクニカルエバンジェリスト

Blog:Yuta Watanabe’s Blog

Twitter:@YutaWatanabe

セッション資料:XamarinとVisual Studioでまとめて作るiOS / Android / Windowsアプリ (Developers Summit 2014)

セッション関連情報:XamarinとVisual Studioでまとめて作るiOS / Android / Windowsアプリ (Developers Summit 2014)

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7683 2014/03/20 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング