Xamarin共有プロジェクトとポータブルクラスライブラリの正確な違いは何ですか?
共有ライブラリを使用する場合とポータブルクラスライブラリを使用する場合
これは、アラートの表示、カメラへのアクセスなどの共有プロジェクトでネイティブ機能を記述し、AndroidとiOSの両方で使用できますか?
誰か説明してもらえますか?.
#if
コンパイラ指令を使用して、プラットフォーム固有のコードを含めることができます。カメラにアクセスする場合は、すべての宛先プラットフォームの#if
ブロック内にアクセスコードを記述する必要があります。これはコードを台無しにする可能性がありますが、さまざまな実装を見つけるのは簡単です。詳細: http://developer.xamarin.com/guides/cross-platform/application_fundamentals/shared_projects/System.Net.Http
にはアクセスできますが、プラットフォーム固有のコードにはアクセスできません。 PCLコード内のカメラにアクセスする場合は、依存性注入を介して一般化されたインターフェイスからカメラにアクセスする必要があります。この目標を達成するのに役立つかなり優れたフレームワークがいくつかあります。最も有名なものの1つはMVVMCross( https://github.com/MvvmCross/MvvmCross/wiki )です。 PCLの詳細: http://developer.xamarin.com/guides/cross-platform/application_fundamentals/building_cross_platform_applications/sharing_code_options/#Portable_Class_Librariesコンパイラ指令がなくてもコードがはるかに読みやすいので、私は個人的にPCLを好みます。 MVVMCrossを使用すると、NuGetを介して多くのプラグインを使用できます。したがって、カメラへのアクセスやアラートの表示などのために独自のクラスを作成する必要はありません。