同じプロジェクトでPlugin.bleとmvvmcross.plugin.bleの両方を使用することは技術的に可能ですが、最も効率的または推奨されるアプローチではないかもしれません。その理由は次のとおりです。
1。目的と機能性:
-Plugin.bleは、Bluetooth Low Energy(BLE)機能にアクセスするために設計されたクロスプラットフォームプラグインです。 MVVMアーキテクチャやMVVMCrossが提供する追加機能を必要としないプロジェクトに適しています。
-mvvmcross.plugin.bleは、一方、MVVMCrossフレームワークを使用したプロジェクト向けに特別に設計されています。 BLE機能をMVVMアーキテクチャに統合し、依存噴射やその他のMVVMCross機能を可能にします。
2。依存関係とオーバーラップ:
-mvvmcross.plugin.bleは実際にはplugin.bleを内部的に参照してください。これは、mvvmcross.plugin.bleを使用する場合、Plugin.bleも間接的に使用していることを意味します。ただし、両方を明示的に使用すると、不必要な複雑さと潜在的な競合につながる可能性があります。
3。使用法と統合:
- プロジェクトがMVVMCrossを使用して構築されている場合、MVVMCross.Plugin.bleを使用すると、MVVMパターンとうまく統合され、依存関係噴射が可能になるため、より簡単です。 MVVMCrossのIOCコンテナを使用して、IbluetoothleおよびIadapterサービスを解決できます。
- よりシンプルな非MVVMアプローチを希望する場合、プラグイン.bleで十分かもしれません。ただし、両方を使用することにした場合は、競合を回避するために、インスタンスと機能を慎重に管理していることを確認してください。
4。潜在的な問題:
- 両方のプラグインを使用すると、インスタンスの管理とBLE操作の処理が混乱する可能性があります。複数のアダプターまたはBLEサービスが実行されている可能性があります。これにより、予期しない動作やエラーが発生する可能性があります。
5。推奨事項:
- プロジェクトがMVVMCrossを使用している場合は、MVVMCross.plugin.bleに固執して、統合の一貫性と容易さを固めます。
- プロジェクトがMVVMCrossを使用していない場合、Plagin.bleはより簡単な選択肢です。
- 組み合わせた使用を必要とする特定の要件がない限り、両方を使用しないようにし、統合を慎重に処理することを確認してください。
要約すると、同じプロジェクトで両方のプラグインを使用することは技術的には可能ですが、説得力のある理由がない限り、一般的に推奨されません。選択は、プロジェクトのアーキテクチャと特定のニーズに基づいている必要があります。
引用:[1] https://learn.microsoft.com/en-us/answers/questions/1518375/which-package-should-iutilize-for-bluetooth-low-e
[2] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[3] https://www.nuget.org/packages/mvvmcross.plugin.ble/
[4] https://forum.ionicframework.com/t/both-bluetoothle-plugins-seem-not-to-bo-loaded-at-all/176776
[5] https://www.nuget.org/packages/mvvmcross.plugin.ble/2.2.0-pre5
[6] https://www.npmjs.com/package/cordova-plugin-bluetoothle
[7] https://github.com/mrozema/xamarin-bluetooth-le
[8] https://community.qlik.com/t5/qlikview-app-dev/multiple-versions-of-similar-data-for-all-tables-in-data-model/td-p/468796
[9] https://stackoverflow.com/questions/38327176/xamarin-forms-plugins-ble-mvvcross-plugins-ble