2016-04-08 5 views
0

私は現在Xamarinプロジェクトに取り組んでおり、いくつかの調査の後、クロスプラットフォームUIの仕組みについて混乱しています。Xamarin - 各プラットフォームのさまざまなビュー

のは、3次スマートフォンを見てみましょう:

  1. サムスンギャラクシーS5
  2. iPhone 6マイクロソフト
  3. Lumia 640 LTE

三電話コントロールの3つの異なる種類で。サムスンは底に3つのボタンを持っていますが、iPhoneはただ1つのボタンを持っています。 Microsoftの携帯電話にはSamsungのような3つのボタンがありますが、それらは異なっています。だから私は混乱している。

tutorialのようなチュートリアルに示されているクロスプラットフォームデザインは、共有デザインを示しています。

しかし私の目標は、各プラットフォームで同じインターフェースを作ることではありません。私はこれに似ているarticleを見ました。私たちは、同じアプリケーションのロジックを持っていますが、デザインがためにプラットフォーム

Example app screenshots に依存:アンドロイド、iOSとWindows Phoneの

は今、ここにXamarin

Xamarin app topology

によって提案されたアプリのアーキテクチャです

プラットフォームごとに異なるデザインを実現するには、共有プロジェクトに「Forms Xaml Page」を作成するのではなく、3つの異なるページ(プラットフォームごとに1つ)を作成する必要があります。しかし、私はどのようにこれを達成することができないのか分かりません。私は3種類のインターフェースを作る場合、どのように私はアプリが実行されているプラ​​ットフォームに固有のものを読み込むことができ、そう

LoadApplication(new App()); 

:打ち上げで

は、各アプリは、次のコード行を実行しますか?

MVCパターンを使用する場合(私はMVVMについて知っていますが、現時点では理解していません)、コントローラごとに3つの異なるビューを作成し、モデル/データ/モータのみを共有します。 (MVC - > 1M/3V/3C)。

答えて

2

Xamarin.Formsを使用すると、Forms APIを使用してアプリケーションロジックと潜在的にすべてのUIコードを共有しています。これは、すべてのプラットフォームでアプリのインターフェイスがかなり似ていることを意味します。

フォーム以外のアプローチでは、アプリケーションロジックを共有し、UIコードはプラットフォーム固有のプロジェクトに入り、プラットフォーム固有のAPIを使用できます。

要件を読んで、Formsを使用するのではなく、Xamarinとコードを共有する非フォームベースのアプローチを検討することをお勧めします。

samplecase studyの他にも、これを使い始めるには良いものがあります。guides

2

プラットフォーム固有のUIを持つクロスプラットフォームプロジェクトの良いアプローチは、MvvmCrossまたは同様のライブラリを使用することです。

TipCalc-Projectは、ポータブルクラスライブラリ(PCL)を介してビジネスロジックを共有し、MVVMパターン(Model View ViewModel)を使用するサンプルアプリケーションです。プラットフォームごとに別々のUIプロジェクト(Android、iOS、...)があり、PCLの機能を再利用します。

これにより、Xamarin.Formsを使用せずに、UIに関して妥協することなく、大量のビジネスコードを共有することができます。

このアプローチでは、MVVMと依存性注入について基本的な知識が必要です。

関連する問題