2022: How can we improve React Native? #528
Replies: 89 comments 203 replies
This comment has been hidden.
This comment has been hidden.
-
UI DifferenceReact Native makes cross-platform development easy, but one feature I'd appreciate is if there are little to no difference in cross-platform looks. I think it's one edge flutter has when it comes to development, spending less time customizing the user interface across platforms. |
Beta Was this translation helpful? Give feedback.
-
CSS FeaturesYoga has fallen behind modern CSS features such as grid. |
Beta Was this translation helpful? Give feedback.
-
UpgradesReact Native upgrades have always been very painful and the |
Beta Was this translation helpful? Give feedback.
-
Enabling The New ArchitectureFabric & TurboModules are obviously the future of React Native, and a vital component of continued relevance. Unfortunately the upgrade story is a non-starter for any app at scale using dozens of native packages that are either abandoned or unwilling to migrate. (abandoned packages are also a huge problem). We need to find a story for these cornerstone apps, and ideally provide an upgrade path to enable the new architecture. |
Beta Was this translation helpful? Give feedback.
-
Add native UITableView (iOS) integration for lists. Which has much better performance than FlatList and extra features such as a A-Z list (sectionIndexTitles). Large lists are a pain now. |
Beta Was this translation helpful? Give feedback.
-
Debugging with Flipper"How do I debug a RN app?" - The official answer is Flipper. However, anyone working with Flipper eventually experiences the same thing: Flipper is unbearably slow and buggy. Flipper is slower to boot than both Xcode and Android Studio. There's a very long list of bugs and useless warnings, e.g. "You're using an outdated version" which must be dismissed manually, socket warnings that cannot be fixed, clicking the settings icon doesn't open settings, dev menu button does nothing, screenshot button fails, plugin manager search doesn't show results that it should, it's hard to figure out what plugin maps to what GitHub project, plugins come with no instructions, and the list just goes on. To sum up, when people ask me "What do you do to debug?" I simply avoid mentioning Flipper. The whole plugin arch is a nice thought but what we really need is a performant, bug-free, tool for a small set of problems that many have:
Improving the debug cycle would have an enormous effect on developing apps. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
There is no way to specify items of context menu in textInputs ... I think it's pretty easy to implement and should be a prop for text input, like: |
Beta Was this translation helpful? Give feedback.
-
Native forms, better debugging information in Logbox, performant list, and better UI Inspector. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
These are some things which I would like to be addressed and fixed.
|
Beta Was this translation helpful? Give feedback.
-
Another issue: |
Beta Was this translation helpful? Give feedback.
-
Better built in images and image caching. It seems strange to have to reach for a third party library like react-native-fast-image for something that the built in image component should be able to do by itself IMO. |
Beta Was this translation helpful? Give feedback.
-
Please make Metro able to follow symlinks. This 5yo old issue was locked, but the problem is still there - we can't use |
Beta Was this translation helpful? Give feedback.
-
Integrate WebAssemblyIntegrating a WebAssembly runtime into react-native would greatly expand the options for developers to abstract their business logic into a cross platform library and to write more performant apps. |
Beta Was this translation helpful? Give feedback.
-
Bring metro up to modern standards or remove it in favor of more modern toolingMetro lags quite far behind modern JS development tooling. Specifically some of the things it is missing:
Since metro is so far behind in so many areas perhaps the team would consider dropping it and instead adopting and contributing to a project like esbuild. I fail to see where metro delivers any value that isn't already surpassed by existing community tooling. |
Beta Was this translation helpful? Give feedback.
-
Add dimiss method for ActionSheetIOS and Alert.Many applications have these components and can implement autologout functionality after some time and Alerts/ActionSheet remain on the screen :( So, It would be very cool to have such a method to fully manage these modules 🙂 |
Beta Was this translation helpful? Give feedback.
-
Improve the Image component...or make There are some fairly well documented issues with the Image component. For network images the caching functionality only works on iOS and even then testing would indicate that it doesn't work particularly well. Also a change of screen orientation frequently causes a tearing appearance on image re-renders. As a result most projects use |
Beta Was this translation helpful? Give feedback.
-
project.pbproj is a major PITA Changes to project.pbproj are very easily missed/ignored when upgrading, and even if notice them, 99% of the time, the changes are very hard to comprehend or apply. References are being moved around and they generate unique IDs, files are added/removed, build scripts are changed, it's just chaos for someone that doesn't have a very concrete understanding of how iOS development works. If you want to see a practical example of this, check the changes to project.pbproj between 0.67 and 0.68 via the RN upgrade helper:
If React Native wants to improve it's upgrade experience, this is the number 1 issue to tackle. I left a comment regarding this in one of the "Upgrade needs improving" thread, but I think this is important enough to deserve it's own thread. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Thanks everyone for all the great feedback. We've gone through all the comments and took time to digest them and are also using this feedback to directly influence our planning for next half. There is a lot of work to be done and keeping the conversation going is a large part of it! We've shared our thoughts on the major points raised: #546 (comment) Please take a read and let us know what you think |
Beta Was this translation helpful? Give feedback.
-
Just sharing some of my real feelings when using RN (I am using both RN and Flutter):
|
Beta Was this translation helpful? Give feedback.
-
Make it rusty to tackle so called JavaScript bridge. There are two ways to install a single project. If you ditch expo cli for React native cli, it will also improve ecosystem. |
Beta Was this translation helpful? Give feedback.
-
🧰 Developer tools: Flipper 🟣I would like to propose a change to the way React Native uses a Flipper developer tool. Currently it's using native dependency to establish the connection&communication channel. This adds on the build time of app and also sometimes caused issue with production builds containing Flipper SDK. It also doesn't provide a full fledge support to all devices, as it's relying on the certificate exchange JS based connection modelI've recently migrated to use a JS based connection model over So I would like to mainly open discussion for this approach and clarify any questions. |
Beta Was this translation helpful? Give feedback.
-
MultithreadingMultithreading is fundamental to building performant mobile applications and currently a major limitation of RN. NativeScript support workers, RN should do the same. Without workers, a whole class of apps which do heavy processing and are offline first are ill suited to RN. Related to this feature is that all high performance RN UI libraries such as reanimated take great pains to support an API which can control the main UI thread synchronously from Javascript. RN should also facilitate a way to run synchronous JS on the main thread. |
Beta Was this translation helpful? Give feedback.
-
Some ideas
|
Beta Was this translation helpful? Give feedback.
-
Idea about connecting the Simulator/Emulator UI inspector with the Code editor(If there is already an existing solution, please let me know) |
Beta Was this translation helpful? Give feedback.
-
There's this bug with Text inputs in scrollviews on Android. TextInput prevents scrolling on ScrollView within its boundaries. I wonder why it hasn't been fixed in the last 4 years. Are there any native limitations? It would be great if anyone in the core could respond. |
Beta Was this translation helpful? Give feedback.
-
Do we have survey for 2023 RN improvement ? |
Beta Was this translation helpful? Give feedback.
-
Update - Nov. 17, 2022
The survey is now closed.
This discussion will remain unlocked as there is still valuable feedback to be shared and its great to have it one place but do not expect team engagement.
We will be running another survey in 2023 and will reference any new comments here.
You can read the team's feedback to comments shared before Nov. 17th in this dedicated discussion.
Update - Nov. 1, 2022
Thanks everyone for all your feedback! I will leave this survey unlocked for now as there continues to be great discussion. We are actively reviewing your comments, drafting a reply which we hope to share by next couple of weeks. Thank you again!
The React Native team is looking for feedback to improve the developer experience of React Native. Our team has gotten so much value from past responses in 2019, 2018 (#64) — we had to miss 2020, 2021 😔.
This year, your input matters more than ever as we look to prioritize your feedback into our planning.
Guidelines:
Example areas of feedback
What happens next?
Beta Was this translation helpful? Give feedback.
All reactions