fluttering Flutter( 五 )


我们上面使用的都是 Material Design 的控件 , 它们都是在 flutter/material.dart 包里面的 。如果要使用 iOS 风格的控件 , 则要用到 flutter/cupertino.dart 包:
iOS 风格的控件 , 基本都以 Cupertino 开头 。我们把计时器页面里的控件替换一下:
效果如下:
代码的部分就到这里了 , 接下来跟大家聊一下编译方式 , 编程语言的编译方式有两种 。
关于它们孰优孰劣 , 就要看从哪个角度去对比了 。JIT 的话 , 它的一大特点就是支持动态发布代码 , 也就是支持热更新 。但要是从性能的角度考虑 , AOT 会更好 , 因为在运行的时候不用再进行编译的操作的 , 运行的效率会更高一些 。
回到我们一开始的时候留下的问题 , 为什么别的跨平台方案都是用 JavaScript , 而 Flutter 要用 Dart 来开发 。JavaScript 的编译方式是 JIT 的 , 它不支持 AOT 。而 Dart 同时支持 JIT 和 AOT 。
Flutter 在开发阶段使用 JIT , 让我们用上了热重载 , 增加了开发效率 。在打包时改用 AOT , 保证了正式版应用的性能 。
最后讲一下大家比较关心的一个东西 , Flutter 是否支持热更新?前面说到 Dart 支持 JIT , 所以从技术层面它是支持的 。但是目前是不支持的 , 在官方的计划文档中 , 可以看到:
至于原因 , 官方在这里进行了说明 。总的来说 , 是由于政策的限制 , 以及出于对性能和安全性的考虑 , 暂时不支持了 。
到这就结束啦 。由于想把 Flutter 基础在一篇内讲完 , 没有涉及太多细节 , 如果要写 Flutter 代码还需要深入学习 。但相信理解之后再学 , 会轻松很多 。

秒懂生活扩展阅读