回顾移动的发展历史,从Android 和 iOS 开发起步的时候,大家用的最多的就是原生开发,
第一阶段技术:原生开发
当时的架构都是这种形式,在系统的framework上面不断的开发新的功能,那个年代,开源库也没有现在这么多,所以大家都是出于造轮子的过程。
但这样明显有一个痛点:就是 Android iOS WP,网页端四分天下的格局,每个公司需要维护四个团队,这样成本很高,所以就有了一个迫切的需求,能否开发一套在多个平台上运行,这样可以大大降低开发成本。
第二阶段的技术:HYBRID
这个阶段h5兴起,甚至有一段时间大家觉得h5会替代Android原生开发,当时也出现了很多的开源框架来实现H5与底层的交互框架:PhoneGap,Cordova,Ionic,Xamarin
当然这种想法只持续了很短的一段时间,因为虽然在这种架构上有开发成本低,简单,跨平台等很多的优点,但有一个致命的缺点性能问题导致他只能在很少的应用上取得成功。(cordova官方统计,大概只有5%的使用cordove的应用能够取得成功)
这种现象持续了没有多久就有很多公司幻想能不能有一种既能跨平台,性能又高的架构解决这个问题呢?
第三阶段技术:跨平台
大家看到这个架构可能一下子就想到了 RN,对,当开发者认识到 H5 是性能的遇到瓶颈问题时,果断的采取了通过原生绘制的方式来实现。这样大大的解决了性能问题。
其实采用这种技术的不止 RN,还有Weex,Luaview ,等目前的跨平台方案,他们的原理大同小异,只是上层采用的语言不同,中间采用的桥有差异而已,整个架构思想。
Flutter本身支持Android和iOS两个平台,除了性能和开发语言上的“native”化之外,它还提供了两套设计语言的控件实现Material & Cupertino,可以帮助App更好地在不同平台上提供原生的用户体验。但是严格意义上的FLutter还是算UI框架,他的优势在于响应式的理念和渲染机制的优势。
但笔者认为有空学习下Js, Ts, 我认为好过 Flutter ,Kotlin!。目前大厂的出的各种跨端框架,都依赖Js, Flutter目前无法大面积在企业级应用。