Flutter、React Native 的区别
Flutter语言:Dart
性能:优
APIs & UI:内置组件
IDE:VSC,IntelliJ idea,Android Studio
文档:详尽
配置环境:简单,内置库
1、Flutter优点
A、混合开发中,最接近原生开发的框架;
B、性能强大,流畅;
C、优秀的路由设计;
D、优秀的动画设计;
E、简单易学,Dart语言更具优势;
F、跨多种平台,减少开发成本;支持插件,可以访问原生系统的调用。
G、支持热重载
2、Flutter缺点
A、脱离不开原生,开发人员需要具备原生(Android、iOS)基础开发能力;
B、适配问题,开发工具版本升级后,修改量大;
C、原生集成第三方SDK后,兼容性适配是个令人头痛的问题;
D、代码可读性较差,对代码质量和管理要求较高;
E、Widget的类型难以选择,糟糕的UI控件API;
F、Flutter packages和Dart packages上第三方sdk繁杂,适配性差,不可乱用;
G、目前几乎没有第三方开发者平台开发Flutter能力的SDK,需要原生去集成;
H、打包后,apk/ipa要大很多。
RN语言:JavaScript
性能:中等
APIs & UI:三方库
IDE:所有
文档:差
配置环境:需要三方解决方案
实现原理:
React Native:
通过写 JS 代码配置页面布局,然后 React Native 最终会解析渲染成原生控件,如 标签对应 ViewGroup/UIView , 标签对应 ScrollView/UIScrollView , 标签对应 ImageView/UIImageView 等。
Flutter:
Flutter中绝大部分的 Widget 都与平台无关, 开发者基于 Framework 开发 App ,而 Framework 运行在 Engine 之上,由 Engine 进行适配和跨平台支持。这个跨平台的支持过程,其实就是将 Flutter UI 中的 Widget “数据化” ,然后通过 Engine 上的 Skia 直接绘制到屏幕上