Flutter-VS-React-Native-VS-Native,谁才是性能之王
对比指标
目前,对于应用性能的对比有很多种,但以下几条数据是必不可少的,包括:
接口(API):与手机应用程序接口交互(访问照片、文件系统、获取 GPS 位置等)。
业务逻辑:数学计算和内存操作的速度,该性能对具有复杂业务逻辑的应用程序来说最为重要。
页面渲染速度:动画平滑度、用户界面改变时的每秒帧数或一些实时出现的用户界面效果。
对比数据
下面就横向对比下 Flutter、React Native 和原生平台在性能上的表现,通过运行同一个应用程序然后查看在不同指标下的性能,数据来源于网络。
iOS 操作系统 CPU 密集型测试(高斯-勒让德算法)
可以发现,在 CPU 密集型计算测试中,Objective-C 是 iOS 开发的最佳编程语言,Swift 比 Objective-C 慢 1.7 倍, 意料之外的是 Flutter 比 Swift 快 15%, React Native 比 Objective-C 慢 20 倍。
iOS 操作系统 CPU 密集型测试(博尔温算法)
在博尔温算法中,Swift 比 Objective-C 慢 1.9 倍, Flutter 比 Swift 慢 5 倍,React Native 版本比 Swift 版本慢 15 倍以上。
安卓系统 CPU 密集型测试(高斯-勒让德算法)
在 Android 开发中,Java 和 Kotlin 性能指标相似,是 Android 开发的最佳选择, Flutter 比单一平台方法约慢 20%, React Native 约比单一反应速度慢 15 倍。
安卓系统 CPU 密集型测试(博尔温算法)
可以发现,使用 博尔温算法后,Java 和 Kotlin 性能指标相似,是 Android 开发的最佳选择, 单一平台方式比 Flutter 快 2 倍,React native 约比单一平台方式反应速度慢 6 倍。
Flutter 肺炎疫情应用
2020 年注定是一个不平淡的年份,新年伊始,一场新型冠状病毒肺炎疫情席卷全国,不断更新的新型冠状病毒肺炎疫情数据让不少民众产生了焦虑,不少城市采取的封城措施也给大家的生活带来诸多不便。在这场全国性的新型冠状病毒肺炎疫情的影响下,大多数线下商业,特别是实体店在一夜之间歇业,其中人员密集型的餐饮、旅游和文化活动等行业深受其害。
面对疫情来袭,隔离是最有效的预防和控制手段,也成为牵引商业模式变革的重要变量。面对严峻的疫情形势,即便是春节假期,各种走亲访友、商业往来、逛街购物等活动都统统按下了“暂停键”。同时,各级政府积极响应抗灾防疫,做到及时的隔离,并提供及时疫情发展信息,为防疫赢得宝贵时间。
2020 年的春节是惨淡的,也是悲伤的,疫情的发生让我们每个人都始料不及,但是在这场战役里,全国人民团结一心、众志成城,相信一定会战胜肺炎疫情。肺炎疫情应用正是基于这一现实开发的一款工具类应用,提供肺炎疫情最新的发展信息,以及提供一些防护措施。如下是新冠肺炎疫情应用的部分效果。
开源库
在 Flutter 应用开发过程中,系统提供的组件和 API 并不能满足全部的开发需求,为了快速的完成开发任务,大多数情况下需要使用一些第三方的开源库,以下是本项目使用的部分开源库,如下所示。
cupertino_icons: ^0.1.2 //图标库 dio: 3.0.9 //网络请求库 fluro: 1.5.2 //路由导航库 provide: 1.0.2 //状态管理库 webview_flutter: 0.3.19+8 //WebView 库 device_info: 0.4.1+5 //设备版本信息库 pull_to_refresh: 1.5.8 //下拉刷新 flutter_swiper: 1.1.6
cached_network_image: 2.0.0 //网络图片 shared_preferences: 0.5.6+2 //持久化数据库 intl: 0.16.1 //国际化 open_file: 3.0.1 //文件选择 url_launcher: 5.4.2 //打开第三方应用 connectivity: 0.4.8+1 //网络状态监听 photo_view: ^0.9.2 //大图预览 fluttertoast: ^3.1.3 //Toast 消息提示 syncfusion_flutter_charts: ^18.1.0 //图表组件库
复制代码 cupertino_icons: ^0.1.2 //图标库 dio: 3.0.9 //网络请求库 fluro: 1.5.2 //路由导航库 provide: 1.0.2 //状态管理库 webview_flutter: 0.3.19+8 //WebView 库
评论