日本語版 - MyShuttle.biz demo apps from Connect(); – ③ Cross-platform Mobile Development of native apps for iOS, Android and Windows with .NET and Xamarin

皆様、こんにちは!

このシリーズ、次は③番目、Xamarin iOS/Android と、Universal Apps のお話です。

表題のタイトルにある、Connect();イベント、昨年末のオンラインイベントなので覚えておられる方も多いかと思います。これに関連して、このブログエントリについて、何件かのお問い合わせを、日本のお客様やパートナー様から戴きました。お答えしているうちに、この内容には、ソースコードもありせっかくの良いリソースなので、日本語でも紹介しよう!と思いつきました。そこで、Microsoft 本社のアーキテクトである、Cesar de la Torre [MSFT]と連絡を取り、彼の許諾を得て、本ブログエントリーシリーズ(全5回)の翻訳を行うことになりました。まだ5個目の5.のエントリが書かれていませんが、Cesar によれば、追って更新されるそうです。またソースコードも随時更新の予定とのこと。ぜひお付き合いください!(徐々に公開していきますので、お待ちください(^^))

※ オリジナルのブログのURLはこちらです。

Cesar de la Torre – Software Architect at Microsoft Corp. Redmond, Seattle, U.S.

Original Blog URL: https://blogs.msdn.com/b/cesardelatorre/archive/2014/11/30/myshuttle-biz-demo-apps-from-connect-visual-studio-and-azure-event.aspx   (The original blog URL might be different depending on the post, of course)

image image image image

このブログエントリ(ネイティブアプリ開発にフォーカス)は、MyShuttle.biz アプリケーションがカバーする異なるシナリオの中の3番目のブログエントリです。.

1. 日本語版 - MyShuttle.biz demo apps from Connect(); – ① Global Introduction

2.日本語版 - MyShuttle.biz demo apps from Connect(); – ② ASP.NET 5 Web Apps and Services

3.(本エントリ)日本語版 - MyShuttle.biz demo apps from Connect(); – ③ Cross-platform Mobile Development of native apps for iOS, Android and Windows with .NET and Xamarin

4.日本語版 - MyShuttle.biz demo apps from Connect(); – ④ Multi device development of hybrid apps for iOS, Android and Windows with Visual Studio Tools for Apache Cordova

5.日本語版 - MyShuttle.biz demo apps from Connect(); – ⑤ Backend integration with LOB services (Invoicing, Azure WebJob, Azure queues, O365 API and SalesForce API)

モバイルアプリを、異なる OS のプラットフォーム(Windows, iOS, Android)で開発しようとするとき、多くのケースでは、エンド顧客やシナリオをターゲットとして、そこで、ベストな UX、すなわち、こなれた、ビジュアルにデザインされた UX を提供しようとするでしょう。その場合の UX は、ここの特定のデバイスプラットフォームのスタイル/ガイドラインとコントロール群(Windows Phone vs. iOS vs. Android)に沿ったものであること、同時に、パフォーマンスもベストであること、が望ましいです。
ネイティブアプリの開発でこれらのゴールを達成することは、もちろん可能です(Android では JavaiOS では ObjectiveC/Swift、というように)。しかし、マイクロソフトは、ネイティブアプリの開発における同様のゴールを、C#.NET、そしてランタイムとしての Xamarin をベースとした、クロスプラットフォーム アプローチに賭けています。

次のダイアグラムでは、どのようにして C#、.NET および Xamarin を使ってクロスプラットフォーム開発を行うのか、纏めてあります。:

image

Xamarin 及び .NET を使って、100% ネイティブのアプリを開発可能です。しかも、およそ 80% の C# クライアント側のコードが、異なるプラットフォーム間で共有でき、他の 20% は、ほぼマークアップ言語 (XAML, AXML, 等) またはプラットフォーム特有のコードであり、こなれた UI でプラットフォームごとに最適化されているものです。

この MyShuttle.biz シナリオ(下記ダイアグラムをご覧ください)では、いくつかのネイティブアプリ(デスクトップアプリ、モバイルアプリ)を開発しました。下図内では、黄色い星で強調してあります。

image

開発するアプリは、まず、デスクトップアプリ(WPF)Windows 8.1 ストアアプリおよび Windows Phone 8.1 アプリ です。これらは Universal Windows Apps として .NET で開発します。そして、 iOS アプリAndroid アプリは、Visual Studio および Xamarin で開発します。

image image_thumb39

(注 : このダイアグラムと写真では、モバイルアプリを表示しています。WPF デスクトップアプリは写っていないですが、これは、サンプルデモアプリのソースコードのフォルダの中の …\MyShuttle_V1.01\src\MyShuttle.Client.Desktop に入っています)。

さて、どこが重要なポイントでしょうか?全てのこれらネイティブアプリが、同じ C# コードを再利用し、.NET アプリケーションと Xamarin アプリケーションとの間で、シェアされていることです。

これこそが、真のC#ベースのネイティブクロスプラットフォームモバイルアプリです!!

Setting up the MyShuttle.biz native apps solution in Visual Studio

これらのクライアントアプリをVisual Studio でセットアップするために必要な環境 は下記の通りです。 :

- 1. Visual Studio 2015 Preview (または Visual Studio 2013 with Update 4、但し ASP.NET 5 Services と連携させるには、Visual Studio 2015 Preview が必要)

Visual Studio 2015 Preview download

- 2. Xamarin (for Visual Studio 2015 Preview)

Xamarin for VS 2015 Preview - download and installation (Kzu,XamarinKzu、これ必読です!)

This is also a good post about current Xamarin's installation on VS 2015 Preview (Brian Lagunas、こちらも必読です!)

- 3. Nugget.org への VS Nuget Package Manager からのパッケージソース参照先設定を忘れずに行います。これにより、使用するすべての外部依存関係を検索し把握することができます。例えば、MVVMCross 等です。

image

- 4. MyShuttle.biz ASP.NET 5 Web API Services( Microsoft Azure 上または他のサーバーにデプロイ済み)が必要です。内容的には、前回②で解説したものです。ASP.NET 5 サービスをローカルに配置することもできます。その場合には、Visual Studio で、その local Web Server を使って、モバイルアプリを使うたびにサービスを起動することになります。しかし、そのやり方は、当該サービスを、グローバルで、どこからもアクセス可能で、安定している場所、例えば Azure に配置する事に比べると、ずっと大変です。サービスをローカル(例えば開発機内)で実行する場合、問題が生じ得るのは、サービスに対してモバイルデバイスか、あるいはエミュレータから利用する場合に、当該デバイスまたはエミュレーターが、同じノートパソコンのローカル IP やサービスにアクセスできない可能性があるからです。この場合、経験上は、当該サービスをAzure にデプロイして実行しておけば、どんなモバイルアプリからも利用可能です。

- 5. MyShuttle.biz Azure Mobile Service プロジェクトが、Microsoft Azure 上にデプロイされていることが必要です。このサービスは、プッシュ通知を異なるモバイルアプリ間で扱います。そこで、もし、この機能が使いたい場合には、この Mobile Services プロジェクトを Azure 上にデプロイする必要があるのです。

- 6. いったん全ての必要な者のセットアップが終了したら、Xamarin プロジェクトを扱うことに慣れていない限り、お薦めするのは、各ソリューションを、Xamarin プロジェクトとしてではなく(Xamarin Studioで開くのではなく)、 Visual Studio で、01.1_Demos_NativeApps_Microsoft.sln で開くことです。 その他のもの、もし Xamarin について詳しくてまたきちんと Xamarin がインストールされているのであれば、01_Demos_NativeApps.sln を開いてください。こちらは、Xamarin プロジェクトを含みます。

重要: 注意点を述べます。最初にこのソリューションを開いたとき、多くの NuGet の依存関係が存在していることと、特に Xamarin プロジェクトのフルバージョンを開いた場合、開くのにかなり時間がかかることがあり得ます。数分ではないレベルです。次に当該ソリューションを開いた場合には、Nuget の依存関係もほとんど構成済みなので、開くのはずっと速いでしょう。

Sharing code between all your C# apps with PCL (Portable Class Libraries)

Visual Studio を開いて、重要な点は、C# のコードが共有できるという点です(約 80% の UI ロジック、例えば、ViewModelService Agents でリモートサービスを利用するもの、等々) 。これは、Universal Windows Apps および Xamarin アプリすべてにわたっていて、PCL (Portable Class Library)がコンパイル済みのライブラリとして共有されます。

まずは、PCL プロジェクトを開きます。名前は、MyShuttle.Client.Core (Portable) です。

image

Setting up the PCL project

この PCL “MyShuttle.Client.Core (Portable) ” のプロジェクトは、共通の設定コード(Common Configuration Code) を含んでおり、これらは、Windows 8.1 ストアアプリ,、Windows Phone 8.1 アプリ、 Xamarin Android アプリ、 そして Xamarin iOS アプリから再利用されます。利用可能な配置済みサービスの URL のようでもあり、Bing Maps key と他の設定のようでもあります。共通の設定を一つの箇所に置いてあり、それが PCL 内部ですので、異なるクライアントアプリ軍にそれらの情報を入れておく必要がありません。

1. MyShuttle.Client.Core (Portable) プロジェクトを展開します。

2. ApplicationSettingServiceSingleton.cs という名前のファイルを開きます。Infrastructure フォルダにあります。

image

3. DefaultUrlPrefixValue の値を代入します。URL の文字列で、前回の手順で ASP.NET 5 Web API サービスを Azure にデプロイしたものを入れます。例えば下記のような感じです。

image

下記のようになります。

private const string DefaultUrlPrefixValue = “https://[yourserver].azurewebsites.net”;

4. DefaultUrlPrefixValue の文字列を取得した Bing Maps key に変更します。

もし Bing Maps key, を一つも持ってなければ、Microsoft のサイトから取得してください。Bing Maps APIs を使うためには、Bing Maps Key が必要です。

この Bing Maps API には、 map コントロールとサービスが含まれており、Bing Maps とアプリケーション内や Web サイト内で連携できます。インタラクティブマップや、静的な地図に加えて、この API が提供するのは、他の Geospatial Features(地理空間情報の取り扱い)、例えば、Geocoding(住所から緯度経度を検索)や、ルート案内、交通情報、そして 空間データソース等で、これを使ってデータを保存・検索することができます。このデータは、空間データコンポーネント、たとえば store locations などを持っています。

※ 必要な場合に随時参照してください: Getting a Bing Maps Key.

キーを取得したら、ApplicationSettingServiceSingleton.cs ファイルの DefaultVingMapsTokenValue の箇所に、当該文字列を代入します。

image

5. 次に、PCL プロジェクトで、CommonAppSettings.cs ファイルの中で、下記の静的文字列に、それぞれ値を導入して書き換えます:

_MobileServiceUrl (デプロイ済みの Mobile Service の URL)

_MobileServiceKey (Azure Management Portal から取得した Mobile Service のキーl)

_SignalRUrl (デプロイ済みの ASP.NET 5 サービスの URL、これは ASP.NET 5 Web アプリケーションと Web API サービスと同じ URL).

image

PCL code/assets

それでは、コードの中を見ていきましょう。どのようにして多くの ViewModel を実装したかが良くわかるはずです。この ViewModel は異なる C# アプリ間で共有されます :

image

このことは、例えば VehicleDetailViewModel.cs というコードが異なる複数の C# アプリから共有されるというだけではなくて、同時に一貫性を持ったやり方で、それらアプリ間で共有されるということで、これは MVVMCross フレームワークによって実現されています。これを今回は .NET および Xamarin アプリ全てにわたって使用しています。

image

PCL プロジェクトプロパティを見れば、この PCL こそが異なるプラットフォームをサポートしていることがわかります :

image image

当該 PCL プロパティを見るとわかるのは、異なるプラットフォームを PCL ライブラリでどうサポートするのかがわかります : Windows デスクトップアプリ、Windows 8 ストアアプリ、Windows Phone 8.1 アプリ、 および Xamarin サポートのおかげで、Android および iOS、等全ての PCL ライブラリ/DLL としてコンパイルされた C# コード です。

ここで、Visual Studio Ultimate の素晴らしい機能である Code Map を使うことで、実際にこのシナリオに登場する全ての異なるクライアントから取得した PCL であることを証明できる。Code Map により、このケースのようにあまり詳しくない、なじみがないものでも、コードに辿りくつくことができます。

基本的に、この Code Map では、アプリケーションの構造を、マップにして表すことができます。アセンブリとメソッドにアクセスすることにより、どのメソッドとメソッドが互いにリンクしているのかがわかるので、ビジュアルに当該アプリケーションの動きを把握できるのです。

image

このケースでお見せしているのは、Visual Studio Code Map を使って、PCL 名 MyShuttle.Client.Core (Portable) が、他の異なるアセンブリ/アプリからどのように参照されるか、という点です :

image

これを見てください!この PCL の中の C# コードを、Windows デスクトップアプリ、Windows 8 ストアアプリ、Windows Phone 8.1 アプリ、 および Xamarin Android アプリ、そして Xamarin OS アプリから、再利用できます。全ての C# コードはネイティブアプリ各種の間で再利用されています!

Code Map はまた、クラス間、メソッド間、の関連性を推測して提示します。それにより、Code Map を使ったビジュアルなデバッグさえできるのです。

The MyShuttle.biz WPF desktop application

伝統的な WPF デスクトップアプリについて、ご紹介していきます。これも、MyShuttle.biz シナリオの一つです。.

WPF デスクトップアプリが便利なケースは、まさに Windows デスクトップシナリオであり、例えば、オフラインで稼働するアプリケーションなどがありますが、他にも様々な理由で、Windows デスクトップアプリが必要な場合があります。

Setting up the WPF app

この WPF アプリを起動するには、WPF アプリを適切に構成し、 “point to” 前述の ASP.NET Web API サービスを”参照”するようにして、中央に置かれたデータおよびサービスを利用できるようにする必要があります。

1. MyShuttle.Client.Desktop プロじぇくを選択し、展開します。

image

2. App.config ファイルを開き、URLPREFIXKEY の値を、URL に変更します。この URL は、ASP.NET 5 Web API サービスのもので、例えば、Azure 上にデプロイされたものです。.

image

もし、まだ Azure 上にサービスをデプロイしていなければ、サービスを Visual Studio から起動し、ASP.NET 5 アプリケーションから取得したローカルの URL を記述してください。したがって、この場合には、Web API サービスを起動するため、ASP.NET 5 アプリケーションの起動が必要になります。

ここでは、既に Microsoft Azure にデプロイ済みなので、こちらの URL を記述しました。 https://myshuttlebiz.azurewebsites.net/ 下記のようになります:

<add key="URLPREFIXKEY" value=" https://myshuttlebiz.azurewebsites.net/" />

3. F5 を押して、WPF アプリを起動してください。下記のような画面が出てくると思います。

MyShuttle.biz WPF アプリケーション

image

このサンプル WPF アプリケーションは、Daniel Moth が彼の IDE とパフォーマンスのデモに使ったもので、彼は少し修正したもののいくつかのバグをフィックスして再度アップしたものです。

このデモは、Daniel の実施した Visual Studio 2015 Preview IDE の 生産性とパフォーマンス診断の箇所で見ることができます :

Visual Studio in a world of multiple devices (基調講演 21:50 ~).

WPF Roadmap

WPF については詳しくここでは説明しません。その理由は、これが .NET コミュニティではよく知られているためです。しかし、強調しておきたいのは、最新の WPF に関するニュースで、WPF チームから発表されたロードマップに関するものです:

The Roadmap for WPF (Nov. 12th 2014)

https://blogs.msdn.com/b/dotnet/archive/2014/11/12/the-roadmap-for-wpf.aspx

※ ここに関しては、私と同じチームのエバンジェリスト荒井省三さんが書かれた、これを和訳したブログエントリの方を参照してください。

https://blogs.msdn.com/b/shozoa/archive/2014/12/02/the-roadmap-for-wpf.aspx

多くの人がこれに関心があるようですが… とりあえずこのブログへのコメントをもとに言っています☺

The MyShuttle Universal Windows apps for Windows Store and Windows Phone

さて、C# ネイティブアプリのパートとして、次にお見せしたいのは Universal Windows Apps(ユニバーサル Windows アプリ) で、これも “MyShuttle.biz” シナリオのために作ったものです。ターゲットとなるのは、Windows 8.1 ストアアプリおよび Windows Phone 8.1 アプリです。

これらのユニバーサル Windows アプリは、C# を再利用して開発されており、また、以前にご紹介した PCL も再利用して開発してあります。もちろん、これらは Xamarin アプリからも共有されます。

しかし、Windows アプリはより Xamarin アプリよりも、更に類似しているので、これらに加えて、Shared プロジェクトを作成し、これらのコードを Windows ストアアプリと Windows Phone アプリで共有されるようにします。

image

Shared プロジェクトは、リンクされたプロジェクトのように、コードをシェアします。また、もちろん、Shared プロジェクトを使って C# コードを Xamarin プロジェクトとも、共有することが可能です。しかし、このデザインでは、PCL こそを最もグローバルで共通のコードとしてシェアすることにし、それにより、一つの Shared プロジェクトを使ってコードを Windows ストアアプリとの間でシェアしました。というのも、Shared プロジェクトは、ユニバーサル Windows アプリにとって典型的な共通プロジェクトだからです。もちろん、異なるアプローチも可能ではあります。

Running the Universal Windows apps (Windows Store and Windows Phone) in the emulators

もちろん、ユニバーサル Windows アプリをデバイスで稼働させることはできますが、デバイスにデプロイする前に、あるいはデバイスを持ってない場合等に、それらのアプリの稼働確認をエミュレータ上で行うことができます。

最初に、Windows ストアアプリをダイレクトにローカルマシン Windows 8.1 上で動かすよりも、エミュレータで動かしたい場合、Windows ストアアプリプロジェクトに設定をする必要があります。下記の通りで、 “シミュレータ” をターゲットデバイスに設定しています(これは実行時に変更することもできます):

image

ところで、最初にアプリを実行するとき、アプリを右クリックで一つ一つデプロイする必要があります。プロジェクトファイルの “Deploy”をクリックします:

image

そして:

image

しかし、その後に、スタートアッププロジェクトを変更すると、ユニバーサル Windows アプリを同時に異なるエミュレータで実行することができます (タブレットと Phone).

image

ここで、OK をクリックして Ctrl+F5 を押すと、Windows ストアアプリと、Windows Phone アプリが、両方のシミュレータ上で、同時に実行されます!

image

ここでのポイントは、ほとんどの C# コードが異なる Universal アプリに再利用されているのに、引き続き、フォームファクターに依存したパーソナライズされた UX を作成できる点です。それは上記の通り、レイアウトもデザインガイドラインも、Phone アプリ用のものは、通常は、 タブレットアプリ用のそれとは、大きく異なるのに、です。

しかし、もっとシンプルにしたければ、全く同一の XAML ビューを Windows Phone アプリと Windows ストアアプリ間で、再利用することができます。

例えば、XAML ビューのうち、About.xaml を Shared プロジェクト “MyShuttle.Client.UniversalApp.Shared” から開きます。Views フォルダにあります。この場合、 再利用するのは、“about Xaml page” で、それを2つのフォームファクターで共有します。もちろん、他のPage/View でも同様のことが可能です。

image

ビジュアルに、XAML ビューを編集でき、タブレットでどのように見えるか確認できます…

または、さらに進んで、選択された フォームファクターデザインモードを変更することができます。ビジュアルデザイナーの一番下の左側にあるコンボボックスで、Windows Phone フォームファクターに変更します。

image

もしこのフォームファクター選択コンボボックス(ユニバーサル Windows アプリ関連)が見つからない場合、有効にするには、下記の手順で行います。

Tools—>Options—>XML—>General—>Navigation bar (Visual Studio 2015 Preview のデフォルトでは有効になっていません).

image

そこで、Phone アプリでどのように見えるか見てみると、下記のような感じです。

image

これで、はっきりと、この XAML ビューは 二つのフォームファクターで共有されている、ということがわかります。

The MyShuttle.biz native Apps for iOS and Android powered by Xamarin, C# and Visual Studio 2015

ご存知の通り、Microsoft は、 .NET ネイティブアプリ開発を、我々の戦略的パートナーである Xamarin 社とともに大変強く推進しています。

Xamarin を使うことで、フルネイティブの iOS および Android のアプリを開発でき、そのためには、C/# のスキル再利用したり、そしてもっとも慣れているツールであり開発環境を利用できます: Visual Studio.

ここでは、“MyShuttle.biz” アプリで、C# と Xamarin で開発され、iPhone および Android スマートフォンで稼働するアプリを見れます。これらは、そのほとんどの C# クライアント側コードを共有しており、このコードは、またユニバーサル Windows アプリおよび WPF アプリからも、共宇通の PCL を介して再利用されます。

image

Xamarin installation and Configuration

1. Xamarin を Visual Studio 2015 Preview にインストールします。

Xamarin for VS 2015 Preview - download and installation (Kzu, Xamarin、これ必読です!)

This is also a good post about current Xamarin's installation on VS 2015 Preview (Brian Lagunas、これも必読です!)

(2015/1/ 9 更新) : 今日時点で、アップグレードには、Alpha チャンネルが必要で、これは Mac 版の Xamarin Studio でも、Windows の中の Visual Studio 2015 Preview の Xamarin でも同様です。それ以外のものを使うと(Stable、Beta、等)Visual Studio 2015 Preview から、Mac にある Xamarin iOS Build Host にはつながらないので、ビルドやデバッグができません。

2. Log in with you Xamarin account, from Visual Studio, before opening the MyShuttle SOLUTION. 自分の Xamarin アカウントにログオンして、iOS プロジェクトからのワーニングを受け取らないようにすると、Visual Studio 起動プロセス時のプロジェクトもスローダウンしないです。でなければ、このように後程設定しておいてください。

まず、Visual Studio –>Tools—> Xamarin Account をポイントします。

image

image

Xamarin の Business アカウントを持っていれば、下記のようなダイアログが、ログオン後に現れるはずです :

image

3. VS Solution with Xamarin projects

01_Demos_NativeApps.sln. を開いてください。どんな Xamarin プロジェクトでも、iOS 版を含む場合には、下記のようなダイアログが出て、iOS build host (Xamarin がインストールされて Xamarin build host が稼働中)への接続を求められます。もし iOS 版をインストールしてなければ、このダイアログをキャンセルし、Android プロジェクトは作れますので、そちらを作成してください。

image

4. Set the apps custom configuration up (Within the Shared PCL)

Xamarin アプリからサービスを利用するように設定するには、PCL を変更する必要があります。ここはこのブログエントリの以前のセクションで解説済みです(“Setting up the PCL project”).

Xamarin templates for Visual Studio

プロジェクト詳細を見る前に、Visual Studio のXamarin テンプレートで、 iOS および Android アプリを開発できるものを見てみましょう。

Visual Studio 2015 Preview 内の Xamarin インストール後の iOS プロジェクトテンプレート(C#)

image

Visual Studio 2015 Preview 内の Xamarin インストール後の Android プロジェクトテンプレート(C#)

image

MyShuttle.biz ソリューションの中では、2つの Xamarin プロジェクトがあります。一つは、 iOS 用で、もう一つは、Android 用です。いずれも C# で開発されています。

image

もう一度言うと、両方のプロジェクトは、同一の C# ロジックを再利用しています。そのロジックは、同時に Windows アプリから再利用されています。置き場所は、 PCL ライブラリの中で、多くの操作、ViewModels などは MVVMCross フレームワークと、Service-Agents に基づいています。

Intellisense in Xamarin projects

もちろん、Visual Studio および C# を使っている以上、期待できることは同じです。開発時にすべての Visual Studio のリッチな機能、例えば intellisense も使用できます。 モバイルデバイスに関連するクラスやコードについてさえ、例えばここでは、Android のカメラまたは他のハードウェアで Android の特徴づけているものでも、当該ネームスペースをタイプすると、どんな C# ファイルでも、Xamarin Android プロジェクトでは、このように操作できるのです。

image

Xamarin Designers in Visual Studio, for iOS and Android views

Xamarin はVisual Studio の拡張として、ランタイムとプログラミングレベルだけでなく、生産性向上ツールとしての Visual designers for iOS および Android App Views を持っています。

例えば、ここでは、Android Views designer または iOS designer があり、ここで簡単かつビジュアルに自分の iOS アプリの Storyboard を利用できます。

1. iOS Storyboard view: Open the MyShuttle.Client.iOS project root --> Storyboard.storyboard ファイル

image

この iOS Designer for StoryBoards は、Xamarin 3 から搭載されたものです。強調すべきなのは、このスクリーンは、リモートホストの Mac で、Xamarin build Agent によりレンダリングされて、それを Visual Studio が受診して、WYSIWYG で表示しているのもです。iOS designer を使うことで、コントロールをドラッグアンドドロップして、最高の生産性を iOS 開発にもたらします。

NOTE:前述した通り、iOS Storyboard をレンダリングするためには、Visual Studio が Mac に接続している必要があります。当該 Mac 上では Xamarin Build Host エージェントが実行され稼働している必要があります。Xamarin iOS projects について詳細はこちらをご参照ください :

Introduction to Xamarin.iOS for Visual Studio

iOS User Interface design in Visual Studio and Xamarin Studio

2. Android view: Android project を開く --> Resources --> Layout --> VehicleDetailView.axml

image

Android Views は、レンダリング、編集、ともに、ダイレクトに Visual Studio から可能で、他の機器への接続は不要です。

Microsoft Visual Studio Android Emulator

これらのデザイナーツールは大変便利ですが、デザイナーだけでは、不十分です。真に必要なのは、迅速な開発と実行の環境が、アプリ実行時に体験できることです。そのため、マイクロソフトは、Microsoft Visual Studio Android Emulator をリリースし、Visual Studio 2015 Preview からバンドルすることにしました。

image

これは x86 ベースのイメージが Hyper-V で実行され、Windows マシンでの実行に最適化されています。したがって、Windows から Android アプリにスイッチするときにリブート等もいらないです。アプリを実行でき、デバッグでき、その他すべて可能です。実機の Android device でデバッグしているのと同じです。

Disable Fast Deployment of Android Project when deploying to VS Android Emulator

現在のバージョンの Microsoft Visual Studio Android Emulator と Xamarin (VS 2015 Preview の時点、2014年12月あたり)では、Microsoft Android Emulator を Xamarin プロジェクトで動かすためには 、“Use Fast Deployment” というチェックをオフにしておく必要があります。これは、Xamarin-Android Project のプロパティの、Android Options タブにあります:

image

これを行った後、Android Project を Microsoft Android Emulator でデバッグ、またはこれにデプロイすると、ちゃんと動きます。

Wrap up about C# cross-platform development, .NET and Xamarin

ネイティブアプリの Xamarin による開発は、Objective-CSwift による iOS 開発や、Java による Android 開発でできることならどんなことでも、同じように Visual Studio と、C# 、および Xamarin で可能です。

このブログエントリで見て戴いた通り, C# は非常にユニークなアプローチで、クロスプラットフォームのモバイルネイティブアプリ開発が、Windows (デスクトップアプリ、Windows ストアアプリ、Windows Phone アプリ) では .NET で、iOS および Android では Xamarinを使って、可能です。しかし、ここで重要なのは、C# および Visual Studio を使っていて、同じスキルを再利用して、同じ使い慣れた開発環境査さえ使って、異なる OS プラットフォームのネイティブアプリ開発ができる、という点です!

ダウンロードはこちらから!

Download page from MSDN Samples

鈴木章太郎