React / JS 開発者なら、おそらくこう考えたことがあるでしょう 「React Native を学んだほうがいいでしょうか?」 これは当然の質問であり、私も数年前に自分自身に問いかけました。 。結果的に、React Native を学習したことは間違いなく正しい決断でした。これが私に Amazon のシニア デベロッパー アドボケートとしての役割を与えてくれたもので、現在は React Native を使用して Android、Fire TV、タブレット デバイスにわたるアプリを構築しています。
Web アプリの枠を超えて飛躍するかどうかを検討している場合は、検討する価値がある理由についていくつか考えてみます。
「一度学べばどこでも書ける」という哲学は、iOS や Android だけを超えて広がり、現在では tvOS、VisionOS などのプラットフォーム、さらには React-native-macos などのデスクトップ環境も含まれています
業界との関連性: Amazon、Meta、Microsoft などの大手企業はすべて React Native を採用しています。 なぜ?コードの再利用性、コスト効率が高く、クロスプラットフォームの構築が可能です。
強力なコミュニティ サポート: React Native には、GitHub 上に 100,000 を超えるスターと 24,000 のフォークがあり、定期的な更新と活発な開発が行われています。
開発者の高い満足度: React Native の現状調査によると、開発者の 90% が再び React Native を使用すると回答しています。
統合エコシステム: React Native コミュニティが Expo を中心に結集し、より迅速な改善、適切に統合されたサードパーティ ライブラリ、豊富な共有リソースにつながります。
どちらも、「仮想 DOM」と呼ばれることが多い調整プロセスを使用します。このプロセスでは、あるツリーを別のツリーと比較して、UI のどの部分を更新する必要があるかを判断します。このため、どちらも高速更新をサポートしており、UI の変更をリアルタイムで確認できます。
React は、DOM と Web API を活用して、Web ブラウザーでレンダリングするようにコンパイルします。モバイル ブラウザ経由でアクセスした場合でも、ブラウザの機能によって制限され、ネイティブ デバイス機能へのアクセスは制限されます。
一方、React Native はネイティブ コードにコンパイルされ、プラットフォーム固有の API や機能に直接アクセスできます。これは、React Native アプリがカメラ アクセス、プッシュ通知などのデバイス機能を利用して、ネイティブ ユーザー エクスペリエンスを提供できることを意味します。このため、「ブリッジレス」アーキテクチャと呼ばれる、アーキテクチャに対して異なるアプローチを採用しており、DOM の代わりにネイティブ コンポーネントを備えています。 Turbo Native Module を使用し、JavaScript インターフェイス (JSI) を活用して、JavaScript とネイティブ コード間の直接通信を可能にします。このアーキテクチャは新しいものであり、「新しいアーキテクチャ」という言葉が飛び交っているのを耳にするかもしれません。詳細については、以前の記事で説明しました。
どちらも UI の記述に JSX を使用し、React フック (useState、useEffect など) をサポートします。これにより、両方のライブラリにわたって一貫したコーディング スタイルと状態管理アプローチを維持できます。
React と React Native はどちらもコンポーネントベースのアーキテクチャに従い、コンポーネントは内部的には同じライフサイクル メソッドに従います。
React と React Native はどちらも、コンポーネントのスタイリングに柔軟なアプローチを提供します。どちらもインライン スタイルをサポートしているため、コンポーネントにスタイルを直接適用できます。さらに、両方とも再利用可能なスタイル オブジェクトの作成を可能にします。
React と React Native は多くのコア ライブラリを共有します。 Redux、MobX などの同じ状態管理ライブラリと、Axios や Fetch API などのデータ取得ライブラリを使用できます。
Navigation: React では通常、Web ナビゲーションに React Router を使用しますが、React Native には独自の React Navigation ライブラリがあります。これは、React (Web) が通常、現在の URL パスに基づいてさまざまなコンポーネントがレンダリングされる URL ベースのナビゲーションを使用するためです。一方、React Native はスタックベースのナビゲーションを使用し、ネイティブのモバイル アプリのエクスペリエンスを模倣します。画面は互いに「スタック」され、トランジションによって新しい画面がスタックにプッシュされるか、新しい画面が「ポップ」されます。
?注: アプリを構築するときは、フォルダーに「Pages」ではなく「Screens」という名前を付けることを忘れないでください。
テスト: の概念は両方のライブラリで同様であり、コンポーネントのレンダリングとイベント シミュレーションに重点を置いていますが、特定のテスト ライブラリは異なります。 React は React Testing Library を使用しますが、React Native は React Native Testing Library (RNTL) を使用しますが、RNTL は React Test Renderer の上に軽いユーティリティ関数を提供しているだけなので、先延ばしにしないでください。
?一部の React ライブラリは、DOM の依存関係により、すべての React Native プラットフォームと互換性がない場合がありますが、すべてのライブラリのプラットフォーム互換性は (https://reactnative.directory)
で確認できます。
まだ迷っているなら、Universal React Apps の台頭は、React と React Native の間のギャップをさらに縮めている、本当にエキサイティングな分野です。通常、react-native-web を利用したユニバーサル React ライブラリとツールを使用すると、共有 React Native コードベースから iOS、Android、Web 上で実行されるクロスプラットフォーム アプリケーションを作成できます。これにより、ナビゲーション、スタイル設定、状態管理、ビジネス ロジックを共有できるようになり、各デバイス タイプ固有の規則を尊重しながら時間と労力を節約できます。
DOM とデバイスの間の境界線が曖昧になり続ける中、React Native を採用することで、マルチプラットフォーム アプリ開発のエキサイティングな世界への扉が開かれます。
始める準備ができている場合は、私のお気に入りのリソースのコメントをチェックするか、以下のコメントをチェックしてください ⬇️
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3