Skip to content

Conversation

@lunaleaps
Copy link
Contributor

Formatting and re-structuring for xplat-implementation

@lunaleaps lunaleaps changed the base branch from main to fabric-architecture December 22, 2021 21:18
@lunaleaps
Copy link
Contributor Author

CleanShot 2021-12-22 at 13 20 18@2x

@netlify
Copy link

netlify bot commented Dec 22, 2021

✔️ 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.
Copy link
Contributor

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.

@sammy-SC sammy-SC merged commit 6a572ed into fabric-architecture Dec 23, 2021
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?-->
Copy link
Contributor

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.

@Simek Simek deleted the xplat-implementation branch December 23, 2021 14:29
sammy-SC added a commit that referenced this pull request Dec 23, 2021
#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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants