web-dev-qa-db-ja.com

Xamarin.FormsとXamarin Nativeの組み合わせはいつですか?

Xamarin.FormsとXamarinネイティブアプリのどちらかを選択する必要があります。

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

それで、ネイティブと比較したときのXamarin.Formsの欠点は何ですか。

150
Ajay Kumar

Xamarin Webサイトに表示されている points 以外にも、次の点を考慮する必要があります。

あなたのチームの経歴

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

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

パフォーマンス

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

配達までの時間

Formsを使用するとコードの共有が大きくなるため、納期が早くなることが期待できます。

アプリの複雑さ

前の点を考慮すると、Formsを使用すると、時間の浪費につながりかねない、ショーストッパーのバグ(結局、非常に新しい技術です)に遭遇する可能性があります。選択する前にアプリケーションの複雑さを考慮してください。

138
William Barbosa

Xamarin.Forms

長所

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

短所

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

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

長所

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

短所

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

それに加えてXamarinは https://xamarin.com/forms

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

Xamarin.Formsは次の用途に最適です。

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

Xamarin.iOSとXamarin.Androidが最適です。

  • 特殊なインタラクションを必要とするアプリ
  • 洗練されたデザインのアプリ
  • 多くのプラットフォーム固有のAPIを使用するアプリ
  • コード共有よりもカスタムUIが重要なアプリ
164
Wosi

から Xamarin Webサイト

Xamarin.Formsは次の用途に最適です。

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

Xamarin.iOSとXamarin.Androidが最適です。

  • 特殊なインタラクションを必要とするアプリ

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

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

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