noxi雑記

.NET、Angularまわりの小ネタブログ

Riderで始めるXamarin.Forms

はじめに

C#Android/iOSアプリの開発が出来るXamarin。開発するにはWindowsではVisual StudiomacOSではVisual Studio for Macを利用するのが手っ取り早いのです。しかしながらVS for Macは、JetBrains系に慣れ親しんでしまった筆者にはどうにも使いづらいため、Riderを使用してmacOSでXamarin.Formsアプリを開発する方法を紹介します。

作ってみる

環境

  • macOS 10.13
  • Rider 2017.3

プロジェクト作成

まずはRiderを起動し、Xamarin.Formsの新規プロジェクトを作成します。

f:id:noxi515:20180304182248p:plain

左ペインからXamarin Applicationを選択し、画像の通り作成します。

種別
Platform Multiplatform
Type Xamarin.Forms
Shared Code Portable Class Library
Framwork .Net Portable 4.6
Profile Profile151

この設定で作成すると、iOS/Androidプラットフォーム用のプロジェクトと共通コードを書くプロジェクトが生成されます。

f:id:noxi515:20180304183041p:plain

ライブラリプロジェクトの.NET Standard化

Shared Codeで選択したPCL(Portable Class Library)は.NETのコードを複数の異なる環境(例えばWindowsアプリ、Windows Phone、Windows 8アプリ)で共有するためのプロジェクト種別です。Profileによって何をターゲットにするのかを選択し、使用出来るAPIが最大公約数的に変化します。近年は異なる環境向けのライブラリを作成するにはPCLではなく.NET Standardという種別を利用するのが普通でXamarin.Formsも2.4から.NET Standard 2.0に対応したため、ここでもPCLから.NET Standardへ共通コードを書くライブラリプロジェクトを差し替えます。
ちなみにVisual StudioでXamarin.Formsプロジェクトを作成すると、最初からPCLではなく.NET Standardで生成されます。

App1ライブラリプロジェクトの削除

f:id:noxi515:20180304184215p:plain

ソリューションエクスプローラー上からApp1プロジェクトを削除します。App1に元々含まれていたファイルは後で利用する為、App1ディレクトリをApp1_PCLへリネームします。

f:id:noxi515:20180304184451p:plain

App1ライブラリプロジェクトの再作成

ソリューションを右クリックして新規プロジェクト作成画面を開きます。

f:id:noxi515:20180304185050p:plain

左ペインから.NET Core > Class Libraryを選択して、App1という名前でプロジェクトを作成します。

プロジェクトファイルの移動

先の手順でApp1_PCLへリネームしたディレクトリから、 App1.xaml App1.xaml.cs App1Page.xaml App1Page.xaml.cs を新しく作成したApp1プロジェクトへ異動します。またプロジェクト作成時に同時に作成されるClass1.csファイルは削除します。

f:id:noxi515:20180304185701p:plain

Nuget参照の追加

ソリューションからNuget画面を開き、App1、App1.Droid、App1.iOS全てについて、Xamarin.Forms 2.5.xを参照として追加します。

f:id:noxi515:20180304190718p:plain

iOSアプリの起動

iOSプロジェクトを右クリックして実行すると、Xamarin.Formsアプリが起動します。

f:id:noxi515:20180304191145p:plain

まとめ

Riderを使用してXamarin.Formsを作成すること自体は簡単にできますが、Riderに同封されているプロジェクトテンプレートが古めかしいのが難点です。RiderはXAMLのライブプレビュー等も非対応で「とりあえず作れる」程度なので、Visual StudioWindows版。CommunityでOK。)が使える環境があるのならVisual Studioを利用する方をお勧めします。なんとまとまりの無い。。。