从零开始学Flutter开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 跨平台开发技术

移动开发从原始的原生应用开发,到基于Kotiln、Swift 语言开发,再到基于各种跨平台技术开发,经历了多次演变。不过上述方案或多或少都有一些局限性,于是Google 公司推出了新的跨平台移动开发技术方案Flutter。

在移动平台上,原生应用的体验最好,流畅度最高,性能也最好。目前基于跨平台技术开发的应用,其流畅度和体验远远达不到原生应用的效果,多少都会卡顿、丢帧。而基于Flutter开发的应用在体验和流畅度上基本能媲美原生应用,不会卡顿、丢帧,官方显示其渲染性能可以达到120 FPS。

由于SDK 里所有的布局、控件都被组件化,因此使用Flutter 开发应用时效率非常高。Flutter不仅仅局限于跨平台移动应用开发,还支持Web 开发、后端开发、PC 桌面应用开发(内测中)、嵌入式开发(内测中),这也是Flutter 越来越受到关注,被越来越多的大公司和开发者使用的原因之一。

Flutter 支持多种开发工具的插件化使用,能契合不同开发者的习惯,同时做到一套代码逻辑跨平台运行。一些与原生交互的代码可以通过插件形式使用,依然能兼容多个平台。

目前我们在开发应用时,要想兼容iOS 和Android 两个平台,可以有两种技术选择:走原生开发路线,在不同平台上分别实现界面和逻辑;用同一套代码兼容多个平台,但这往往意味着运行速度和用户体验的损失。Flutter 的出现为我们提供了一套两全其美的解决方案:既能直接调用原生代码来加速图形渲染和UI 绘制,又能同时运行在两大主流移动平台上,用户体验和运行速度与原生开发基本一致,效率非常高,学习难度也较低。接下来我们来对比几种跨平台开发技术,如表1-1 所示。

表1-1 跨平台开发技术对比

img

从表1-1 中可以看出,Flutter 的优势明显,具体来说如下。

img 跨平台,一套代码可以运行在Android 和iOS 平台上,未来还可以运行在Fuchsia OS平台上。

img 接近原生应用的用户体验和性能。

img 开发快速,不用单独写布局文件,直接组合相关组件和配置属性。

img 毫秒级的热重载,修改后可以立即看到效果,开发和调试非常高效。

img 自绘引擎,不依赖于WebView 渲染,性能好,体验好。

早在Flutter 1.0 正式版本尚未推出之前,就已经有成百上千的基于 Flutter 开发的应用在 Apple Store 和 Google Play 上架,相信Flutter 将会被越来越多的开发者和公司所采用。