web-dev-qa-db-ja.com

Xamarin.FormsとXamarin Cross Platformの違い

私はXamarin Environmentを2年間使用しており、主にXamarin.Formsを使用しました。しかし、まだ、Xamarin Cross Platformが何なのかわかりません。誰でも構造的な違いを提供できますか?

17
Mr Hery

Xamarinには、Xamarin.FormsとXamarin.Nativeの2つのモバイルアプリケーション構築方法があります。どちらの方法でも、クロスプラットフォームでコードを書くことができます。

クロスプラットフォームは単なる概念です。つまり、一度記述するコードは複数のプラットフォームで実行できます。 Xamarinはクロスプラットフォーム(主にXamarin.Forms)です。複数の(クロス)プラットフォームで実行されるコードを作成できるためです。

4
jzeferino

Xamarinについて話すとき、ネイティブアプリの開発には2つのアプローチがあります。

  • 従来のXamarinアプローチ
  • Xamarin.Forms

Xamarin Webサイトからの引用があります

どこでもコードを共有します。同じ言語、API、およびデータ構造を使用して、すべてのモバイル開発プラットフォームでアプリコードの平均75%を共有します。 Xamarin.Formsを使用してユーザーインターフェイスを構築し、ほぼ100%を共有します。

重要な注意点は、これらの数値はプロジェクトごとに異なる可能性があるため、これはXamarinの一般的な使用法の前提です

そして、以下の画像からわかるように、これらの2つのアプローチの「違い」についてです。従来のXamarinアプローチ(Xamarin.iOSおよびXamarin.Android)は、どちらも.NET FrameworkのオープンソースバージョンであるMonoの上に構築されています。これらのアプリを開発するには、C#を使用します。以下の画像およびXamarinからの引用からわかるように、コードベースの最大75%を共有する機会があります。

enter image description here

Xamarin Traditionalアプローチを使用すると、C#をプログラミング言語として使用して、モデルの作成、Webサービスの呼び出しなどを行うことができます。そのため、そのコードロジックを1回作成し、 Xamarin.AndroidおよびXamarin.iOSプロジェクト、およびこれらの個別のプロジェクトでは、そのプラットフォームに固有のコードを記述しており、それらのAPIにアクセスできます。

また、従来のアプローチに関するXamarinからの引用もあります。

Objective-C、Swift、またはJavaでできることはすべて、Visual Studioを使用してXamarinでC#で実行できます。

Xamarinの従来のプロジェクト構造は次のようになります。 enter image description here

  • Shared code project:他のプロジェクトで一般的で再利用可能なコードベース。
  • Xamarin.Android:Android固有のAPIを使用してコードを記述しているAndroidアプリのプロジェクト、UIコードの記述など。
  • Xamarin.iOS:iOS固有のAPIを使用してコードを記述したり、UIコードを記述したりするiOSアプリのプロジェクト.

従来のXamarinに関する詳細情報 こちら

Xamarin.Formsについては、Xamarin Webサイトからの引用が最適です:

Xamarin.Formsは、開発者がクロスプラットフォームのユーザーインターフェイスを迅速に作成できるようにするフレームワークです。 iOS、Android、Windows、またはWindows Phoneのネイティブコントロールを使用してレンダリングされるユーザーインターフェイスの独自の抽象化を提供します。これは、アプリケーションがユーザーインターフェイスコードの大部分を共有し、ターゲットプラットフォームのネイティブルックアンドフィールを保持できることを意味します。

上記のテキストから結論できるように、Xamarin.Formsは、MVVMを使用する機会があるC#またはXAMLを使用してUIを記述できるフレームワークです。Xamarin.Formsを使用すると、コードベースとUIプラットフォーム間で共有されます。

enter image description here

注:これは非常に単純なプロジェクト構造です。もちろん、さまざまなレイヤーにプロジェクトを追加できます

  • 共有コードプロジェクト:共通のコードベースを保持し、Xamarin.Formsを使用しているため、UIのコードを記述できます
  • Xamarin.iOSおよびXamarin.Android:その特定のプラットフォーム用のコード、およびカスタムレンダラーや依存関係サービスなどの高度なトピック。

もちろん、Xamarin.Formsをそのまま使用する場合、すべてのプラットフォームに共通のUIコントロールのみを使用できる場合、いくつかの制限があります。 Xamarin.Formsの長所と短所に関する私のブログ投稿を読むことができます here

Xamarin.Formsの詳細 here

この答えがあなたにとって混乱しないこと、そして1つまたは2つの文の結論になることを願っています...Xamarinを使用して、従来のコードロジックプラットフォーム固有のプロジェクト間で、Xamarin.Formsを使用すると、コードロジックとUIのコードを共有できますあなたのプロジェクト。

注:共有プロジェクトとコード共有戦略では、「共有プロジェクト」と「PCL」を使用できます。これは別の質問のトピックです...この回答では、これを簡素化し、そのタイプに共有プロジェクト用語を使用しましたXamarinアプリソリューションのプロジェクトの。

49
Almir Vuk

Xamarin.iOSおよびXamarin.AndroidXamarin Native)について話している場合、主な違いはXamarin Forms、共有NOT ONLYビジネスロジックだけでなく、[〜#〜] ui [〜#〜]Xamarin formsでは、すべてのプラットフォーム(ボタン、ラベルなど)で基本的なコンポーネントを使用します。基本的なフォームに適しているため、Xamarin.Formsと呼ばれるのはこのためです。

しかし、Xamarin Nativeの場合、プラットフォームごとに[〜#〜] ui [〜#〜]を作成します(iOS用、Android用)。ネイティブコンポーネントを使用するため、Xamarin Nativeでさらに多くのことができます。

それが役に立てば幸い!

13
mindOfAi

Xamarin Cross Platformは、Xamarin.AndroidやXamarin.IOSなどのさまざまなプラットフォームで使用できるように、最終的にネイティブプラットフォームにコンパイルされるように、共有コード(PCLまたはShared Project)をコンパイルする技術を指すと思います。

Xamarin.Formsは、Xamarin Cross Platform Technologyを使用して統合できるクロスプラットフォーム互換コードを構築するために使用するツールの1つであると言えますか?

0
Ada Frank