本文へスキップ
バージョン: 6.x

Pitch と Anti-pitch

プロジェクトの使用を検討する際には、開発者がプロジェクト構築時に行ったトレードオフを理解することが役立ちます。プロジェクトは具体的にどのような問題を解決しようとしており、どのような問題を無視しているのでしょうか?プロジェクトの現在の制限と、ユーザーがよく遭遇する一般的な問題は何でしょうか?これらは、プロジェクトにとって重要な技術的決定を行う際に、回答を得るべき質問だと考えており、ここでは「Pitch」(使用する理由)と「Anti-pitch」(使用しない理由)という形で、可能な限りこれらの質問に対する回答を文書化しました。重要な情報が欠落していると思われる場合は、プルリクエストを送信してください!プルリクエストを送信する

Pitch

  • React Navigation はライブラリ自体にネイティブコードを含んでいませんが、ScreensReanimatedGesture Handlerなどの多くのネイティブライブラリを使用して、パフォーマンスの高いアニメーションとジェスチャを実装しています。ナビゲーターによっては、多くのUIコンポーネントがReact Nativeプリミティブの上にJavaScriptで記述されています。これには多くの利点があります。
    • 容易なOTAアップデート
    • デバッグ可能
    • カスタマイズ可能
  • ほとんどのアプリはナビゲーションを大幅にカスタマイズします。ネイティブナビゲーションをラップするAPIでこれを行うには、多くのネイティブコードを記述する必要があります。React Navigationでは、完全にJavaScriptで記述されたナビゲーター(例:Stack Navigator)と、プラットフォームナビゲーションプリミティブの上に実装されたナビゲーター(例:Native Stack Navigator)を提供しています。これにより、ネイティブプラットフォームの動作が必要か、完全なカスタマイズが必要かによって、ユースケースに適したナビゲーターを選択できます。
  • 標準的なナビゲーターとスムーズに統合する独自のナビゲーターを作成したり、標準的なナビゲーターをフォークして、アプリで必要な正確なルックアンドフィールを持つ独自のバージョンを作成したりすることも可能です。

Anti-pitch

  • 改善には破壊的変更が必要になる場合があります。「簡単なことは簡単に、難しいことは可能にする」ことを目指しており、そのためAPIを変更する必要がある場合があります。
  • 一部のナビゲーターは、iOSとAndroidでネイティブナビゲーションAPIを直接使用しません。代わりに、最低レベルの部品を使用し、その上でAPIのサブセットを再作成します。これは、ユーザーがナビゲーションエクスペリエンスのあらゆる部分をカスタマイズできるようにし(JavaScriptで実装されているため)、Objective-C/Swift/Java/Kotlinを学ぶ必要なく、発生した問題をデバッグできるようにするための意識的な選択です。
    • 正確なプラットフォームの動作が必要な場合は、ネイティブプラットフォームプリミティブを使用するナビゲーター(例:Native Stack Navigator)を使用するか、完全にネイティブなナビゲーションAPIを提供する別のナビゲーションライブラリ(例:React Native Navigation)を使用できます。
  • 考慮すべき他の制限事項もあります。詳細については、制限事項を参照してください。