私はXamarin Environmentを2年間使用しており、主にXamarin.Formsを使用しました。しかし、まだ、Xamarin Cross Platformが何なのかわかりません。誰でも構造的な違いを提供できますか?
Xamarinには、Xamarin.FormsとXamarin.Nativeの2つのモバイルアプリケーション構築方法があります。どちらの方法でも、クロスプラットフォームでコードを書くことができます。
クロスプラットフォームは単なる概念です。つまり、一度記述するコードは複数のプラットフォームで実行できます。 Xamarinはクロスプラットフォーム(主にXamarin.Forms)です。複数の(クロス)プラットフォームで実行されるコードを作成できるためです。
Xamarinについて話すとき、ネイティブアプリの開発には2つのアプローチがあります。
Xamarin Webサイトからの引用があります
どこでもコードを共有します。同じ言語、API、およびデータ構造を使用して、すべてのモバイル開発プラットフォームでアプリコードの平均75%を共有します。 Xamarin.Formsを使用してユーザーインターフェイスを構築し、ほぼ100%を共有します。
重要な注意点は、これらの数値はプロジェクトごとに異なる可能性があるため、これはXamarinの一般的な使用法の前提です
そして、以下の画像からわかるように、これらの2つのアプローチの「違い」についてです。従来のXamarinアプローチ(Xamarin.iOSおよびXamarin.Android)は、どちらも.NET FrameworkのオープンソースバージョンであるMonoの上に構築されています。これらのアプリを開発するには、C#を使用します。以下の画像およびXamarinからの引用からわかるように、コードベースの最大75%を共有する機会があります。
Xamarin Traditionalアプローチを使用すると、C#をプログラミング言語として使用して、モデルの作成、Webサービスの呼び出しなどを行うことができます。そのため、そのコードロジックを1回作成し、 Xamarin.AndroidおよびXamarin.iOSプロジェクト、およびこれらの個別のプロジェクトでは、そのプラットフォームに固有のコードを記述しており、それらのAPIにアクセスできます。
また、従来のアプローチに関するXamarinからの引用もあります。
Objective-C、Swift、またはJavaでできることはすべて、Visual Studioを使用してXamarinでC#で実行できます。
Xamarinの従来のプロジェクト構造は次のようになります。
従来のXamarinに関する詳細情報 こちら 。
Xamarin.Formsについては、Xamarin Webサイトからの引用が最適です:
Xamarin.Formsは、開発者がクロスプラットフォームのユーザーインターフェイスを迅速に作成できるようにするフレームワークです。 iOS、Android、Windows、またはWindows Phoneのネイティブコントロールを使用してレンダリングされるユーザーインターフェイスの独自の抽象化を提供します。これは、アプリケーションがユーザーインターフェイスコードの大部分を共有し、ターゲットプラットフォームのネイティブルックアンドフィールを保持できることを意味します。
上記のテキストから結論できるように、Xamarin.Formsは、MVVMを使用する機会があるC#またはXAMLを使用してUIを記述できるフレームワークです。Xamarin.Formsを使用すると、コードベースとUIプラットフォーム間で共有されます。
注:これは非常に単純なプロジェクト構造です。もちろん、さまざまなレイヤーにプロジェクトを追加できます
もちろん、Xamarin.Formsをそのまま使用する場合、すべてのプラットフォームに共通のUIコントロールのみを使用できる場合、いくつかの制限があります。 Xamarin.Formsの長所と短所に関する私のブログ投稿を読むことができます here 。
Xamarin.Formsの詳細 here 。
この答えがあなたにとって混乱しないこと、そして1つまたは2つの文の結論になることを願っています...Xamarinを使用して、従来のコードロジックプラットフォーム固有のプロジェクト間で、Xamarin.Formsを使用すると、コードロジックとUIのコードを共有できますあなたのプロジェクト。
注:共有プロジェクトとコード共有戦略では、「共有プロジェクト」と「PCL」を使用できます。これは別の質問のトピックです...この回答では、これを簡素化し、そのタイプに共有プロジェクト用語を使用しましたXamarinアプリソリューションのプロジェクトの。
Xamarin.iOSおよびXamarin.Android(Xamarin Native)について話している場合、主な違いはXamarin Forms、共有NOT ONLYビジネスロジックだけでなく、[〜#〜] ui [〜#〜]。 Xamarin formsでは、すべてのプラットフォーム(ボタン、ラベルなど)で基本的なコンポーネントを使用します。基本的なフォームに適しているため、Xamarin.Formsと呼ばれるのはこのためです。
しかし、Xamarin Nativeの場合、プラットフォームごとに[〜#〜] ui [〜#〜]を作成します(iOS用、Android用)。ネイティブコンポーネントを使用するため、Xamarin Nativeでさらに多くのことができます。
それが役に立てば幸い!
Xamarin Cross Platformは、Xamarin.AndroidやXamarin.IOSなどのさまざまなプラットフォームで使用できるように、最終的にネイティブプラットフォームにコンパイルされるように、共有コード(PCLまたはShared Project)をコンパイルする技術を指すと思います。
Xamarin.Formsは、Xamarin Cross Platform Technologyを使用して統合できるクロスプラットフォーム互換コードを構築するために使用するツールの1つであると言えますか?