Xamarin.FormsとXamarin Nativeを使用する場合 [閉まっている]


159

Xamarin.FormsとXamarinネイティブのどちらを使用してアプリを開発するかを決定する必要があります。

UIコードも共有されるため、Xamarin.Formsを使用したいと思います。

では、Xamarin NativeでXamarin.Formsを使用することの技術的な利点と欠点は何でしょうか。


1
見ていグッドとXamarinモバイル開発の悪い 1月2017年のように優秀な議論のために
オリバー

1
結論...ネイティブに行きましょう!私自身の経験に基づいてこれを語っています。フォームアプリをネイティブに書き直しました。
Tejasvi Hegde

2
2015年のコメントには、Xamarinフォームの現実が反映されなくなりました。それは長い道のりを歩み、.NET Core \ Standardが成熟した後に爆発するようです。
ショーンアンダーソン、

この質問を再度開く必要があります。現在4年の歴史があり、Xamarin.Formsフレームワーク内でエンタープライズアプリケーションの開発を可能にする大規模な開発が行われています。
James Mallon

回答:


144

XamarinのWebサイトに示されている点の他に、次のことも考慮する必要があります。

あなたのチームの背景

あなたのチームの誰かが、AndroidまたはiOS(JavaまたはObj-C / Swiftを使用)向けにネイティブにコーディングした経験がありますか?このエクスペリエンスはネイティブXamarinで再利用されますが、Formsでコーディングするには別のプラットフォームを学習する必要があります。

iOS / Androidについては何も知らないが、XAMLについては知っている場合も同様です。確かにXamarin.FormsはWPF / Silverlightとは異なりますが、XAMLを知っていることは確かにフォームの使用に役立ちました。

パフォーマンス

Xamarinフォームには、初期化時間などの問題がまだ残っています。これが最終ユーザーにとって問題になるかどうかを検討する必要があります。たまに使用するダッシュボードアプリが開くのをしばらく待ちたくありませんが、同じことがメッセージングアプリで起こったら怒ります。

お届けまでの時間

フォームを使用するとコード共有が大きくなるため、配信時間が短縮されることが予想されます。

アプリの複雑さ

前のポイントを考慮すると、フォームを使用すると、時間の増加を無効にするいくつかのショーストッパーバグ(結局のところ、これは非常に新しいテクノロジーです)に遭遇する可能性があります。選択する前に、アプリケーションの複雑さを考慮してください。


2
見栄えの良いアプリを期待している場合は、これを追加して、各プラットフォームにXamarin Nativeコードを使用した多くのカスタムインターフェイスを作成します
Roman Nazarevych

2
この回答と上記のコメントは古すぎる。AOTを有効にした場合、今日のパフォーマンスは大きな問題ではありません。コメントで見栄えの良いアプリに関しても当てはまりません。xamarinフォームが改善され、見栄えの良いアプリを簡単に実現できます。
batmaci

Xamarin Formsは、見栄えの良いUIを簡単に取得できるという点であまり改善されていません。Xamarin.Shellはその点で大きな改善をもたらしますが、現在のところ、Xamarinは各プラットフォーム用のカスタムコンポーネントを作成せずにリモートから魅力的なものを取得することは依然として困難です。
アレクサンダー

176

Xamarin.Forms

長所

  • すべてのプラットフォームに1つのUIを作成する
  • すべてのプラットフォームで利用可能な基本コンポーネント(ボタン、テキストフィールド、スピナーなど)を使用します。
  • すべてのネイティブUIフレームワークを学ぶ必要はありません
  • 迅速なクロスプラットフォーム開発プロセス
  • カスタムのネイティブレンダラーにより、コントロールの外観と感覚を調整できます

短所

  • それはまだ新しいフレームワークであり、まだバグが含まれています
  • 特にWindows RTはまだ安定していません
  • ネイティブコントロールに直接アクセスするよりも遅い場合があります
  • カスタムネイティブレンダラーには境界があり、文書化が不十分です

Xamarin.Android、Xamarin.iOS、Windows Phone、Windows RT

長所

  • プラットフォームごとに1つのUIを作成する
  • プラットフォーム固有のUI機能とコンポーネントを調整する簡単な機能
  • UIを最大限に活用する

短所

  • クロスプラットフォーム開発プロセスははるかに遅いです
  • すべてのネイティブUIフレームワークを学ぶ必要がある
  • (同じUIを3つの異なるプラットフォーム固有の方法で記述しているため)コード重複する可能性があります。

さらに、Xamarinはhttps://xamarin.com/formsで次のように述べています

どのXamarinアプローチがアプリに最適ですか?

Xamarin.Formsは次の場合に最適です。

  • データ入力アプリ
  • プロトタイプと概念実証
  • プラットフォーム固有の機能をほとんど必要としないアプリ
  • カスタムUIよりもコード共有が重要なアプリ

Xamarin.iOSおよびXamarin.Androidは次の場合に最適です。

  • 特別なやり取りが必要なアプリ
  • 高度に洗練されたデザインのアプリ
  • 多くのプラットフォーム固有のAPIを使用するアプリ
  • カスタムUIがコード共有よりも重要なアプリ

「プラットフォーム固有の機能をほとんど必要としないアプリ」に関して、私たちが話している機能の種類を理解するための例はありますか?
NS.X.

プラットフォーム機能がほとんどないということは、主にアプリとしてデータバインディングやその他のビジネスルールを実行していることを意味します。多くのカスタム描画、またはすべてを完全なピクセルにレンダリングしようとしない。レスポンシブな一般的なレイアウトで問題がない場合は、Xamarin.Formsが適しています。
Jason Short

私の意見では最良の回答です。これにより、「Xamarin.Forms:すべてのプラットフォームに1つのUIを作成する」と「Xamarin.iOS、Xamarin.Android:プラットフォームごとに1つのUIを作成する」という問題が解決しました。ありがとう!
Tadej 2017

1
@Dibzmaniaプロトタイプと基本的なアプリにのみ適しているとは、私は決して言いません。各プラットフォームでほぼ同一のUIを備えたクロスプラットフォームアプリが必要な場合は、Xamarin.Formsが最適です。プラットフォームごとにカスタムUIが必要な場合は、おそらくXamarin.Formsのメリットがなく、代わりにネイティブUIライブラリを使用する必要があります。
Wosi 2017

1
Nathan Williamsによるこの記事は有用だと思います:arctouch.com/blog/xamarin-forms-xamarin-native
Alt-WN

44

Xamarin Webサイトから

Xamarin.Formsは次の場合に最適です。

  • データ入力アプリ
  • プロトタイプと概念実証
  • プラットフォーム固有の機能をほとんど必要としないアプリ
  • カスタムUIよりもコード共有が重要なアプリ

Xamarin.iOSおよびXamarin.Androidは次の場合に最適です。

  • 特別なやり取りが必要なアプリ

  • 高度に洗練されたデザインのアプリ

  • 多くのプラットフォーム固有のAPIを使用するアプリ

  • カスタムUIがコード共有よりも重要なアプリ


1
この答えは古くて古いです。Prismでフォームを使用します。楽しい経験。私は巨大なアプリを開発している単一の開発者であり、非常に生産的であり、私のアプリはすべてで機能します。見栄えの良いアプリが必要な場合は、Grial UI Kit(無料のXAMLライブプレビューアを確認してください)などのさまざまなサードパーティビューがあります。Xamarinフォームはデフォルトでネイティブコントロールを使用することを忘れないでください。
Sean Anderson、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.