# Flutter简介
# 废话篇
Flutter是google开源的新跨平台UI框架,目标将支持pc,mobile,web前端的UI开发。
pc和mobile端底层的UI引擎是skia,web前端依然是H5 js(不知道什么时候才有机会支持webassembly)。
# 跨平台进化史
# 第一代:原生开发
- 以java为代表的android开发
- 以oc代表的ios开发
- 以C#为代表的wp开发(已死)
# 第二代:H5 各平台原生API扩展插件
以phonegap为代表,包涵:cordova,inoic等,ui完全使用h5运行再webview上
# 第三代:组件化ui 各平台原生API扩展插件
react native 将组件转换为原生UI,调用原生api需要单独引用个平台扩展类库
# 第三点五代:组件化 原生API调用
- nativescript 将组件转换为原生UI,通过反射调用原生api,仅一种js语言搞定(笔者最喜欢这个,可惜不流行)
- xamarin 将组件转换成原生UI,基于view扩展,通过mono实现自己的虚拟机,将原生api转换成C#类库,原生调用,几乎无性能你损失(甚至超越原生性能),唯一的缺点ui是使用xaml绘制,上手难(无wpf经验),UI偏向企业,xamarin支持多种平台:windows,mac,linux,androi,ios,wp,这完全得益于mono的支持
# 第四代:各平台UI 原生API调用
将kotlin转换成对应平台的语言,唯一缺点UI需要对应平台编写,优点:语法精简,原生性能,屌屌屌!
# 第四代:原生UI 各平台原生API扩展
flutter技术,google亲儿子,唯一不爽的是dart语言,ui使用skia重新实现,抛弃历史包袱,2Dui可以达到60帧,好得益于skia,3D有点弱,调用原生需要编写原生的扩展,仅UI部分通用,调用原生UI方便,几乎无侵入性,优点:UI编写快!快!快!缺点:UI维护难!难!难!
flutter技术从面世就得到大家的一致追捧,潜力无穷,希望越来越好。
# 第五代:原生UI 原生API调用(臆想)
flutter xamarin:flutter开发UI,有mono提供原生api的访问(已经发现支持的早期版本)。
flutter kotlin:flutter开发UI,kotlin提供原生api的访问。
# 第六代:未来
5G时代,终端仅用于图片的绘制,所有交互全部由服务端提供。