其实我也并不认为flutter一定是移动技术未来的发展趋势,但是可以确定的说,flutter的方向是没有问题的。即使它不会是成为下一个跨平台技术,也会有一个相似的技术来统治移动平台的发展.
下面来阐述为什么flutter是一个趋势:
我们回顾移动的发展历史,从11年我开始接触Android 和 Ios开发的时候,大家用的最多的就是原生开发,
我称之为第一阶段技术
当时的架构都是这种形式,在系统的framework上面不断的开发新的功能
那个年代,开源库也没有现在这么多,所以大家都是出于造轮子的过程。
但这样明显有一个痛点:
就是Android IOS
winphone,网页端四分天下的格局,每个公司需要维护四个团队,这样成本很高,所以就有了一个迫切的需求,能否开发一套在多个平台上运行,这样可以大大降低开发成本。
所以就出现了第二阶段的技术。
这个阶段h5兴起,甚至有一段时间大家觉得h5会替代Android原生开发,当时也出现了很多的开源框架来实现H5与底层的交互框架:PhoneGap,
Cordova,Ionic,Xamarin
当然这种想法只持续了很短的一段时间,因为虽然在这种架构上有开发成本低,简单,跨平台等很多的优点,但有一个致命的缺点性能问题
导致他只能在很少的应用上取得成功。(cordova官方统计,大概只有5%的使用cordove的应用能够取得成功)
这种现象持续了没有多久就有很多公司幻想能不能有一种既能跨平台,性能又高的架构解决这个问题呢?
这时就来到了第三阶段技术:
大家看到这个架构可能一下子就想到了RN,对,当开发者认识到H5 的绘制问题是性能的瓶颈问题时,果断的采取了通过原声绘制的方式来实现。这样大大的解决了性能问题。
其实采用这种技术的不止RN,还有weex,Luaview等等目前的跨平台方案,他们的原理大同小异,只是上层采用的语言不同,中间采用的桥有差异而已,但是整个架构思想是一样的。
当人们满足于这种开发带来的便利的同时,又有了新的问题产生了,就是桥的成本太高,当涉及到频繁的跨桥调用的时候,就会出现性能问题,还有个更严重的问题就是,维护成本也很高,
当人们认为RN能节省一半工程师的时候,其实RN的维护需要更多的工程师参与进来,
1.RN的整体思想是一处学习到处使用,所以在Android和Ios的使用方式上还是有差异的,而且在开发插件的时候,还是需要开发android
ios两套插件,能达到像H5一样,一处编写,到处运行还是有很大的差异的,所以除了android和ios团队外还需要一个团队维护RN,RN架构的维护成本要比android和ios的开发的难度高多了。所以成本比原来还高,还有很多Rn架构本身没有办法结局的问题,对于小团队来说简直就是噩梦。
所以这时就产生了第四阶段技术方案Flutter
他的整体架构是这样的
它在第三阶段的基础上,增加了一个dart虚拟机,所以减少了桥的交互,所以性能方面会更加优秀,还有一点就是维护上,flutter有Google维护,所以他的插件开发将会更加规范,所以理论上很容易实现跨平台代码复用的情况
综上所述:我更倾向于相信flutter在未来会有一定的发展空间。
但是一个技术能否活下来有很多原因,技术好不一定会火,所以我并不觉得flutter一定会火,但我认为即使不是flutter也会有一个类似于flutter的第四阶段的技术方式来解决目前移动开发的痛点。
下面来说一下google为甚么会选择flutter
在介绍Flutter之前一定要介绍一下Dart语言。
Dart
语言我一直觉得是一个生不逢时的才子,从11年出生开始,他的目的就是干掉JS,但是一年过去了,JS各种框架产生,Dart一直在生死线上挣扎,后来没办法,Dart团队意识到取代是不可能的,先让自己活吧,我可以让你写Dart直接转换为Js,这样你可以用我啦吧,毕竟我比js更牛逼啊,但是还是没人用,后来出现了Fuchsia
os,主要语言就是dart,没人用,我自己用总可以吧,Google对外宣布数据:
2016年谷歌的AdWords、AdSense和Fiber项目团队开始把Dart融入他们的前端应用开发。一项内部报告表明,Dart可以帮助他们提升25%到100%的前端开发效率。谷歌内部的Dart代码量比去年增长了3.5倍
Google从前端,到新开发的系统,到我们现在接触到的flutter都是使用dart,足以见得,google对dart的重视。
但换句话来说,只要有一环能够成功,那么整个环路都能活起来。
可能很多人认为无论是flutter还是dart都不是一个趋势,就像讨论的时候,我们团队的技术专家:旭哥说,google内部有很多团队,这个任何一个都是内部团队互相竞争的一个小产物,未必是google的意图
其实我不反对,但我仍然觉得flutter这种技术是移动发展这么多年之后的必然产物,无论google是否做,都会有人来做。
以上是我借鉴了很多国内外文章的,与一些技术大神讨论之后的产生的一些自己的想法
不一定对,我们让时间来验证吧。
热门工具 换一换