Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon MVVMCrossとXamarin.Formsの使用の主な違いは何ですか


MVVMCrossとXamarin.Formsの使用の主な違いは何ですか


MVVMCrossとXamarin.Formsは、クロスプラットフォームモバイルアプリ開発で使用される2つの異なるテクノロジーであり、それぞれが異なる目的を果たし、独自の利点を提供します。

Xamarin.Formsの概要

Xamarin.FormsはMicrosoftが開発したフレームワークであり、開発者はユーザーインターフェイスに共有C#コードベースとXAMLを使用してクロスプラットフォームアプリケーションを作成できます。開発者は、iOS、Android、UWPなどの複数のプラットフォームで1回書き込み、実行できます。 Xamarin.Formsは、プラットフォーム間で一貫したUIが望まれるプロジェクトに最適であり、UIコンポーネントに統一されたAPIを提供することにより、開発プロセスを簡素化します。ただし、UIは各プラットフォームの共通要素のサブセットに限定されているため、この一貫性は柔軟性のコストでもたらされます。

mvvmcrossの概要

MVVMCrossは、Xamarin.ios、Xamarin.Android、Xamarin.Forms、およびその他のプラットフォームをサポートするクロスプラットフォームMVVM(Model-View-ViewModel)フレームワークです。これは、ビジネスロジックをUIから分離することに焦点を当てており、開発者が異なるプラットフォームでコードの大部分を共有できるようにします。 MVVMCrossは、複雑なアプリケーションの開発を促進するデータバインディング、ナビゲーション、コントロールの反転、依存性噴射などの機能を提供します。 Xamarin.Formsとは異なり、MVVMCrossは特定のUIフレームワークを実施しません。代わりに、開発者は各プラットフォームにUIを実装する方法を選択し、ネイティブのUIエクスペリエンスを実現する柔軟性を提供できます[7] [10]。

##キーの違い

1。UI実装:
-Xamarin.Forms:プラットフォーム間で共有UIレイヤーを使用します。これにより、開発が簡素化されますが、カスタマイズとネイティブのルックアンドフィールを制限する場合があります。
-MVVMCross:各プラットフォームでのネイティブUI実装またはXamarin.FormsとUIを共有することを可能にし、プラットフォーム固有のUIデザインを実現する柔軟性を提供します。

2。コード共有:
- 両方のフレームワークがコード共有を有効にしますが、MVVMCrossは、異なるUI実装を許可しながら、ビジネスロジック(ViewModels)の共有に焦点を当てています。 Xamarin.Formsは、UIとビジネスロジックの両方を共有しています。

3。ナビゲーションとデータの拘束力:
-MVVMCrossは、Xamarin.Formsを含むさまざまなUIフレームワークで機能する堅牢なナビゲーションシステムとデータバインディング機能を提供します。 Xamarin.Formsは、独自のナビゲーションとデータ結合メカニズムに依存しています。

4。プロジェクトの複雑さ:
- 高度なUIのカスタマイズまたはプラットフォーム固有の機能を必要とする複雑なプロジェクトの場合、MVVMCrossは柔軟性のためにより適している可能性があります。一貫したUIで十分なより単純なプロジェクトの場合、Xamarin.Formsは実装しやすくなります。

5。開発アプローチ:
-XAMARIN.FORMSは、統一された開発体験を提供するため、XAMLと.NETに精通した開発者がしばしば好むことがよくあります。 MVVMCrossは、ビジネスロジックをUIから切り離す必要があるプロジェクトに有益であり、各プラットフォームでのUI実装をさらに制御できるようにします。

要約すると、両方のフレームワークがクロスプラットフォーム開発をサポートしていますが、Xamarin.Formsはプラットフォーム間でUIレイヤーの共有に焦点を当てていますが、MVVMCrossはビジネスロジックの共有を強調し、より柔軟なUI実装の選択肢を可能にします。それらの選択は、UIのカスタマイズ、複雑さ、およびコード共有戦略に関するプロジェクトの要件に依存します。

引用:
[1] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[2] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks
[3] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-version
[4] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
[5] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[6] https://canbilgin.wordpress.com/tag/mvvmcross/
[7] https://www.mvvmcross.com/documentation/getting-started/getting-started
[8] https://www.reddit.com/r/csharp/comments/a9mph1/mvc_or_mvvm_for_xamarin/
[9] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/
[10] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/