文章基于自身经验,为我们分享其在开发轻应用时遇到的问题,希望能够给你带来借鉴与思考。
首先介绍一下,什么是轻应用。简而言之就是硬件厂商提供的免安装应用的直达服务。
自从微信推出小程序之后,为了抗衡小程序,各大手机硬件厂商都在默默孵化的免安装应用。
在宣传的时候主打几个特点:低折损、重体验、强留存、低成本、易传播。
我厂是国内某养车 B2C 公司,参与小米、华为等安卓轻应用联盟的内测开发。因此大家在看不见摸不着的未来可能的巨大利益驱动下,开始了至今为止3个月的开发。
硬件厂商推出的「免安装应用」后面我们称之为轻应用。整体系统架构其实与微信小程序非常的相似。
安卓市场的各位厂商爸爸们规定了一套类似的原生的语法。这套原生语法可以保持与 app 完整度一致的前提下做到 rpk 包非常小,通常不超过 1M。且比微信更牛逼的是,他们号称「系统级应用」。
商务在和厂商爸爸的聊天过程中,他们提到了许多非常诱人的数字,比如装机量以及激活量都是 app的百倍以上。同时,转化率非常高
看到这样的数字,老板们都很激动,一声令下,做!便开始了我们苦逼的开发周期。上周我司请来了业内某前端大神,也是国内某超级大厂轻应用项目的技术负责人,来我司分享经验。发现其实在开发过程中大家遇到的坑几乎是相同的。下面跟大家讲讲唠唠嗑,讲讲我们在开发轻应用时遇到的问题。
一、拿到的文档未必是最新的
第一次看某厂商的技术开发文档,讲真非常懵逼。文档非常简单,只是一个 Word 版本的开发说明,对于一些关键点的介绍都非常模糊。对比微信官方文档来说,易读性就不在一个级别。比如接口文档上明确提到了此处需要请求厂商的某一个接口,但是翻遍文档的每一个角落,几乎都没有找到这个文档所说接口的请求地址。
我的建议:一定要多沟通,尽可能的建立高效的沟通模式。如果对面愿意配合你们建 trello 等任务管理工具是做好,如果不行,多沟通是最需要的。
但是多沟通这里面还是有一些门道。如果你们公司商务给你们对接到了应用厂商的相关技术人员,那是上上策,不管怎么样厚着脸皮要到电话和微信,对面虽然可能电话不接,微信回的慢,但是所有渠道试过之后一定还是会有回应的。另外在沟通的时候如果是文档方面的问题,一定要跟对面的商务/技术讲清楚你手上文档的版本号,有可能你们的技术还在对着 V1.0 版本的手册开发的时候,对面的技术大大已经更新到 V3.0了。
二、厂商的技术也不是万能的
小程序在推出前在微信内部整整内测了一年,但是轻应用从起头到现在还不足一年,所以各位可想而知还是非常非常不成熟的,大家不要指望你家遇到的每一个问题对面都有方法可以解决。
一定要做好对面说:「啊咧?你们怎么会遇到这个问题啊?抱歉,这个问题我们暂时没有解决方案」,这个时候考验你们技术,和你自己产品力的时刻就到了。
我的建议:要做好这样的心里预设,并且面对最糟糕的环境还是要做好最充分的准备。由于我们在陪着各大厂商内测他们的服务。因此对面还是很愿意配合这些事情。尽量给厂商的技术多提几个你们的计划策略,让对面帮助一起探讨这个东西的实现可行性。
如果对面实在没有好的方案,可以要求对面在open api 上为你们家专门协约参数来满足你们的需求。举个栗子,我们之前为某厂商开发过付费包对接过一次他们的账户系统,这次要做轻应用同样需要对接一次账户系统,坑爹的是,厂商目前没有用来校验用户身份唯一性的字段,也就是我们通常讲的 「uniion id」,直接导致的结果是我们产品的 userid 可能会对应多个厂商账户。
这个在后期清洗数据、绑定关系以及对用户资产处理等产生一系列的影响。面对这种情况就是考验各位产品力的时刻,可以和厂商协约唯一参数,也可以更改你们的产品策略。适合自己的才是最好的
三、你做好盲写的准备了吗
本周和某大厂轻应用技术负责人沟通的时候,发现他们也有一样的苦恼。由于厂商启动轻应用的项目是在不成熟且资本大量注入的情况下开始,基本都是边跑边打。很多东西厂商自己都还没想清楚,就需要我们这些内测应用配合开发上线了。
这个时候最大的困难是和本公司商务、技术开发沟通的问题。技术大大们在面对一脸懵逼的文档、不算太清晰的需求、紧张的开发周期一般都会有逆反情绪。另外你可能还会面对商务大大的胁迫。居中调节显得很重要。
我的建议:做好两方面的心里预设功课,降低商务对项目完成时间和完成度的预期。提高技术大大对项目目标感和成就感的预期。
我们在做某大厂卡片对接的过程中,发现对面根本没有做好卡片对接的一系列环境的预先工作,导致我们整个开发周期都在盲写中度过。没有调试工具,没有测试环境。
所有的东西写好之后打成包,由厂商的测试替我们上架,在厂商的环境下进行测试通过验收。盲写的环境下,就会有大量的技术盲点,因此开发在开发过程中会非常的头大。建议大家和产品负责人在这块多沟通。多协商,安排开发资源的时候也可以要求技术大大不需要全身心的扑在这上面,而是对面有了相关的回应再继续,以免做无用功。
四、切记投机取巧的事情不要做
这点是我厂目前吃的一个比较大的亏。
最开始在沟通开发轻应用与我厂前端架构一起看文档的时候,发现轻应用不同于小程序,竟然提供了前端 WebView 的接口,也就是说在小程序的环境下,如果你想用 Webview 框架下去实现小程序是不可能的,因为微信当时根本没有提供那项能力,所以只能老老实实用小程序的原生语法编写。
但是轻应用不同,轻应用一开始就提供了 WebView 的接口,因此我们前端架构当时提议说,我们根本没必要使用原生的语法,WebView 可以在和我们移动站 2.0 相同语法下一起同步开发。听起来是不是很靠谱,很省力,很美好,心里是不是美滋滋。但是开发过程中遇到了无数的坑。
很多原生轻而易举可以实现的功能,WebView 累的要死都未必可以百分之百实现。比如说点击返回按钮按照用户操作锚点返回这一功能。用原生来写,非常简单,但是厂商根本没有提供用 WebView 实现倒退的方案,就这个问题我们解决了很久很久,以及其他很多和这个一样很小,但是解决起来非常麻烦,把上述说的那些问题都解决完,即使用原生代码实现也能够完成了。
另外由于各大厂商现在虽然打着他们用同一套系统架构来实现轻应用,但是总是会有其定制化功能,比如账户、推送,这两点肯定各家都有自己的玩儿法,到时候再要改写原生,就非常蛋疼了
轻应用的开发,如果是决定全部用原生写,其开发成本几乎等于开发一个小型的app,且要保留产品所有主流常规业务,因此成本是比较高的,因此需要产品经理和技术负责人根据你司业务发展方向结合对轻应用这个项目预计投入资源来综合考量后续迭代投入的人员。讲真,轻应用现在的既存渠道来看,数据是非常低的。我们和某大厂聊下来,他们的轻应用也是完全没有起量的状态。
在这个环境下如何平衡投入产出比,对每个产品经理来说不可以不说是一个不小的挑战。但是有一句话是我的 mentor 分享给我的,在这里我也想分享给大家。轻应用是厂商未来的方向。并且是安卓应用联盟各大厂商投入了巨大资源、成本、人力来做的系统级应用产品。尽管现在没有起量,随着他的能力逐步升级,他的流量价值和转化价值我相信也会逐步显现。我觉得的确是未来的方向。
当年,有多少人看衰小程序,有多少人说小程序必死,现在呢?一年后呢?有多少产品围绕小程序做业务模式的创新,又有多少产品的小程序获得了几乎是现象级的成功,比如拼多多,他的小程序的拼单数据已经和 app 数据快要不相伯仲。未来,谁都说不准。