怎样评价谷歌推出的 Flutter 框架和 Dart 语言( 三 )
Flutter 将UI组件和渲染器从平台移动到应用程序中,这使得它们可以自定义和可扩展。Flutter 唯一要求系统提供的是 canvas,以便定制的 UI 组件可以出现在设备的屏幕上。
Flutter框架Flutter 框架是一个分层的结构,每个层都建立在前一层之上。
框架没什么可介绍的(主要是详细介绍我也没找到啥资料,大写的尴尬),看着很简单,就分为两个部分,Framework 和 Engine 部分,其中 Framework 提供了各种基础的组件库,Engine 部分渲染各种 widget,两者共同作用,使得运行性能高效稳定。
Flutter 调研生态在 Flutter 官方的 Pub 平台上,纯 Flutter Package 大概有两千多个,基本上常见的库还是都有的,例如网络、图片、音视频播放等等。但是对于目前 Android 以及 iOS 的生态,还是远远的不足的,对于一些复杂的 UI 或者一些不是特别通用的功能,就得自己去实现。
包大小根据官网的介绍,一个最小的 Android 版本的 Flutter 应用。release 版本大小约 6.7MB,其中核心引擎大约 3.3MB,框架+应用程序代码大约是 1.25MB,LICENSE 文件(包含在 app.flx 中)是 55k,必需的 Java 代码 .dex 为 40k,并且约有 2.1MB 的 ICU 数据。考虑到目前网络环境,包大小的增加,还也在可以接受的范围。
CrashiOS 运行官方的例子,会有时候 crash 掉,因此我们将一个开源的 Flutter 应用,添加了Bugly 上报,在 Android 平台进行了众测。
参与人次大概 150 人左右,启动次数大概 500 次左右,没有出现一次 Crash 数据上报,由于app 很简单,并不能说明很多问题,但是众测用户反馈了约 12 条信息,其中 1 条是类似于 ANR,无法操作,其余的部分则是卡顿相关的反馈。
流畅性将官方的例子发给测试同学,让在 iOS 以及 Android 平台的不同机子上运行了下。在 iOS 上基本上流畅运行,没有出现卡顿的现象,在 Android 部分设备上,出现了卡顿的现象。
由于没有复杂的例子,其实这个流畅性的测试,意义不是特别大,官方简单的控件展示 demo 程序,本身就很简单,但是在 Android 上还是出现了不少问题,只能说明整体还有非常大的优化空间。
编写复杂程度试着照着一张设计稿进行了简单的纯布局代码工作,初次接触用起来还是比较复杂,尤其是那恐怖的嵌套层级,对代码维护来说绝对是个问题,而且由于 Flutter 的 widget 机制,很多组件只支持最基本的操作,例如一些扩展的属性,都得自己去实现,况且现在组件库还不是非常的丰富。代码量也比较多,整个代码大概有 500 行左右,还只是不涉及到一些交互以及数据绑定等。
从运行效果看,还是比较的不错,两者还原的效果都挺不错的。
结论如果是个人而言,我觉得可以放心大胆的去学习尝试,独立开发 app,可以写一套代码,在多个平台运行发布。如果是商业团队,这个就要自行取舍,目前而言,Flutter生态还是非常的不完善,相关的资料也非常少。目前处于 beta 3 阶段,多久能到 release,能否到 release,都是个未知数,而且,用 Flutter,最大的风险,就是项目整体的不可把控,一旦出现一些坑,如果能填好,那还行,如果涉及到无法解决的问题,就只能放弃。因此看自己团队人力以及时间合理安排比较合适。目前看阿里的咸鱼团队在研究 Flutter。如果单纯从 Flutter 本身能够解决的问题的方面出发,使用 Flutter 确实能够产生一定的收益,节省开发成本,如果考虑到目前坑比较多的状况,加上踩坑的时间,可能就无法去评估了。总体来说,Flutter 确实是一个比较不错的东西,如果谷歌能够把它发展的比较完善,对于个人以及小团队来说,确实是个福音。
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义