不可否认,HTML5控制技术这类具有许多竞争优势。但是,如果HTML5想成为移动互联网黄金时代App合作开发的非主流控制技术,有一个必要性的先决前提,就是它的机能、操控性和API扩充潜能上要要达到Native的水准。而在这一点上,倚靠W3C规范化的表述和应用程序供应商的全力支持是不现实生活的,混和合作开发设计是惟一解决之道。
更让人惊异的是混和合作开发设计历经了近10年的产业发展,那时总算足够多成形,因此实现了小规模的商业性应用领域。依照Gartner控制技术适用性抛物线数学模型的表述,混和合作开发设计已经具有“逐步飙升的荣光期”要求的大部份前提。
控制技术适用性抛物线数学模型
“控制技术适用性抛物线数学模型”是业内普遍认可的、用作来衡量几项控制技术适用性的国际标准数学模型。Gartner作为亚洲地区最权威性的IT研究与高级顾问咨询机构,每月也是依照此数学模型来预测和假设各种控制技术的适用性。
该数学模型认为几项控制技术的产业发展可以分成5个期,因此对每一期的边界线和特点进行了明晰的表述。
第二个期-控制技术革新的开启期:控制技术基本概念被提出、有关产品再次出现、新闻媒体有报导、有晚期使用者试著、金融行业应用领域可行性研究还没有断定
第三个期-最佳值期许的高峰:控制技术管理体系成形、更多有关商品正式发布、新闻媒体肆意报导、部分获得成功事例再次出现、过多、最佳值的毫无意义的金融行业期许
第三个期-泡沫再次出现的低谷期:控制技术局限和缺点暴露、部分商品运营艰难甚至死掉、新闻媒体兴趣下降、一些使用者验证失败、金融行业前景不明
第四个期-逐步飙升的荣光期:控制技术特点清晰因此被使用者理解、平台化、组件化和生态化的商品再次出现、新闻媒体重新认识、小规模和重量级的获得成功事例再次出现、金融行业应用领域前景明晰
第五个期-实质生产的高峰:控制技术管理体系完备因此国际标准化,商品有关的生态和产业链蓬勃产业发展、新闻媒体一致好评、成为非主流控制技术并广泛应用领域、金融行业应用领域稳定
混和合作开发控制技术的适用性抛物线
依照“控制技术适用性抛物线数学模型”的表述,我们可以绘制一条描述混和合作开发设计的适用性抛物线,由此可见证那时的混和合作开发设计正处于第四个期的后期,并即将从“逐步飙升的荣光期”迈入“实质生产的高峰”。
我们来简单回顾一下混和合作开发设计的产业发展历程:
第二个期:2009~2012年左右,混和合作开发设计的基本概念被正式提出,此时已经有PhoneGap类似的商品在市场上正式发布,因此有一定量的新闻媒体报导。
第三个期:2012~2015年左右,混和控制技术蓬勃产业发展因此被新闻媒体肆意报导,2014年下半年HTML5国际标准定稿,同时市场上有更多混和合作开发设计的商品正式发布,比如在2014年面世的APICloud,在2015年Facebook推出的ReactNative,此时金融行业对混和合作开发设计抱有很高的期许的。
第三个期:2015~2016年左右,混和合作开发设计进入了一个低谷期,至少在金融行业使用者的眼中是一个低谷,这有多方面的原因:
最佳值的期望造成在一些不适合的领域内应用领域
由于不理解控制技术特点和原理,所以采用了不合理的合作开发方式
控制技术商品这类不够成形,在操控性和兼容性方面还存在问题
学习资源太少和缺乏优质的社区,合作开发者这类需要一个踩坑和成形的过程
扩充模块太少导致机能受限,这是最主要的原因之一;合作开发者用混和控制技术合作开发一款app,最后发现大量的机能还需要自己通过Native来扩充,最典型的就是各类开放服务SDK的封装,常见的例如:支付、地图、推送、统计、客服、IM、IoT、AI等等,每一类服务又分不同的供应商,如果混和合作开发设计平台这类不提供相应的模块或插件,合作开发者就得自己封装,这里面的工作量和要踩的坑非常之多。
其实任何一门控制技术的成形,一定需要历经平台化、组件化和生态化的产业发展过程,这个过程需要大量的合作开发者参与,因此需要大量的应用领域来验证,使用者一定会遇到问题和挑战,如果期许最佳值或者使用方式不正确,负面的评价和失望的结论就难免会再次出现。
第四个期:在2016~2018年,混和合作开发设计逐渐成为几项被人熟知的常规控制技术,使用者能够依照自身商品的研发需求自然的选择和合理的使用。虽然新闻媒体关注度有所下降,但是却在实际应用领域中取得了实实在在的产业发展和完善,表现为:控制技术特点逐渐被掌握、应用领域领域明晰、机能覆盖越来越全面、操控性体验显著提升、一些优质的混和合作开发设计商品完成了平台化、组件化和生态化的产业发展过程、小规模的获得成功应用领域事例,混和合作开发模式已经成为一线互联网公司App合作开发的非主流合作开发模式。
第五个期:未来,考虑到合作开发效率和成本,同时又要兼顾机能和体验,纯原生的合作开发模式会越来越少,基于HTML5的混和合作开发设计将成为全金融行业移动应用领域合作开发的非主流控制技术。混和合作开发的思想会被大部份的使用者接受,混和合作开发设计的门槛会越来越低,因此逐渐形成一些国际标准化的商品。
混和合作开发设计处于荣光期的6大特点
下面就详细阐述一下目前混和合作开发设计处于荣光期的6大特点
(1)控制技术特点清晰,使用者能够正确使用混和合作开发设计
今天的合作开发人员对混和合作开发设计的特点已经有了充分了解,合作开发一款App,哪些机能可以使用HTML5,哪些机能要要用Native模块扩充,详细大家已经有了清晰的认识。怎样应用领域混和控制技术对app合作开发非常重要,这里总结如下几点:
HTML&CSS的导出:能用HTML+CSS来布局的界面一定要用,HTML和CSS经过了这么多年的产业发展,国际标准已经非常完备,布局效率也是最高的。虽然HTML和CSS的导出需要一点儿时间,但是移动app的页面通常都很小,元素也很少。只要我们严格控制每一个页面中HTML和CSS代码的大小,完全按照商品设计来精细的编写HTML和CSS代码,不要引入重型的框架,不要再次出现无用的代码,那么这个导出过程对界面显示速度的影响其实很小。
Layout&Render
的机制:应用程序的渲染机制与原生不同,应用程序的渲染需要经过Dom Tree-》Layout Tree-》Draw的过程,因此这个Draw的实现是在应用程序内部自己完成的,这决定了其渲染速度要比原生慢。特别是在移动app中表现得更明显,因为在移动app中,使用者会进行频繁的交互操作,例如:下拉刷新、界面滚动、手势动画等,这些操作效果引起的界面变化需要应用程序对整个界面进行重绘(重新Layout和Draw),应用程序这类渲染的效率就不高,频繁重绘造成的结果就表现为闪屏、界面卡顿,使用者体验差。所以,在混和合作开发一定要尽量避免引起应用程序的重绘,要通过原生的机制(调用混和合作开发平台的扩充API)实现下拉刷新、界面滚动、手势动画等会引起应用程序重绘的机能。其实HTML5界面的第一次渲染的使用者体验并不差,因为打开新页面使用者可以接受有一个短暂的响应时间,而且通常界面切换会伴随转场动画和加载过程。但是频繁的应用程序重绘就会影响体验。
界面切换和转场效果:App的界面切换会伴随各种转场效果,这样使用者的操作感好,交互体验也好。HTML5的a标签跳转默认没有动画,SPA方式下div切换也没有动画,用HTML5的JS或CSS3来模拟这些Native窗口的的转场效果体验很差。在混和合作开发中app需要构造和原生一样的多窗口UI结构,这样就可以使用原生的转场效果,通常每一个混合控制技术平台都有自己的一套UI结构,诸如Widget、Layout、Window、Frame和UIModules组件。一款App如果有50个界面,那么就需要构建50个Window,每一个界面都是一个独立的Window(Window是一个国际标准Native的窗口,可以使用Native的界面切换和转场效果),在每一个Window内部加载HTML5页面。
网络请求和数据存储:国际标准HTML5在跨域异步请求、Socket通信、异步和结构化的本地数据存储、存储容量、图片和数据缓存等方面相比Native在机能和操控性上还存在很大差距。混和合作开发中我们需要通过原生方式实现这些机能,目前国际标准的混和合作开发设计平台都会为这些功能提供了封装好的API,方便合作开发者调用。
JavaScript
的执行和桥接:很多合作开发者认为由于JavaScript是在应用程序主线程中执行,耗时的JavaScript操作会阻塞主线程,从而影响界面的渲染。其实任何耗时的操作,放在主线程中都会阻塞UI,在Native合作开发中也是一样,在Native合作开发中,遇到耗时的操作我们也要新起一个线程,不能将这部分代码放到的UI线程中执行,否则一样阻塞UI。耗时的JavaScript操作,例如:复杂的数据导出、数据加解密、复杂的运算等等,在混和合作开发的中,我们需要将这些耗时的操作放到Native扩充模块中来完成,在Native代码中新起一个线程来执行。同样,那时的混合合作开发设计平台也都会为这些耗时的机能提供国际标准化的扩充模块。另外就是JavaScript与Native的桥接成本,其实无论这种桥接是通过映射还是命令队列来实现,相比于机能调用本事的执行成本,这部分的成本可以忽略不计。
开放服务的集成和封装:App中会用到很多的开放服务,常用的例如:支付、地图、客服、统计、推送、IM、IoT通信、各类AI识别等等。通常服务供应商都会提供Native版本的SDK,这些Native的SDK在HTML5无法直接调用,JS版本的SDK要么没有,要么机能不全。所以,混和合作开发中我们需要通过原生的方式分别封装不同供应商的Android和iOS版本的SDK,才能在自己的app中集成使用这些服务。而在有些混和合作开发平台,已经已经封装好了大部分非主流开放服务的API,合作开发者可以直接调用,下图是APICloud的模块Store中聚合的有关模块。
其实,混和合作开发设计的本质就是要用Native控制技术来解决HTML5机能和操控性的问题,哪些方面需要混和?如何进行混和?掌握混和控制技术的特点并正确使用则非常关键。
(2)应用领域领域清晰,使用者依照自身需求正确选择
任何应用领域都可以使用混和控制技术合作开发,关键还是要依照自身需求来选择。如果一款应用领域核心机能和大部分的界面都要要原生实现,那么就没要使用混和,例如游戏、美图等。如果只有部分界面需要原生实现,其他界面用HTML5没问题,那就可以采用混和,例如电商类app,商品分类、商品列表、商品详情、购物车、订单等界面用HTML5实现没有问题而且效率更高,那时几乎大部份非主流电商app(淘宝、京东、天猫等)都采用混和合作开发,混和合作开发设计已经是电商app面向运营快速迭代的控制技术支撑。
(3)机能覆盖全面,使用者无需再花精力自己扩充
混和合作开发设计平台经过这么了多年的产业发展和完善,机能已经非常全面,基本可以覆盖app合作开发需要的大部份机能。
(4)操控性体验优化,已经基本达到原生的国际标准
那时,合作开发者已经非常清楚HTML5会存在哪些操控性问题,在混和合作开发模式中,如果使用HTML5会产生操控性问题,我们就会通过原生扩充的方式来代替,我们可以合理的使用HTML5控制技术。所以如今使用混和控制技术合作开发的app,拥有和Naive一样的UI结构和机能扩充,操控性方面已经可以达到Native的国际标准。
我们对比预测了一款在APICloud平台合作开发的电商app,分别与淘宝和京东两款app在5个方面进行对比,测试覆盖了大部份主流机型,测试时间以秒为单位,测试结果操控性基本无差别。
应用领域开启速度:测试从点击应用领域图标开始,到进入首页的时间
导航切换速度:三款应用领域都是底部导航,切换底部菜单,测试切换的时间
打开新页面速度:点击商品列表,打开商品详情界面,测试打开新页面的时间
调用开放服务速度:点击语音按钮,打开语音识别界面,测试调用开放服务的时间
(5)完成了平台化、组件化和生态化产业发展
目前跨平台控制技术领域分成两个产业发展方向:
第二个是HTML5+ Native混和方向;
其中APICloud和微信小程序都属于前者(虽然微信小程序合作开发使用自己表述的标签和样式,但是执行前还是要转化为国际标准HTML5)。
HTML5+ Native混和,也就是我们通常所说的混和合作开发。
这种模式的合作开发主体是HTML5,但整个app的架构是Native架构:通过HTML5快速实现app的UI布局、商品业务逻辑,在合作开发过程中涉及HTML5无法实现或者体验不好的机能,则借助Native模块来实现。
第三个是中间语言编译方向;
中间语言编译方向,代表商品为React Native(RN),Xamarin以及Google刚刚正式发布的Flutter。
如何理解中间语言编译?
以RN为例,传统的app合作开发,要求合作开发者使用Android和iOS原生控制技术-Java、Object-C、C/C++等进行合作开发,而RN的合作开发过程则要求合作开发者使用JS进行编码输出app,但在app执行过程中,JS又映射回到安卓和iOS原生层面执行。借助JS快速实现编码,翻译为原生代码执行,这就是中间语言编译方向。
Xamarin则要求使用微软自己的语言C#,对于大部分合作开发者而言,C#的学习成本比较高且Xamarin需要付费使用,因此它目前在国内应用领域比较少。Flutter的合作开发语言为Dart,它是谷歌发明的编程语言,这个语言很有趣,它的语法类似于C语言,又将JS和Java的一些设计思想以及语法规则融合了进去。Dart语言在此前应用领域比较少,可参考的资料不多,合作开发者上手需要一个过程。
其实那时,两个类型中很多的混和合作开发设计商品都已经完成了平台化、组件化和生态化的产业发展过程,例如:小程序、React Native、APICloud等。
(6)小规模获得成功事例再次出现,成为企业App合作开发的非主流控制技术
那时占领我们手机桌面的很多app都是采用混和控制技术合作开发的,上图中这些app的合作开发人员在不同的场合都分享过使用混和控制技术合作开发各自商品的经验。这里大家可能会有一个疑问,在这些非主流商品中混和控制技术占的比重是多少?是不是只是部分界面使用了,其实在这些app中HTML5占的比重还是很高的,包括我们平时非常熟悉的手机QQ、58同城、支付宝、淘宝、美团等生活类app,以及海尔、春秋航空、Intel、中信证券、VIPKID等大型企业应用领域类app。
以上,从6个方面对目前的混和合作开发设计进行了全面的预测,按照Gartner控制技术适用性抛物线的每一期的表述,我们可以清晰的看到,那时的混和合作开发设计正处于“逐步飙升的荣光期”的后期,并即将迈入“实质生产的高峰”。这一现状也将为金融行业未来的控制技术研发、商品投入和控制技术选型提供了重要的决策参考。
(全文完)