1.Flutter是什么?
官方给的解释是Flutter is Google’sUI toolkit for building beautiful, natively compiled applications for mobile, web,and desktop from a single codebase. 翻译:Flutter 是谷歌的 UI 工具包,用于构建美观、 本机编译的移动、网络和应用程序来自单个代码库的桌面。
2.Flutter的特点
美观、快速、高效、开放。
2.1 美观:使用Flutter内置美丽的Material Design和Cupertino widget、丰富的motion API、平滑而自然的滑动效果和平台感知,为您的用户带来全新体验。
2.2 快速: Flutter 的 UI 渲染性能很好。在生产环境下,Flutter 将代码编译成机器码执行,并充分利用 GPU 的图形加速能力,因此使用Flutter 开发的移动应用即使在低配手机上也能实现每秒 60 帧的 UI 渲染速度。 Flutter 引擎使用 C++ 编写,包括高效的 Skia 2D 渲染引擎,Dart 运行时和文本渲染库。
2.3 高效: Hot Reload (热重载) ,在前端已经不是什么新鲜的东西,但在移动端之前一直是没有的。
2.4开放:Flutter 是开放的,它是一个完全开源的项目。
3.跨平台方案,可以优先选Flutter方案
方案一:H5开发 基于 JavaScript 和 WebView的跨平台。主要是通过HTML来构建自己的界面,再将其显示在各个平台的WebView中。
方案二:React Native开发 是一个移动框架,也可以说是JS框架,它里面提供了很多JS函数,这些JS函数直接映射到系统函数上的,针对不同的平台提供了不同的API,所以ReactNative开发跟原生开发没有太大区别, 但是ReactNative的本质是通过JavaScript VM调用原生接口,通信相对比较低效,而且框架本身不负责渲染,而是间接通过原生进行渲染的,所以性能上还不如原生开发。 但它性能比web开发要好,因为它不依赖于webview了,开发的时候用js代码,编译的时候就生成原生代码。它被用来移动开发(iOS和Android)、智能设备(如手表、电视)、增强现实等。由于RN没有DOM可交互,所以它没有使用React中使用的相同类型的HTML标记,而是使用自己的标记,这些标记随后被编译成其他语言。例如,RN开发者使用RN内置的标签,而不是HTML标签,它可以在后台编译成其他本地代码(例如Android上的View;iOS上的UIView)。React Native 支持热更新!
方案三: Futter开发 Flutter 与React Native的本质区别:Flutter 有自己的组件渲染闭环,不再是调用android或iOS平台下的组件进行渲染。 总之,Futter包含框架、widget和工具,为开发人员提供了一种在Android和iOS上构建和部署精美移动应用程序的简单高效的方式。 Flutter既不使用Webview,也不使用操作系统的原生控件。 相反,Flutter使用自己的高性能渲染引擎来绘制widget。 Flutter代码都是先AOT(运行前)编译为Android/Ios下的本地代码,再运行的。 Flutter不支持热更新
今天的分享结束了,再见~
|