web-dev-qa-db-ja.com

Expo CLIとReact Native CLIの違いは何ですか?

React Nativeは、プロジェクトを作成する2つの方法を提供します。

最初:

npm install -g expo-cli

2番目:

npm install -g react-native-cli

では、それらの違いは何ですか?反応ネイティブアプリを作成する場合に何を使用する必要がありますか?

19
Jitendra Suthar

React Native init:

利点:

  • Java/Objective-C(おそらく最強の機能)で記述されたネイティブモジュールを追加できます。
  • ビルドを制御します。

欠点:

  • プロジェクトを実行するには、Android StudioとXCodeが必要です。
  • MacがないとiOS向けに開発できません
  • テストに使用するには、デバイスをUSB経由で接続する必要があります
  • フォントはXCodeに手動でインポートする必要があります
  • アプリを共有する場合は、.apk/.ipaファイル全体を送信する必要があります
  • そのままではJS APIを提供しません。プッシュ通知、Asset Manager、たとえば、手動でインストールしてnpmとリンクする必要があります
  • 作業プロジェクトを正しく設定する(デバイス構成を含む)のはかなり複雑で時間がかかる場合があります

エキスポ:

利点:

  • プロジェクトの設定は簡単で、数分で完了できます
  • あなた(および他の人々)は、作業中にプロジェクトを開くことができます
  • アプリの共有は簡単です(QRコードまたはリンクを使用)。apkファイルまたは.ipaファイル全体を送信する必要はありません。
  • アプリを実行するためにビルドは必要ありません
  • 標準プロジェクトにいくつかの基本的なライブラリを統合します(プッシュ通知、Asset Managerなど)。
  • ExpoKitにイジェクトして、一部のExpo機能を使用してネイティブコードを統合できますが、すべての機能を統合することはできません
  • Expoは.apkおよび.ipaファイルを作成できます(Expoで可能なストアへの配布)

欠点:

  • あなたはネイティブモジュール(おそらくいくつかのゲームチェンジャー)を追加することはできません
  • Objective-C/Javaでネイティブコードを使用するライブラリは使用できません
  • 標準のHello Worldアプリのサイズは約25MBです(統合ライブラリのため)。
  • 使用する場合:FaceDetector、ARKit o ExpoKitに排出する必要がある支払い
  • ExpoKitにイジェクトすると、Expoの機能がトレードオフになります。 QRコードで共有することはできません
  • ExpoKitに排出する場合、その時点でExpoKitでサポートされている反応ネイティブバージョンに制限されます。
  • ExpoKit(ネイティブモジュールを使用)でのデバッグは、2つの言語と異なるライブラリが混在しているため(公式のExpoサポートはもうありません)、はるかに複雑です。

そしてアプリケーションの要件を満たすものを使用できます

61
Syed