web-dev-qa-db-ja.com

React Native v Xamarin Forms-クロスプラットフォームアプリ環境の選択

クロスプラットフォームアプリを構築するために、Xamarin Formsを見てきました。 iOS、AndroidおよびWindows Phoneをターゲットとするフレームワークが必要です。これはすてきな製品のようですが、ライセンスコストが原因でビジネスモデルやWindows Phone開発のライセンスに問題が生じる可能性があります不明です。

React Nativeと呼ばれる別のフレームワークに出くわしました。クロスプラットフォームのアプリを構築できると主張しています。特にXamarinに関連して、その長所と短所を教えていただけませんか。可能な場合はフォームを使用します。1つは、JavaScriptを使用しているため、コードメンテナンスまたは実行パフォーマンスの点で拡張性に欠ける場合がありますが、Reactそして、その有用性についていくつかの客観的な意見を形成しました。

https://facebook.github.io/react-native/

ありがとう。

25
Hughgo

ディスクロージャー:私はFacebookやMicrosoftの従業員ではなく、どちらのプラットフォームにも関与していません。ReactNativeで開発する方法を学び始めたばかりのWeb開発者です。

リアクトネイティブ

facebookで構築され、オープンソース-現在(2015年10月現在)iOSとAndroidのみをサポートしています。ビルドするUIコンポーネントがネイティブコンポーネントに変換されるという点でXamarinに似ています。他のフレームワーク(例:Cordova)など、Webビュー内で実行しないでください;利点は、ネイティブコンポーネントがWebコンポーネントよりも応答性が高いことです。

アプリはビジネスロジックコードとほとんどのUIコンポーネントを共有できる必要がありますが、チームがネイティブに反応するため、各プラットフォームには独自のインターフェイスがあり、アプリはそれを考慮して、それを許可し、奨励します(ただし、強制するわけではありません)各プラットフォーム用のアプリUIインターフェースを作成します。

すべてのコードは(Javaではなく)Javascriptで記述され、nodejsプロセスで実行され、XML要素を使用して記述されたUIで、CSSに似ていますが内部的にJavascriptとして解析されるパターンでスタイルが設定されます。

アプリは、ほとんどのUIが実行されるメインスレッドと、ビジネスロジックが実行されるnodejsスレッドの2つのスレッドで実行されます。これは、アプリケーションを設計するときにいくつかの意味を持ちます。

このフレームワークは、プロダクション対応のアプリケーションを構築するのに十分な成熟度を備えていますが、公式にサポートされているクロスプラットフォームコンポーネントを増やす必要があります。コミュニティは、使用したいと思うかもしれない素晴らしいクロスプラットフォームコンポーネントも構築しています。ほとんどのコンポーネントは無料ではありません。

反応ネイティブの作業の背後にあるチームは何ですか? (私がオンラインで見た講演に基づいて):

  • アセットのワークフローの修正-現在、アセットを変更する場合、まずサポートされているプラ​​ットフォームごとに異なる場所でそれを行う必要があり、開発時に変更を確認するにはアプリを再コンパイルする必要があります。
  • 反応するネイティブUI要素の数を増やす(特にAndroidプラットフォーム)

要約すると、これらは考慮すべき点です。

                 Xamarin                     React Native

built by:        Xamarin                     Facebook
language         C#                          Javascript (nodejs)
age              mature                      (prod ready), but not mature
community:       good support                good support
platforms        iOS, Android, Windows       iOS, Android
cost             FREE (open sourced)         FREE (open sourced)
20
Marcos Abreu