Ask HN: React Native or Flutter when the back end is Node?
Really confused between React Native and Flutter. I’ve mostly worked with Flutter and a little bit with React Native, but that was quite a while back, so I’m not sure how things stand today. I’m building a project with a Node.js + tRPC backend, so React Native is looking really tempting cause of that Typescript. While researching I've seen mixed reviews about performance in React Native like people saying they've spend weeks finding and managing performance issue which does makes me worry. The app I wanna build doesn't have complex canvas work or crazy animations. For a typical production app, what’s the performance situation with React Native vs Flutter now? Are there any major concerns which I should know before looking in React Native?
评论
5 条预览评论 · 正在加载完整讨论请先登录 h4cker 账号,然后连接 Hacker News 后发表评论。
I tried React Native for one app, Flutter for another and Kotlin/Swift for a third. From my experience, for the next app, I'd default to Flutter unless I need to go deep into hardware, like my phone utils that I made for both my iphone and android phone.
Well since nobody is suggesting it, then I will. Go full native for each platform. React Native and Flutter are great (I’ve used them both), but there’s several reasons not to choose them anymore 1. Complexity - you’re adding another layer between your app and the device, debugging, compilation, device quirks all become much more annoying 2. AI coding makes it easier - This works both ways, flutter and react native become easier to develop, but so does native development 3. Support is always better on native - consider any issue you have building an iOS app, now add in React issues and then React native issues and then a bunch of other framework version issues… it’s generally better support if you use the tools the platform expect you to use 4. Code reuse is not as big of a deal as you think - trying to share UI code across android, iOS, web ends up making all platforms you build for worse, as bugs and performance issues go to all platforms… if you have a simply designed app, then a native experience is always preferable by users
I have a similar stack (using oRPC instead of tRPC, recommended!) and I'd say React Native, specifically Expo UI: https://docs.expo.dev/versions/latest/sdk/ui/ This will get you the most native feel across all platforms (e.g. Liquid Glass) and keeps you in one language (TypeScript). No performance issues to note in particular because Expo UI is (basically) native - it just uses SwiftUI and Jetpack Compose under the hood.
If you aren't doing native apps, my recommendation is to use the same language across full-stack apps. You can share things like zod types and validation logic (in the frontend for quicker user feedback, on the backend because you never trust user provided values)
It depends do you want to maintain ii? Do you use AI? Performance issues can always be solved. Do you want to use browser’s capabilities or keep control in your own backend ? Less frameworks is better, use e.g the same for everything.