【Xamarin】AndroidのMobile用とWear用プロジェクト間でソースコードを共有する方法

By | Date : 2018/02/27 ( Last Update : 2018/02/28 ) | 63 views

 

こんにちはー、ニアです!

今回はXamarinネタで、AndroidのMobile用とWear用のプロジェクト間でソースコードを共有させてみたお話です。

MobileとWearアプリのハイブリッド開発が捗るかも!

 

1. Mobile用とWear用の両プロジェクトから参照できるソースコードを構成する

Visual Studioの共有プロジェクトを利用して、Mobile用とWear用の両プロジェクトから参照できるようにします。

イメージとしては、Visual Studio 2013にあった、Windows 8.1&Windows Phone 8.1のユニバーサルアプリのプロジェクト構成です。

Build a Universal Windows 8 app – Microsoft Docs

 

1.1. プロジェクトを作る

Visual Studioを起動し、新しいプロジェクトを作成ダイアログを開きます。まずは、「共有プロジェクト」を作成します。

共有プロジェクトを作成したら、ソリューションエクスプローラーのソリューション名を右クリックし、「追加」>「新しいプロジェクト」を選択します。

次は、「空のアプリ(Android)」を選択してMobleアプリ用のプロジェクトを作成します。

名前は「【共有プロジェクト名】.Mobile」のような形式にすると管理しやすいですよ。

同様の手順で、今度は「Wear アプリ(Android)」を選択してWearアプリ用のプロジェクトを作成します。

プロジェクト名を「Xamarin」とか「Wear」とかにすると、プロジェクトテンプレートのエクスポート機能を使った時、プロジェクトファイルにバグが発生するから気を付けてね!

 

以上の手順で、以下の3つプロジェクトがソリューション内に追加されていればOKです。

  • 共有プロジェクト
  • Mobile用プロジェクト
  • Wear用プロジェクト

 

2. 共有プロジェクトにコードを追加

共有プロジェクトにコードを追加してみましょう。

ソリューションエクスプローラー寧の共有プロジェクトを右クリックし、「追加」>「クラス」を選択します。

クラス」を選択して、ソースファイルを作成します。

 

3. 共有プロジェクトを参照に追加

Mobile用・Wear用のプロジェクトから共有プロジェクトのソースコードを利用するには、共有プロジェクトを参照に追加する必要があります。

なおSample.Mobile名前空間内では、Sample名前空間にあるコードを参照できます。

 

ソリューションエクスプローラー内のMobile用プロジェクトにある「参照」を右クリックし、「参照の追加」を選択します。

左側のツリーから「共有プロジェクト」を選択し、中央のリストにある共有プロジェクトにチェック入れて、OKボタンを押します。

これで、Mobile用プロジェクトは共有プロジェクトのソースコードを利用できるようになりました。

Wear用プロジェクトも同様の手順で、共有プロジェクトを参照に追加します。

 

これで、Mobile用とWear用プロジェクトでソースコードを共有することができました!

 

GitHubにサンプルソースファイルを置いておきました。

https://github.com/Nia-TN1012/Sample.Android.Mobile.Wear

 

3. FAQ

3.1. アセットやリソースファイルは共有できる?

残念ながら、できないみたい。

 

共有プロジェクトで対応するビルドアクションにAndroid用の設定(AndroidAssetやAndroidResource)がないので、そこにアセットなどを入れても、Android用のアセットやリソースとして認識されないのです。

 

3.2. Visual Studio for Macでも動かせる?

動かせますよ!

 

3.3. 共有コード内で、Wear用の固有のコードを書きたい!

Wear用のプロジェクトに条件付きコンパイルシンボルを定義することで実現できます!

 

Wear用のプロジェクトのプロパティを開き、左側のリストから「ビルド」を選択します。

構成から「すべての構成」を選択し、条件付きコンパイルシンボルに「ANDROID_WEAR_APP」と入力して保存します。

これで、共有プロジェクト側は#ifディレクティブを使って、Wearプロジェクト固有のコードを記述できます。

 

4. 次回: ニア、テンプレート作りに悪戦苦闘

次回は、そのプロジェクトのテンプレートを作成した時のお話を送りしたいと思います。

作成方法の他、苦労したことや便利な機能などを色々紹介します。

 

それでは、See you next!

 

 

Watch Faceとコンパニオンアプリもこの方法でいけそう・・・?

 

この記事をシェアする
Chronoir.netのRSSフィードを購読する

About : ニア(Nia)

紅茶とコーヒーが好きな湘南生まれのプログラマー/ITエンジニアです。主にC#/C++/PHPを使ってプログラミングをしています。趣味は写真撮影と音ゲーです。時々イラストを描いています。プログラミングを勉強している方々と仲良くなりたいです! 興味を持っている分野:UWP/Xamarin/Android Wear/WPF/Windows/Visual Studio/WordPress/KUSANAGI/nginx

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.