5/29-30 de:code セッション SV-007 “パワフル モバイル アプリ開発 ~ 最新 Microsoft Azure Mobile Services をフル活用しよう!~ ” フォローアップ (5)

皆様、こんにちは!今回で、このセッションフォローアップも最後です。今回はフォローアップ(5)として、Xamarin との連携取り上げます。6月27日のセミナーで、また詳しく取り上げますので、ここでは私のセッションでやった簡単なデモのご紹介と、その他参考になるコンテンツのご紹介をしておきたいと思います。

Xamarin を使った開発について、詳細を知りたい方は、弊社エバンジェリスト 渡辺友太のBlogと、彼の de:code セッションビデオが Channel 9 に先行公開されていますので、こちらを見て戴ければOKです。

https://channel9.msdn.com/Events/de-code/2014/DE-007

1. 私のセッションでご紹介したデモの内容

フォローアップ(3)でご紹介した、オフラインサポートのシナリオ、あの記事ではクライアントのみ解説しましたが、当然ながらバックエンドとなるMobile Services は作成済みです。したがって、(3)でご紹介した下記の部分までは同様です。

サービス側のデータの確認

スーパーマーケット従業員のToDo リストを作ります。ToDoItem テーブルに適当な初期データを作成しておいてください。もし未だの場合には、下記の通り、WebApiConfig.csSeed メソッド内に追加し、もう一度、Azure に発行しておいてください。

    1: ・・・
    2: List<TodoItem> todoItems = new List<TodoItem>
    3: {
    4:     new TodoItem { Id = "1", Text = "商品の棚卸をする", Complete = false },
    5:     new TodoItem { Id = "2", Text = "レジ周りを片付ける", Complete = false },
    6:     new TodoItem { Id = "3", Text = "商品棚を整理する", Complete = false },
    7:     new TodoItem { Id = "4", Text = "フロア全体のレイアウトをチェックする", Complete = false },
    8:     new TodoItem { Id = "5", Text = "棚ごとに掃除を実施する", Complete = false },
    9: };
   10:  
   11: foreach (TodoItem todoItem in todoItems)
   12: {
   13:     context.Set<TodoItem>().Add(todoItem);
   14: }
   15:  
   16: base.Seed(context);
   17: ・・・

Xamarin クライアントアプリのダウンロードと編集

Microsoft Azure ポータルにログインし、Mobile Services タブから、(1)(2) で利用しているアプリのクイックスタート画面を開き、プラットフォームの選択で、Xamarin をタップします。”新しい Xamarin アプリを作成する”を展開し、iOS を選んで、ソリューションファイル一式をダウンロードしてください。これを編集します。

image

ダウンロードしたソリューションを、Visual Studio で開きますと、Xamarin.iOS.BuildHostと通信を行いますので、あらかじめペアリングと接続を済ませておいてください。この当たり、もしご存知ない方は、エクセルソフトさんのWebサイトなどでご確認戴ければと思います。

https://www.xlsoft.com/jp/products/xamarin/

ハマりどころとしては

・Xamarin.iOS.Client (Windows 側、Visual Studio アドオン)のバージョンと Xamarin.iOS.BuildHostのバージョンが異なると通信できない

(その場合にはバージョンアップを行いバージョンを合わせ、再度ペアリング等を行い、キーを相互に入力してリトライする)

・Mac のファイアウォールをオフにしないと通信できない(セキュリティ的な懸念)

・通信のパフォーマンスが気になる、 通信環境が気になる

等がありますので、これらを気にせず快適に開発を行えるお勧めの構成は、下記のような構成です。

---

ホストマシン:MacBook Pro 13” Retina 8GB RAM 以上+ SSDに、Xamarin.iOS.BuildHost と、Parallels をインストール

ゲストマシン:ゲストOS(Windows 8.1 Pro)をインストールした上に、Visual Studio 2013 Update 2 と、Xamarin.iOS.Client をインストールする

メモリの割り当ては可能な限り多く(Parallels 推奨値)、コアは4コア以上。Mac 上で実行するのは、Xamarin.iOS.BuildHost と、iOS シミュレーターのみ

---

このような環境を作ると、セッションでご紹介した通り、iPad の Storyboard が編集できますので、適宜、色や、フォントなどを変えたり、コントロールを追加したり、コードを追加したりといったことを行ってください。

image

ソリューション構成としては、このようになっています。詳細は別の機会にご紹介しますが、中身を見てみてください。

image

実行した結果は、こうなります。iOS シミュレーターが立ち上がり、アプリが実行されます。極めて簡単なデモです。

image

2. 最新情報その他

セッションでのデモ内容としては、2-3分ですので、以上です。

最新情報ご提供として、こちらのセミナーを、6月27日、品川の弊社セミナールームで開催予定です。

ーーー

C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流

概要:本セミナーでは、C# でiOS/Android/Windows のネイティブアプリを開発できる開発ツール Xamarin と Infragistics の UI コンポーネント Infragistics Ultimateの一部である Xamarin.iOS 対応の NUCLiOSを使用した、高パフォーマンスな業務アプリを C# で開発する方法をご紹介します。また、Xamarin で開発したアプリと Microsoft Azure を連携する方法もご紹介します。

日時・会場

セミナー名 : C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流

日 時 : 2014年 6月 27日 (金) 14:00 (13:30 開場)

会 場 : 日本マイクロソフト 品川本社セミナールーム

セミナー詳細

主 催 : エクセルソフト株式会社 / インフラジスティックス・ジャパン株式会社

共 催 : 日本マイクロソフト株式会社

参加対象者 : C# 開発者の方、iOS/Android アプリ開発者の方

参加費 : 無料

定 員 : 100 名

プログラム :

14:00 - 14:10 : 開催の挨拶

14:10 - 15:00 : C# での クロスプラットフォーム アプリ開発ツール Xamarin 概要 エクセルソフト株式会社 田淵 義人

15:00 - 15:50 : iOS 用 UI コンポーネント NUCLiOS のご紹介 インフラジスティックス・ジャパン株式会社 池原 大然

16:00 - 16:50 : Xamarin アプリと Microsoft Azure の連携 日本マイクロソフト株式会社 鈴木 章太郎

17:10 - 18:00 : 懇親会

https://www.xlsoft.com/jp/products/seminar/decode.html

ーーー

このセミナーでは、私は、主に Mobile Services との連携の箇所で、セッションをご提供しようと思っています。ポイントとしては、Mobile Services 側の話をご紹介するのがメインとなりますので、.NET バックエンドとの関係、や上記の基本的なデモの解説等に始まり、PCLの構成とMobile Services ヘルパークラス、認証ロジックの抽象化、あたりも重要となってきますので、このあたりも簡単に解説できればと考えています。今回の、一連のセッションフォローアップでご紹介したデモも一部ご紹介するかもしれません。

エクセルソフトさんからは、Xamarin 3.0 で出てきた、Xamarin.Forms の紹介もありそうですね!お楽しみに!

鈴木章太郎