在终端互联网时代到来之后,以QQ、淘宝网为代表的app加速占有了他们的智能手机,微软的加速覆灭,苹果公司智能手机独领风骚,以iOS、Android的应用程序合作开发需求加速减小,导致iOS、Android的技师们成了抢手货,薪水高,工作Vielle。在之间还历经过几段windows phone,后来随着微软的覆灭,也就死透了。
那时只剩Android和iOS两方了,反之亦然虽然是两个相同的系统,反之亦然的一个应用领域需要合作开发三遍,撇开物力生产成本的成倍增长,由于是相同项目组所合作开发,因此在技术细节的实现上,和应用领域的连续性单厢产生难题。
因此亟需一种只需合作开发一场,能够运转两边的技术计划。在PC端,应用程序毫无疑问是最合适的跨端应用领域解决计划,他们只需合作开发一个web应用领域,如果在windows、mac、linux上有应用程序就能运转。
原生植物 + webview 计划
在终端端中也是一样的规矩,如果在Android和ios中透过webview读取web应用领域就能达至合作开发一场,运转两边的目的。
但webview也有其优点,web应用领域的新体验无法达至原生植物应用领域的新体验。但其合作开发生产成本低,被许多app所采用,做许多卡唐翁业务的网页。
纯webview计划
为了更为加速的合作开发app,也问世了许多以webview为主的架构,比如说最先的phonegap,以web合作开发居多,并透过原生植物应用程序来提供原生植物机能,像探头、记事本、自然地理功能定位、储存等机能。
那时常见的有ionic架构,支持angular、react、vue架构展开合作开发。
web技术 切换原生植物模块
虽然webview的操控性新体验难题,和mvvm架构的成形,react发布了react native,它的标语是learn once,write anywhere。react native让他们采用react架构来合作开发终端应用领域,它选用一般来说的模块和CSS,然后将其专切换为原生植物模块展开图形,新体验方面更为接近如在植物应用领域。
react native能和原生植物应用领域展开混和合作开发,也能只选用react native展开合作开发。
那时许多的app也单厢选用rn混和这种计划,只有小量的webview网页。
flutter Saverdun发动机
react native也并不是完美的解决计划,虽然其为采用js编写ui界面,在图形的时候展开将js切换为原生植物的ui,因此展开复杂计算面,大数据量,或者动画时,就会产生一定的操控性难题,增加应用领域的耗电量或网页卡顿等难题。
由google开源的flutter颠覆了这一切,它并没有选用js转原生植物模块的方式,而是采用google的dart语言和自带的skia图形发动机来合作开发ui界面。这就相当于他合作开发一个应用程序,并且还规定了合作开发ui模块的语言(dart)和api,全部都是自己的,因此高操控性成为了其最大的优势,完全能和原生植物合作开发新体验相差无几。
flutter最开始时只支持Android和iOS两个平台,那时不仅增加了web平台,桌面端Windows、macOS和Linux应用领域程序,还有智能设备、可穿戴设备和车载设备等嵌入式应用领域。
颇有有一统天下的格局,这种产品恐怕也只有Google能够做出来。
小程序计划
小程序计划应该是QQ最先发布的,并且大规模采用的。小程序计划是基于webview展开图形,透过将web资源展开离线储存展开加快读取。但离线储存也不能解决全部难题,网页读取大量的CSS或者JavaScript依然会有白屏的难题。因此小程序的逻辑层和图形层是分开的,而非像网页中图形线程和脚本线程是互斥的,大量的脚本会导致网页失去响应。
随着QQ小程序计划的逐渐成形,各大app也争相效仿,支付宝小程序、百度小程序、抖音小程序等等。
总结那时主流计划
目前主流的大型app也无外乎上面几种计划
1、原生植物 + rn混和合作开发,比如说网易云音乐app,参考文章:https://segmentfault.com/a/1190000023860988
2、原生植物 + flutter 混和合作开发 比如说闲鱼app,参考文章:https://www.infoq.cn/article/xianyu-cross-platform-based-on-flutter
3、原生植物 + 小程序,比如说QQ、支付宝、抖音、头条等。
4、上面几种计划的任意混和