详细描述Web技术与原生APP共存的10年应用号表示比公众号更强大的功能、更好的体验、更丰富的服务。应用号的出现是微信产品的一次重大升级,是否是为了体现用户价值?还是追求产品商业化?作为一名技术人员,不想过多讨论,更愿意从技术的角度来分析Web技术的一些发展。微信作为一款超级App,拥有巨大的入口流量,需要不断产生动态内容。Web技术一直在微信中扮演着重要的角色。如果公众号还是标准的web技术+简单的桥接扩展,那么在应用账号中,web技术将依托更强大的web执行容器,在微信中发挥更大的作用。我们可以看看Web和Native技术在微信中的融合过程,从嵌入式系统Webview,到X5增强的浏览器引擎,再到扩展的JS-SDK,再到刚刚发布的weUI,再到应用号.微信团队一直在推动Web技术在NativeApp中的融合和发展。随着移动设备的快速更新换代,以HTML5为代表的Web技术在NativeApp中的应用场景越来越多。一方面,NativeApp开发团队需要在保证功能和性能的同时,提高开发效率,降低运营成本;另一方面,App用户需要在满足自己的需求和体验的同时,更快地获取动态内容;所有这些都要求Web技术在App开发中发挥越来越大的作用和价值。但这种价值观永远不能称为脱离接触或颠覆。今天,它更像是一种“融合”!从2006年开始从事浏览器引擎和跨平台App引擎工作10年,见证了这10年Web技术在NativeApp中的不断应用和发展。从功能手机到智能手机,从k-java到移动应用,从WebBrowser到Webkit,我们可以将Web技术在NativeApp中的发展分为内置、嵌入式、桥接、混合和集成五个阶段。1、内置自定义Web容器时代2010年之前,功能机仍是主流时代,硬件配置低,系统功能弱,主要使用手机内置应用。但是,SP业务得到了极大的发展,用户需要动态获取内容来满足信息和娱乐的需要。这一时期,Web技术在Native应用中的使用,是Native应用开发者与浏览器厂商合作,将某个厂商的浏览器引擎构建到应用中,作为Web的执行容器。应用程序从服务器动态下载web文件,解压后交给web容器离线运行。内容和功能都很简单,一般就是图片+文字的布局,按钮交互。书籍、杂志、小游戏、小工具等形式。这种需求也带动了一些主流浏览器厂商超越传统价值思考浏览器的作用,积极参与W3CWidget规范的制定。这一时期也是移动浏览器厂商的黄金时代。2嵌入式系统Webview时代2010年,Android系统在国内兴起,iPhone逐渐普及。基于Android和iOS的原生应用生态开始不断培育用户从AppStore下载应用,以独立App为入口。这一时期,App开发的需求也逐渐增多,但竞争还不激烈。客户可以接受原来的开发成本和周期。App开发者是有利可图的,开发者开始学习Android和iOS应用程序开发。系统内置浏览器的功能和性能已经超越了当时的第三方浏览器。通过嵌入系统Webview在App中显示本地或服务器端界面是很常见的。这一时期Web技术的应用主要以内容展示为主,能够完成的功能仅限于标准浏览器支持的范围。然而,传统浏览器厂商依赖Lisence费用的商业模式已经走到尽头,逐渐淡出市场。三、Webview桥接时代2011年,Android和iOS逐渐在手机系统中占据主导地位。App开发需求快速增长,竞争加剧,原生开发者供不应求,客户开始考虑成本和周期,开发者开始考虑效率和利润。开发者开始思考Webview是否可以完成一些App除了展示内容以外的功能。由于内置系统是Webkit引擎,支持标准的Web技术,支持开放扩展。以PhoneGap为代表的国内外厂商开始桥接对Webview的扩展,形成了一套完整的调用机制,可以在JS中任意调用原生接口。这个桥接扩展主要是针对设备功能,提供一个能力,但是更具体的映射需要开发者自己完成。由于没有涉及窗口系统、交互响应、动画效果、事件管理、应用生命周期管理等扩展,开发的App虽然基本功能可以满足要求,但性能和体验太差。这时,通过Webview+bridgeextension的方式,native工程师和web工程师可以协同完成一个app的开发。在此期间,移动应用程序中标准网络技术(HTML、CSS、JS)和桥接扩展机制的使用也导致了一些使用非标准网络技术(自定义XML标签和JS语法)的传统移动中间件厂商的消亡.4、移动应用开发平台的HybridApp时代始于2012年,App创业风起云涌,App需求持续增长。应用场景和行业组合更多:LBS、IoT、O2O、社交、视频等。一方面,使用HTML+CSS进行界面布局,存在Dom树更新和单层渲染的性能问题,另一方面支持标准JavaScript规范的能力非常有限,需要大量的扩展来满足行业需求;另一方面,本地开发模型成本高且效率高。Low,业界呼唤更高效的跨平台开发模式。在此期间,国内外的跨平台技术也层出不穷,新产品不断涌现,但我们可以分为两类:一是继续使用HTML+CSS进行界面布局,通过优化页面渲染和标准JS进行原生扩展,实现跨平台App开发。另一种是放弃使用HTML+CSS的界面布局,选择第三方中间语言(如JS、C#等)映射Android和iOS系统调用,实现跨平台。该方法的界面布局需要通过中间语言组合系统的UI组件来完成。目前渲染性能优于HTML+CSS,但也失去了HTML+CSS布局的标准化、灵活性和便捷性。本文主要探讨Web技术在App中的发展过程。不可能有HTML和CSS,所以这里重点介绍最新的跨平台产品(Web+Nativehybrid)。像ReactNative,虽然他选择的第三方语言是JS,但是他也可以选择其他语言。由于不再是HTML和CSS的界面布局方式,我认为它已经脱离了标准的Web技术,这里不再赘述。而此时,国内的HTML5也开始流行起来,一大批Web程序员都期待着进入NativeApp开发领域。这时,开始出现了面向Web工程师的移动应用开发平台(Web+Native混合),提供一站式跨平台App开发和管理服务,形成了Web技术与NativeApp相结合的新模式。HybridApp是一种基于Web技术的NativeApp开发模式。开发人员不需要具备任何Native技能。他们可以通过使用标准的Web技术,调用平台的扩展API,开发独立的跨平台App。并且可以保证App的功能、性能和体验。HybridAppEngine需要在桥接扩展的基础上提供更多的功能,例如:1.MVC架构;2、应用生命周期和统一事件管理;3、优化交互响应、动画效果、数据缓存等;4、Web界面与Native组件混合渲染;5、丰富的独立功能模块和聚合的开放平台API;6、扩展主流HTML编辑器,支持App开发;7、App安全机制,Web代码全包加密;一个优秀的跨平台应用引擎,如APICloudDeepEngine,可以用来开发满足客户需求和用户体验的商业应用,同时降低开发成本,提高开发效率。基于APICloud,客户也开发了安装量过千万的主流优质应用。5基于SuperWebview的集成时代进入2016年,虽然HybridApp已经得到业界的广泛认可,但Native仍然是主流的开发模式,大部分优质APP都是原生的。我们如何在这些NativeApps中使用Web技术?如何在保证应用性能和体验的同时,利用Web技术完成这些主流应用中的部分功能?Native工程师和Web工程师如何更好的协作?针对这些问题,我们不能只是嵌入一个系统的Webview,或者引入桥接扩展机制,而是需要一个强大而完整的超级Webview,并根据实际配置为每个应用动态生成专用的SDK。这种超级Webview应该具备以下功能:1.功能强大,具有MVC架构和性能优化;2、聚合API,支持扩展模块和开放平台服务;3、动态生成,根据配置,动态生成每个应用专属的SDK;4.云端修复,实现应用内更新功能。促进协作,保持Web和Native开发的独立性,降低集成成本,提高效率。APICloud在2016年初推出了这款超凡脱俗的产品——SuperWebview。SuperWebview的出现,必将加速Web技术在NativeApps中的融合,在优质NativeApps乃至超级Apps中发挥更大的作用。任何NativeApp集成SuperWebview后,可以大大缩短迭代周期,支持功能的动态增加。一些通过web技术实现的功能更新不需要重复提交到AppStore审核。用户无需重新下载安装。开发APP,谁是主角?是Native+Web,还是Web+Native?就看谁更适合当主角,谁当主角就能把戏演好。一部好戏不可能只有一个主角,只有互补才能上演好戏。NativeApp是随着移动设备而诞生的,而Web技术从诞生之日起就与NativeApp相辅相成、共存。APICloud从来没想过“颠覆”,只是想提供一种真正高效的App开发方式,让Web技术和NativeApp更好的融合,发挥各自应有的优势和价值。超越源于融合!
