Flutter跨平台方案的选择

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不支持热更新功能


今天的分享结束了,再见~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容

  • 首先介绍下自己的背景: 我11年左右入市到现在,也差不多有4年时间,看过一些关于股票投资的书籍,对于巴菲特等股神的...
    瞎投资阅读 5,827评论 3 8
  • ![Flask](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW...
    极客学院Wiki阅读 7,459评论 0 3
  • 不知不觉易趣客已经在路上走了快一年了,感觉也该让更多朋友认识知道易趣客,所以就谢了这篇简介,已做创业记事。 易趣客...
    Physher阅读 3,467评论 1 2
  • 双胎妊娠有家族遗传倾向,随母系遗传。有研究表明,如果孕妇本人是双胎之一,她生双胎的机率为1/58;若孕妇的父亲或母...
    邺水芙蓉hibiscus阅读 3,739评论 0 2