Flutter简介

Flutter特色

  1. Google 出品
  2. 使用Dart语言开发
  3. 支持跨平台,高性能,
  4. 使用自绘渲染引擎

特色详解

1.高性能

2.快速内存分配

Flutter框架使用函数式流,这使得它在很大程度上依赖于底层的内存分配器。所以,拥有一个可以有效地处理琐碎任务的内存分配器将显得十分重要,在缺少此功能的语言中,Flutter将没法有效地工做。固然Chrome V8的JavaScript引擎在内存分配上也已经作的很好,事实上Dart开发团队的不少成员都是来自Chrome团队的,因此在内存分配上Dart并不能做为超越JavaScript的优点,而对于Flutter来讲,它须要这样的特性,而Dart也正好知足而已。
前端

3.类型安全

因为Dart是类型安全的语言,支持静态类型检测,因此能够在编译前发现一些类型的错误,并排除潜在问题,这一点对于前端开发者来讲可能会更具备吸引力。与之不一样的,JavaScript是一个弱类型语言,也所以前端社区出现了不少给JavaScript代码添加静态类型检测的扩展语言和工具,如:微软的TypeScript以及Facebook的Flow。相比之下,Dart自己就支持静态类型,这是它的一个重要优点
安全

Flutter架构

flutter-framework.png

Flutter Framework

这是一个纯 Dart实现的 SDK,它实现了一套基础库,自底向上,咱们来简单介绍一下:架构

  • 底下两层(Foundation和Animation、Painting、Gestures)在Google的一些视频中被合并为一个dart UI层,对应的是Flutter中的dart:ui包,它是Flutter引擎暴露的底层UI库,提供动画、手势及绘制能力。
  • Rendering层,这一层是一个抽象的布局层,它依赖于dart UI层,Rendering层会构建一个UI树,当UI树有变化时,会计算出有变化的部分,而后更新UI树,最终将UI树绘制到屏幕上,这个过程相似于React中的虚拟DOM。Rendering层能够说是Flutter UI框架最核心的部分,它除了肯定每一个UI元素的位置、大小以外还要进行坐标变换、绘制(调用底层dart:ui)。
  • Widgets层是Flutter提供的的一套基础组件库,在基础组件库之上,Flutter还提供了 Material 和Cupertino两种视觉风格的组件库。而咱们Flutter开发的大多数场景,只是和这两层打交道

Flutter Engine

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

总结

Flutter做为一款跨平台,开源,具备良好分层的框架,在大前端愈来愈流行的趋势下,是很值得花时间学习一下的。加油!!!函数

相关文章
相关标签/搜索