ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Flutter框架调研

2021-08-19 12:01:43  阅读:549  来源: 互联网

标签:原生 框架 渲染 JavaScript Dart 跨平台 Flutter 调研


背景介绍

原生开发 VS 跨平台技术

原生应用程序是指某一个移动平台(比如iOS或安卓)所特有的应用,使用相应平台支持的开发工具和语言,并直接调用系统提供的SDK API。比如Android原生应用就是指使用Java或Kotlin语言直接调用Android SDK开发的应用程序;而iOS原生应用就是指通过Objective-C或Swift语言直接调用iOS SDK开发的应用程序。

原生开发不能满足移动互联网的高速发展带来的需求,如动态化内容需求增大,务需求变化快,为了减少开发成本和提高开发效率,提出跨平台技术(或称混合平台开发技术)。

跨平台一般指的是Androds和iOS两个平台,跨平台技术主要分为三类:

  • H5+原生(Cordova、Ionic、微信小程序)
  • JavaScript开发+原生渲染 (React Native、Weex、快应用)
  • 自绘UI+原生(QT for mobile、Flutter)

技术类型

UI渲染方式

性能

开发效率

动态化

框架代表

H5+原生

WebView渲染

一般

支持

Cordova、Ionic

JavaScript+原生渲染

原生控件渲染

支持

RN、Weex

自绘UI+原生

调用系统API渲染

Flutter高, QT低

默认不支持

QT、Flutter

Flutter简介

Flutter是Google发布的一个用于创建跨平台、高保真、高性能移动应用的框架。

Flutter属于“自绘UI+原生渲染”的方式,实现了一个自绘引擎,使用自身的布局、绘制系统

移动端开发者可以通过 Dart语言开发 App,一套代码同时运行在 iOS 和 Android平台。Flutter提供了丰富的组件、接口,开发者可以很快地为 Flutter添加 native扩展

Flutter使用Skia作为其2D渲染引擎,Skia是Google的一个2D图形处理函数库,包含字型、坐标转换,以及点阵图都有高效能且简洁的表现,Skia是跨平台的,并提供了非常友好的API,目前Google Chrome浏览器和Android均采用Skia作为其绘图引擎。

Flutter框架结构

Flutter Framework

这是一个纯 Dart实现的 SDK,它实现了一套基础库

Flutter Engine

这是一个纯 C++实现的 SDK,其中包括了 Skia引擎、Dart运行时、文字排版引擎等。在代码调用 dart:ui库时,调用最终会走到Engine层,然后实现真正的绘制逻辑。

Flutter特性

开发效率高

基于JIT模式快速开发,通过Dart的动态解释特性,实现代码热部署和调试。

基于AOT的发布包。Flutter在应用稳定版本发布时通过AOT生成高效的ARM代码保证应用性能,而JavaScript不具备这个能力。

高性能

首先,Flutter APP采用Dart语言开发。Dart在 JIT(即时编译)模式下,速度与 JavaScript基本持平。但是 Dart支持 AOT(提前编译),当以 AOT模式运行时,JavaScript便远远追不上了。

其次,Flutter使用自己的渲染引擎来绘制UI,布局数据等由Dart语言直接控制,省去于Native通信开销

类型安全

相比较JavaScript这种弱类型语言,Dart是类型安全的语言,支持静态类型检测。

Flutter入门实践

研究官网和GitHub的几个示例(待完善)

Flutter技术社区

Flutter官网

官网文档 URL: https://flutter.dev/docs

Fluter中文网 URL https://flutterchina.club/docs/

更新频率

时间

版本

更新内容

2021.5.18

2.2

2021.3.3

2 release

2020.10.1

1.20 release

2020.5.6

1.17

2019.12.11

1.12

Github

Star:128k + 排star榜第16位,对比vue 187k第五位  react 173第六位

Issue:5k+(9240 open, 49058 closed) 截至2021/8/19 11:00 最近一天内提了30+ 已关闭 10

StackOverflow

Tag = [flutter] 97,868 questions

Tag = [dart] 55,626 questions

掘金

Flutter板块已发布9016篇文章

CSDN

搜索Flutter相关,博主等级五级以上相关博客有54,000+

搜索Dart相关,博主等级五级以上相关博客有26,000+

Plugin

Github 项目,已收集670+ https://github.com/jahnli/awesome-flutter-plugins

参考文献

[1] 《Flutter实践》(电子书)

[2] Flutter 官方文档

[3] Flutter 中文网

标签:原生,框架,渲染,JavaScript,Dart,跨平台,Flutter,调研
来源: https://blog.csdn.net/dreamflown/article/details/119798898

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有