加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

让我们在2019年重新认识 Flutter

发布时间:2019-01-30 11:36:24 所属栏目:评论 来源:佚名
导读:副标题#e# 现在是2019年,让我们认真来看看备受瞩目的 Flutter,重新认识一下它。本文首先简要回顾移动开发(跨平台开发)的发展历史,并谈谈不同阶段跨平台解决方案的优劣;接着从 WHAT / HOW / WHY 三个方面详细来聊聊 Flutter,并结合简单的 Dart 代码说

2. Fast - 一个应用不卡顿的标准是什么,你可能会说 16ms 抑或是 60fps,这对桌面端应用或者移动端应用来说已足够,但当面对广阔的 AR/VR 领域,60fps 仍然会成为使人脑产生眩晕的瓶颈,而 Flutter 的目标远不止 60fps;借助 Dart 支持的 AOT 编译以及 Skia 的绘制,Flutter 可以运行的很快;

3. Productive - 前端开发可能已经习惯的开发中 hot reload 模式,但这一特性在移动开发中还算是个新鲜事。Flutter 提供有状态的 hot reload 开发模式,并允许一套 codebase 运行于多端;其他的,再比如开发采用 JIT 编译与发布的 AOT 编译,都使得开发者在开发应用时可以更加高效;

4. Open - Dart / Skia / Flutter (Framework),这些都是开源的,Flutter 与 Dart 团队也对包括 Web 在内的多种技术持开放态度,只要是优秀的他们都愿意借鉴吸收。而在生态建设上,Flutter 回应 GitHub Issue 的速度更是让人惊叹,因为是真的快(closed 状态的 issue 平均解决时间为 0.29天);

让我们在2019年重新认识 Flutter

让我们在2019年重新认识 Flutter注:数据源自 Flutter 还有4116个Issue,是否成熟?

五、Why use Flutter

为什么要使用 Flutter?仅仅因为他是「Google 下一代操作系统」Fuchsia OS 的内置 UI SDK 么?

让我们在2019年重新认识 Flutter

让我们在2019年重新认识 Flutter让我们看的再详细一些,上一张 Flutter 系统架构图,根据之前在问题「开发跨平台app推荐React Native还是flutter?」下的 回答 ,我尝试简单解读一下:

让我们在2019年重新认识 Flutter

让我们在2019年重新认识 Flutter从上至下分别为 Framework,Engine 和 EmEmbedder:

  • Framework 层是框架使用者需要直接面对的,包含文本/图片/按钮等基础 Widgets、渲染、动画、手势等。如果你写 Flutter 应用,那么大致可以理解为调用这些 package 然后再用 Dart 「拼装」些自己的代码。
  • Engine 层使用 C++ 实现,这一层包含 Skia,Dart 和 Text。后两个不太熟,说说 Skia。这是一个二维图形库,提供了适用于多种软/硬件平台的通用 API,既是 Chrome,Chrome OS,Android,Firefox,Firefox OS 等产品的图形引擎,也支持 Windows 7+,macOS 10.10.5+,iOS8+,Android4.1+,Ubuntu14.04+ 等平台;Dart 可能包含 Dart Runtime 等(JIT/AOT),Text 则负责文字渲染部分。
  • Embedder 是一个嵌入层,做的事情是 Flutter to Platforms。比如渲染 Surface,线程设置,插件等。Flutter 的平台层很低,比如 iOS 只是提供一个画布,剩余的所有渲染相关的逻辑都在 Flutter 内部,而这就是 Flutter 所宣传的可以精准控制每一个像素的原因;但不可否认,对于插件部分,还是需要特定操作系统底层的建设(比如支付、地图等)。

有没有对 Flutter 更清晰一些?

如果说再举一点可以打动你使用 Flutter 的地方,那就是 animation 了。利用 Flare 你可以轻松构建支持 Flutter 的动画效果。这有点像十年前用 Flash 做关键帧动画的感觉。

当然,Flutter 和 Dart 团队的不断努力和优化更是说服你选择 Flutter 的理由之一。在刚不久前结束的 D2 上,Google 工程师介绍了为什么 Flutter 可以如此快,比如 Dart 在运行时更少的 malloc,Flutter 应用运行时有更少的处理环节(跳过 Android/Chromium),Flutter 在渲染布局上更高效的遍历过程等等。

让我们在2019年重新认识 Flutter

让我们在2019年重新认识 Flutter面向未来,让你在 Flutter 上下注的因素更少不了 HummingBird 和 Flutter for Desktop。STAY TUNED FOR GOOGLE I/O 2019!

让我们在2019年重新认识 Flutter

让我们在2019年重新认识 Flutter六、Code with Dart

利用 Flutter 提供的脚手架,做一个简单的 Demo 你甚至只需要写更改两个文件:main.dart 和 pubspec.yaml。作为前端,你可以将它们比做 index.js 与 package.json 吧。详尽的代码可见 https://gist.github.com/hijiangtao/2b58ab07d3d7ed96aa0f868140c906e5 .

让我们在2019年重新认识 Flutter

让我们在2019年重新认识 Flutter七、Take away

人的记忆是短暂的,说了这么多,如果说本文想给大家带去些什么思考的话,我觉得可以总结成下面五句话:

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读