以下、共有ライブラリは共有プロジェクトと表記します。
コードの共有方法には2パターンあり、プロジェクトの作成時にどちらか1つだけ選択できます。
共有プロジェクト
共有プロジェクトはライブラリではありません。VisualStudioの機能です。
一般的なプロジェクトと役割が違います。
通常、プロジェクト単位でdll,exeなどの実行モジュールが作られます。しかし共有プロジェクトは実行モジュールを生成しません。単にソースコードの置き場でしかありません。
●ビルド時のイメージ:
ビルドすると、共有プロジェクト内のコードが.Androidにコピーされてからビルドされる。(.iOSも同じ)
(→ソースコードを共有する)
●特徴
#ifディレクティブで囲めばプラットフォーム依存のコードが書ける。
しかし、#ifディレクティブは増えると読みづらくなっていく。
ポータブルクラスライブラリ(PCL)
PCL(Portable Class Library)とも呼ばれます。
プロジェクトの種類で、クラスライブラリです。
クラスライブラリとはDLLのことで、Javaでの.jarファイル、Xcodeでの.aファイルにあたります。プラットフォーム(Android、iOS)に依存しない部分のみを記述するため、ポータブルな(移植可能な)ライブラリになります。
ビルドして生成されるdll自体が移植可能なものとなる。
●ビルドすると:
クラスライブラリなので、ビルドするとdllが生成されます。
(→dllを共有する)
●特徴
完全に独立している。
どのプラットフォーム上でも使える。
dllだけで使える。
ただし、プラットフォーム固有の処理は書けない。
以下の書籍を参考にしました。
【無料お試し版】Xamarinネイティブによるモバイルアプリ開発 C#によるAndroid/iOS UI制御の基礎
- 作者: 青柳臣一
- 出版社/メーカー: 翔泳社
- 発売日: 2017/10/16
- メディア: Kindle版
- この商品を含むブログを見る
PCLのほうが使い勝手が良さそうだが…(´・ω・`)