Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR mainly includes 3 features:
New Arch Support (Fabric)
Supporting fabric for this package is not quite straight forward, as the cpp (shadow tree) layer should be manually implemented to match the behaviour of react-native core component. however getting there is possible and this PR currently fully supports iOS Fabric new arch.
Since both andorid/ios should both be using the same c++ implementation, in theory the same method should work in iOS too, but for some a limitation on react-native 75, android doesn't fully expose its internal c++ as dynamic modules for devs to link their libraries against. and starting from react-native 76 they will be doing that which will make android support possible. check this for more info [Linking android internal cmake libraries against a custom fabric component reactwg/react-native-new-architecture#234] .
Old Arch Improvements:
This achieves a better maintainability experience where we (hopefully) wouldn't need to upgrade the package with every new react-native release.
Example app improvements.
Screen.Recording.2024-10-15.at.6.43.59.PM.mov
Currently this PR will be drafted until at least the Android new arch support is done. which will happen with react-native 76
What is left to do:
[ ] Android new arch support.
[ ] Fix typescript warnings.
[ ] Docs improvements.