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として共通化し、プロジェクトを作っていく。その共通部分を、ネイティブの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)