Nuke 与 QAP get started 文档

QAP介绍

Qianniu Application Platform(QAP)是千牛官方推出的、功能丰富的开发者套件。该套件包括了但不限于:

  • 面向前端开发者的JS SDK
  • 功能完善的命令行工具QAP-CLI
  • 丰富的开发文档
  • 贴切的例子

本文将描述QAP的优点和缺点,让开发者快速了解QAP。

体验更好

页面管理

高性能

一直以来,H5编写的插件使用Webview容器加载后,导致内存占用量飙升从而使千牛容易被系统回收。在移动极端机上经常出现的一幕是,千牛插件打开相机等耗内存应用时千牛被回收导致千牛插件无法很好的运行。

经过编译的QAP工程代码会以Native方式解释JS并运行,替代让人诟病已久的webview。带来的好处在于,缩短插件打开时间和提高运行时的效率。由于没有Webview的初始化,和跨进程带来的消耗,千牛插件的启动速度将得到较大幅度的提升。大量的统计表明,IOS插件启动时间约为200毫秒,Android插件启动速度在400~600毫秒之间。插件启动时间的效率媲美原生应用。

千牛插件的离线包方案同样适用于QAP,并且已经集成到QAP-CLi工具里。开发者打包后上传到千牛服务端即可。

成本低

首先QAP提供了命令行工具迁移H5工程,并且允许开发者使用H5和Rx混合式的方法。开发者可以升级部分页面,并且上线查看实际效果。

QAP页面可以使用weex-Rx和H5开发,这两种方式都是使用了前端熟悉的语法。ES6、JSX、Babel和Webpack等都是前端熟悉或者使用过的,不存在很高的学习成本。

在风险成本方面,QAP提供了完整的降级方案和回滚机制,并在打包时提供了H5版本的qap工程,从而保证插件的可用性。

功能丰富

QAP的JS SDK提供了页面栈管理、存储管理(包含session、cookie和持久化存储)、千牛标准协议、TOP API等功能。

页面栈管理提供了open打开页面,navigate跳转到特定页面,还可以指定页面是否允许存在多份实例。存储管理提供了短时效的session和持久化的存储。千牛标准协议指的是千牛开放给外部开发者调用的接口或功能,你可以通过JS SDK方便的调用该协议功能。TOP API是淘宝开放平台提供给开发者的、功能丰富的API集合。你可以通过QAP直接调用该类目的API。

值得一提的是,所有的api请求都提供了Promise版本,意味着你可以这样调用API:

// Promise 形式
QN.top.invoke({
    api: 'taobao.time.get',
    query: {},
}).then(result => {
    console.log(result);
}, error => {
    console.log(error);
});

文档丰富

文档涵盖了新手指引、使用QAP和高级三个部分。对于初次使用QAP的开发者,我们提供快速开始等基础的文档。已经使用QAP且渐入佳境的开发者,我们提供了UI组件列表、API列表等文档,方便开发者查询。开发一个完善的、质量良好插件,往往需要一定时间的QAP相关使用知识的积累,因此QAP提供了开发建议等高级部分的文档。

长期支持

QAP作为千牛官方推出的开发套件,将收到长期支持。目前QAP还在快速迭代更新,并持续为开发者带来更多的、友好的新特性。

将来JS SDK支持PC、移动的调用方式统一,最小化端的差异性。官方例子也更加丰富和拥有更好的可读性。

向下兼容

QAP兼容H5方案,意味着可以很方便的迁移你的H5工程和使用H5开发你的新页面。