React Nativeアプリの構築にフレームワークを使用する
React Confにて、私たちはReact Nativeアプリの構築を始めるための最適なツールに関するガイダンスを更新しました。それは**React Nativeフレームワーク**です。これは、本番環境に対応したアプリを構築するために必要なすべてのAPIを備えたツールボックスです。
ExpoなどのReact Nativeフレームワークを使用することが、新しいアプリを作成する際の**推奨**アプローチとなりました。
このブログ記事では、それらが具体的に何であるか、そして新しいプロジェクトを始めるReact Native開発者にとって何を意味するのかを詳しく説明します。
React Nativeフレームワークとは?
本番環境用のアプリを構築したことがある方なら、遅かれ早かれ解決しなければならない共通の問題があることをご存知でしょう。
ウェブでもネイティブでもアプリケーションを構築する際には、ユーザーが異なる画面間を移動したり、データを取得したり、ユーザーの状態を保存したりすることが必要になるでしょう。しかし、ネイティブアプリではさらに多くのことを扱う必要があります。React Nativeのバージョン間でネイティブコードをアップグレードするツール、すべての依存関係の互換性のあるバージョンを管理するツール、そしてネイティブのビルドツールを扱う必要があります。
適切なツールがなければ、アイデアを本番アプリにするには多くの労力が必要です。
私たちは、皆さんがこれらの共通の問題を何度も解決するのではなく、ユーザーのための美しいアプリケーションや機能の開発に集中してほしいと考えています。
だからこそ、React Nativeを体験する最良の方法は、本番環境に対応したアプリケーションを構築するために必要なすべてのツールを備えたツールボックスを提供するフレームワークを通じてであると信じています。
私たちは、**皆さんがフレームワークを使用しているか、あるいは独自のフレームワークを構築しているか**のどちらかであると考えています。
ルーティング、ナビゲーション、デプロイなどのために独自のソリューションを作成し、独自のフレームワークを構築することに何の問題もありません。MetaやMicrosoftのような大企業は、既存のアプリ(brownfield apps)に深く統合するために、社内で独自のフレームワークを構築しています。しかし、ほとんどの人は既存のフレームワークを使用する方が良いと私たちは考えています。
ウェブでReactを使用したことがあるなら、本番環境グレードのReactフレームワークという同様の概念に馴染みがあるでしょう。
今日現在、React Nativeで推奨される唯一のコミュニティフレームワークはExpoです。Expoの人々はReact Nativeの初期からエコシステムに投資してきており、今日現在、Expoが提供する開発者体験はクラス最高であると私たちは信じています。
フレームワークとしてのExpoは、現在も将来も無料でオープンソースですが、Expo Application Services (EAS) はオプションの有料サービスです。
最近Expoを使用していない場合は、Kadi @ Expoによるこのトークをお見逃しなく。2024年にExpoで何ができるかを紹介しています。
また、この推奨を反映するために、ウェブサイトの「Getting Started」ページを更新しました。
フレームワークはあなたにどう影響するか?
すでにExpoのような推奨フレームワークを使用している場合は、そのままで大丈夫です!
既存のアプリをExpoに移行したい場合は、Expoの公式サイトで手順を見つけることができます。Expoは、React Nativeのバージョンをより簡単にアップグレードする方法や、より良い開発者体験など、多くの利点を提供します。
しかし、Expoに移行できない、またはしたくない場合でも問題ありません。公式フレームワークなしでReact Nativeを使用することも引き続きサポートされます。React Native Community CLI、Template、Upgrade Helperなど、これまで使用してきたツールは通常通り機能し続けます。
react-native init
コマンドはコアから移動し、現在は
npx @react-native-community/cli@latest init
経由で、またGitHubのreact-native-community/cliでアクセスできます。
React Nativeのライブラリ開発者の方は、どのAPIを使用すべきかについての推奨事項のリストをまとめました。詳細はRFCでご覧ください。
さらに詳しく
この決定の背景にある理由についてさらに詳しく知りたい場合は、RFC0759: React Native Frameworksを読むことをお勧めします。このRFCは、React Nativeエコシステムのさまざまなパートナーや関係者との数か月にわたる数え切れないほどの議論とブレーンストーミングの結果です。
現在Expoが唯一の推奨フレームワークですが、この分野でさらなる競争と革新が見られることを期待しており、RFCには推奨フレームワークになるためのガイドラインも含まれています。
さらに、App.js 2024でのトークuseFrameworks()もチェックしてください。このRFCと必要な変更点を短い形式で紹介しました。
React Nativeコアとフレームワークのそれぞれの責任を明確にすることで、より健全なエコシステムを育み、React Nativeの成長と革新を促進できると信じています。