4 ms·
Along what metrics is the question. As far as I know it’s: - less popular (https://gist.github.com/tkrotoff/93f5278a4e8df7e5f6928eff98684979 https://gist.gith
by mhoad 4y ago
Along what metrics is the question.
As far as I know it’s:
- less popular (https://gist.github.com/tkrotoff/93f5278a4e8df7e5f6928eff98684979 https://gist.github.com/tkrotoff/93f5278a4e8df7e5f6928eff986...)
- worse performance
- much more frustrating developer experience (inherently subjective but not a particularly controversial opinion)
- less supported / actively developed (some very core parts of the RN ecosystem got punted to “community supported” where they basically died in place) but also worth comparing GitHub activity for Flutter https://github.com/flutter/flutter/pulse/monthly https://github.com/flutter/flutter/pulse/monthly and RN https://github.com/facebook/react-native/pulse/monthly https://github.com/facebook/react-native/pulse/monthly
I think Flutter is a much better long term bet despite the fact that it’s a much newer project.
- jurmous 4y agoReact Native did a lot of work with the performance issues. They have now their own JS interpreter called Hermes. It also allows your javascript code to be compiled to byte code for better performance. Furthermore their new architecture allows for better integration with native and faster performance. https://reactnative.dev/docs/new-architecture-intro https://reactnative.dev/docs/new-architecture-intro I think a lot of people have their opinions based on an image of React Native in the past. It evolved a lot to be better performant and easier to work with. And for many people the React ecosystem is way more familiar than Dart.
- zigzag312 4y agoDart is compiled to machine code, not just byte code. There's also new rendering engine being worked on for Flutter called Impeller. It's not just React Native that's improving.
- mrbombastic 4y agoI think the core problem any cross platform solution is going to face is that maintaining a compatibility layer between 2+ proprietary OS’s* is a recipe for a bad time. It is why these projects need to be supported by a massive tech company. My only point being even if Flutter is at an advantage today over react native on this point, long term they will face the same problems as react native with stagnating cross platform support. edit: silly mistake Android is open source, not sure how much it helps when compatibility layer is not a priority for the OS developers
- zigzag312 4y ago> I think the core problem any cross platform solution is going to face is that maintaining a compatibility layer between 2+ proprietary OS’s* is a recipe for a bad time. Flutter has big advantage in this area as it doesn't wrap OS's controls, but has build it's own controls on top of lower level OS's APIs. Avalonia (which also renders it's own controls) has posted an article, describing how it's easier supporting new platforms this way: https://dev.to/avalonia/avalonia-platform-support-why-its-simple-cjd https://dev.to/avalonia/avalonia-platform-support-why-its-si... Avalonia GUI apps can run on Linux without a desktop environment installed because of this.
- mrbombastic 4y agoAha that is interesting I wasn’t aware of this difference. Pushing the layer down to lower level controls does seem like it would help with this but perhaps at the cost of ui consistency on the platforms? Either way thanks for the link, I’ll check it out.
- zigzag312 4y agoYeah, since all controls are created from scratch there is no inherited consistency with the controls of the underlying platform. However, framework developers often develop controls that emulate platform controls. Not all are 100% match. Depends on the quality of the implementation. The quality of Flutter controls is not yet on par with iOS's controls, but if they continue to improve at the same rate as they currently do, in 1-3 years they could match or even surpass them.