1.跨平台方法
-
1.H5+原生(Cordova、Ionic、微信小程序)
-
2.JavaScript开发+原生渲染 (React Native、Weex、快应用)
-
3.自绘UI+原生(QT for mobile、Flutter)
以上三种方法的利弊在这里就不在赘述了,感兴趣的可以自行搜索
2.下面我们看一下flutter的框架结构
截屏2020-04-09下午10.07.35.png这是一个纯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开发的大多数场景,只是和这两层打交道。
3.学习flutter的渠道
1.Flutter官网,Flutter中文网,以及Github和StackOverFlow
2.Flutter社区
3.Flutter官方demo和对应的源码
4.网站博客
网友评论