google Dart flutter 介绍

kevin.Zhu 发布于:2018-3-2 9:26 分类:文摘  有 16 人浏览,获得评论 0 条  

https://www.zhihu.com/question/50156415


http://www.sohu.com/a/192998605_635110


SDK 就是 Software Development Kit 的缩写,中文意思就是“软件开发工具包OEM SDKs的意思就是基于设备制造商平台开发商软件开发包的开发。

Apple iOS SDK于2008年发布,2009年发布Google Android SDK。这两个SDK分别基于不同的语言:Objective-C和Java。

应用构建步骤:




您的应用程序会与平台进行交互,以创建小部件或访问相机等服务。小部件呈现给屏幕画布,并且事件被传回给小部件。这是一个简单的架构,但是你需要为每个不同的平台创建单独的应用程序。

由于我们开发的程序最终都是需要运行在设备提供商的平台和设备上的,所以使用OEM SDK可以实现与硬件最高效率的交互。


WebViews

第一个跨平台框架基于JavaScript和WebViews。例如Titanium和一系列相关的框架:PhoneGap,Apache Cordova,Ionic等等。在苹果发布iOS SDK之前,他们鼓励第三方开发者为iPhone构建webapps,所以用web技术构建跨平台的应用程序是一个显而易见的步骤。

应用构建步骤:




使用WebView作为OEM SDK的载体来加载网页程序,中间使用一个“桥”来与平台Rom进行交互,由于不能直接操作硬件平台,再加上所有的视图都是由前端页面构建,所以在使用本地硬件时会有一定不便和性能问题,在UI展示上也不能很好的实现原生的流程效果。


Reactive Views

最近几年,React变得越来越流行,相比大家对ReactJS等其他的反应视图都有了一定的了解,在跨平台领域借助于ReactJS可以很方便的简化Web视图的创建,React Native的诞生更是在很大程度上方便了跨平台开发者。

应用构建步骤:




从构建步骤不难看出,React Native使用了和WebView不同的方式,使用“桥”很好地让ReactJS与OEM SDKs沟通 而非与webView沟通。

在React Native中所有的View基本都是继承于原生平台的View,这使得React Native在原生体验上基本可以达到原生应用的层次,但是在动画高帧率方面还是有很大的不足。


Flutter

像React Native一样,Flutter也提供反应式风格的视图。Flutter采用不同的方法来避免由于使用编译的编程语言而导致的性能问题。Flutter使用AOT编译成多个平台的本地代码。这使得Flutter可以与平台进行通信,而无需通过执行上下文切换的JavaScript桥。编译为本机代码也可以提高应用程序的启动时间。

应用构建步骤:




在Flutter中通过使用本地内部的View来构建View树,然后使用AOT技术在原生平台编译为原生View,中间少了JavaScript桥,在性能上可以说是有了很大的提高,再加上使用的完全都是原生界面的东西,所以在原生界面的还原上也是非常出色的。




当然最新Dart推出2.0 ,Flutter 也推出了 Beta 1这更加确定了Google对flutter重视,毕竟Google现在大部分的广告业务都是借助于Flutter的,所以Flutter相比在最近几年里会有比较好的发展