-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Xplat implementation #2898
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Xplat implementation #2898
Conversation
|
✔️ Deploy Preview for react-native ready! 🔨 Explore the source changes: ccaf317 🔍 Inspect the deploy log: https://app.netlify.com/sites/react-native/deploys/61c3962fc9e67b0007d49fd6 😎 Browse the preview: https://deploy-preview-2898--react-native.netlify.app |
|
|
||
| The React Native team intends to incorporate an animation system into the render system and also extend the React Native render system to new platforms such as Windows, PlayStation, and more. | ||
|
|
||
| Leveraging C++ for the core render system introduces several advantages. A single implementation reduces the cost of development and maintenance. It improves the performance of creating React Shadow Trees and layout calculation because the overhead of integrating [Yoga](glossary#yoga-tree-and-yoga-node) with the renderer is minimized on Android (i.e. no more [JNI](glossary#java-native-interface-jni) for Yoga). Finally, the memory footprint of each React Shadow Node is smaller in C++ than it would be if allocated from Kotlin or Swift. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should link to (glossary#react-shadow-tree-and-react-shadow-node).
Even though it links to the same URL as React Shadow Tree, it is a slightly different term. Will be clearer to the reader.
| In the previous render system of React Native, the _React Shadow Tree_, _Layout System_, and [View Flattening](view-flattening.md) algorithm were implemented once for each platform. The React Native render system was designed to be a cross-platform solution which enables the implementation of all features to be shared across all platforms. The React Native team intends to incorporate an animation system into the render system and also extend the Fabric render system to new platforms such as Windows, PlayStation, and more. | ||
| In the previous render system of React Native, the **[React Shadow Tree](glossary#react-shadow-tree-and-react-shadow-node)**, layout logic, and **[View Flattening](view-flattening.md)** algorithm were implemented once for each platform. The current renderer was designed to be a cross-platform solution by sharing a core C++ implementation. | ||
|
|
||
| <!--TODO: Does the below paragraph makes sense to keep?--> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think if we expand it a little bit and add link to many platform vision, it is worth keeping. I've noted this and will address it later.
#2892) * Initial draft of new Architecture Section including docs on how React Native's renderer works * linting language * changing the IA for architecture section * update arc overview * Iterating on Fabric Architecture docs (#2895) * Add some intro to 'Render,Commit, and Mount' * Update Fabric Render -> Fabric Renderer * Split out rendering-implementation into three different docs * Create a sentence callout for each * Fix broken links * Formatting for view-flattening (#2899) * Updates to xplat-implementation, re: glossary links and fabric terms (#2898) * Refactor how we layout the scenarios (#2897) * Format render-pipeline.md (#2900) * Format fabric-renderer.md (#2901) * Format fabric-renderer.md * Anchor fabric-renderer in time * Add images to Fabric Deep Dive (#2902) * Resize images in threading model section (#2903) * Fabric-rendering word tweaks * Cut a 0.66 version of the architecture and update header * Word tweaks Co-authored-by: Luna <[email protected]> Co-authored-by: Samuel Susla <[email protected]>

Formatting and re-structuring for xplat-implementation