2016-12-23 4 views
0

私はしばらくの間、アンドロイドアプリを開発していましたが、このアプリをWindows Phoneに移植するように依頼されました。同じアプリの2つの別々のバージョンを維持しようとするという面倒を減らすために、私はこのアプリをハイブリッドアプリよりも優れていると聞いたので、このアプリをxamarinに移植しようと決めました。これらはxamarinに関して私の質問です: -AndroidアプリをxamarinまたはWindowsネイティブの質問に移植する

  1. 私は同じ外観を維持し、私は、クロスプラットフォームのアプリに私の元のアプリに持っていたと同時に、それが明瞭で作るいる感じたいですWindows版。この効果を達成するために私ができることは何ですか?

  2. 一般的なアプリケーションを作成しようとする際に追加された問題のため、このアプリをWindowsの電話ネイティブに移植する方が良いですか?

  3. xamarinアプリを公開する際にWindowsストアに関する制限はありますか?

答えて

1

まず、多かれ少なかれコンテンツを共有するXamarin開発のさまざまなスタイルがあることを知る必要があります。

Xamarinフォームを使用している場合は、(表示とクローズを作成する)どのプラットフォームにも関係のないメインプロジェクトと、各ネイティブスタイルにコントロールを適用する特定のプラットフォームプロジェクトがあります。

Xamarin Classicを使用して開発する場合は、データ関連のクラスのみを開発する共有プロジェクトと、固有のフレンドリーなコントロールとネイティブな類似機能を持つ独自のビューとクラスを持つ特定のプラットフォームプロジェクトがあります。直接Xamarin Clasic Windowsプロジェクトではありません。

したがって、構造と機能が同じで、同じ構造と機能を持つ2つのアプリだけが必要な場合は、このようなネイティブスタイルになる「1つのアプリ」を開発するだけなので、Xamarinフォームが最適です: enter image description here

あなたが望むのは、異なる機能と異なるコンテンツを持つ異なるアプリを持つことであれば、Xamarin Classicに行く必要があります。私があなたに言いたいのは、Windows Phoneをネイティブで開発することですが、共有ライブラリにできるコードはすべて入れておいてください。次に、Xamarinの古典的なAndroidアプリを作成し、共有ライブラリを使用することができます。あなたはまだ2つの異なるアプリを扱う必要がありますが、 "コア"コードを1回だけ変更する必要があります。

Xamarinフォームを使用してUWP Windowsアプリケーションを実行する場合、XamarinがMicrosoftから提供されていると考えても問題はないと思います。

1

Xamarinは実際にはWindows UWPアプリケーションをカバーしていませんが、そのプラットフォームで実行されているUIフレームワークXamarin.Formsを持っているという考えだけです。つまり、あなたが作っているのはネイティブのWindows UWPアプリです。

Xamarinが優れているのは、複数のプラットフォームをターゲットにして、サポートされているプラ​​ットフォームで再利用できるようにコードを構成した場合です。これは、例えば、あなたのロジックとビヘイビアのほとんどをポータブルクラスライブラリ/ NETスタンダードライブラリに入れ、アプリケーションでそれを消費させることによって行うことができます。

アプリのプラットフォームに依存しないロジックと動作を行う典型的なパターンは、Viewがプラットフォーム固有であるModel-View-ViewModelと呼ばれるパターンです。モデルとViewModelは通常プラットフォームに依存しません。 ViewModelはビヘイビアが存在する場所で、Viewと一緒にモデルを結び付けるものです。 通常、ViewModelはビューを直接認識しませんが、XAMLなどの中間層(グルー)、MvvmCross、MvvmLight、ReactiveUIなどのバインディングエンジンがあり、MVVMライブラリの名前を指定します。

Xamarinは、AndroidとiOS用のC#コードを書くことができます。これにより、2つのプラットフォーム間でコードを共有できるようになりますが、すべてのWindowsプラットフォームでコードを共有できます。したがって、UIは、それぞれのプラットフォームに非常に依存しています。 もちろん、Xamarin.FormsをUI抽象化レイヤとして使用することができます。ネイティブUIコントロールを使用してネイティブUIを生成し、すべての対象プラットフォームで同様のアプリケーションを取得できます。

関連する問題