之前做一个小型的创业项目,需要开发一款手机应用,团队里没多少专业的开发人员,既懂 iOS 又懂 Android 的人更是没有,当时就犯了难。朋友知道后,跟我提了 apicloud,说或许能解决我们的问题,从那时候起,我才算真正接触到了这个工具。
最开始接触 apicloud 的时候,心里其实没底,毕竟之前没怎么用过这类开发工具,就怕操作太复杂,我们这种非专业的团队驾驭不了。但真的上手试了之后,发现比想象中简单不少。它不用让我们分别去学 iOS 和 Android 的开发语言,只需要用平时稍微了解一点的 HTML、CSS 和 JavaScript,就能写出能在两个系统上运行的应用,这一点对我们来说太重要了。当时团队里就一个稍微懂点前端的人,要是按传统的方式开发,至少得再招两个不同平台的开发,成本一下子就上去了,而用 apicloud,就靠着这一个人,再加上其他人打打下手,居然真的把应用的初步框架搭了起来。
在使用 apicloud 的过程中,最让我觉得省心的是它的文档和社区。刚开始写功能的时候,总会遇到各种小问题,比如怎么调用手机的摄像头,怎么实现消息推送这些基础功能。那时候天天对着文档翻,文档里写得很明白,每一步该怎么做,代码示例也很清晰,跟着示例一点点试,大多时候都能解决。有时候遇到文档里没详细说的问题,去社区里发帖问,也能得到不少热心人的回复。有一次,我们做支付功能的时候,卡在了支付接口对接上,试了好几次都不成功,急得不行,在社区里发了帖子之后,没过多久就有老用户回帖,告诉我们可能是参数配置的问题,还把自己之前对接时的经验分享了出来,照着他说的方法调整之后,果然就通了。那时候就觉得,有这样的社区支持,就算是新手也不用太怕遇到问题。
不过,apicloud 也不是没有让人觉得不太满意的地方。后来我们的应用用户慢慢多了起来,功能也越加越多,就发现有些时候应用运行会有点卡顿。比如有个页面需要加载大量的商品图片和信息,滑动的时候就会明显感觉不流畅,尤其是在一些配置比较低的手机上,这个问题更突出。我们找了半天原因,最后发现是因为页面里的组件太多,apicloud 在处理大量数据渲染的时候,性能上确实不如原生开发的应用。那时候也考虑过要不要换成原生开发,但一方面是重新开发成本太高,另一方面是之前的代码都基于 apicloud 写的,推倒重来太浪费时间,最后只能在现有基础上做优化,比如分页加载数据,减少一次性渲染的内容,虽然有所改善,但还是比不上原生应用的流畅度。
还有一点,就是 apicloud 的一些高级功能,需要用到它的模块市场里的模块。有些常用的模块是免费的,但有一些比较特殊的功能模块,比如高级的地图导航、特定的硬件设备对接,就需要付费购买。当时我们的应用需要用到一个物流轨迹跟踪的模块,找了半天,社区里没有免费的可用,只能在模块市场里买,虽然价格不算特别贵,但对于我们这种小项目来说,也是一笔额外的支出。而且有些付费模块,更新速度不算快,有时候手机系统更新了,模块还没跟上,就会出现兼容问题,得等模块开发商更新之后才能解决,这期间就只能暂时把相关功能下线,影响用户体验。
但话说回来,apicloud 本身的定位可能就不是针对那些对性能要求极高的大型应用,对于我们这种小型项目,或者是需要快速把产品做出来验证市场的团队来说,它确实是个不错的选择。像我们当时做的那个项目,从开始开发到上线,前后也就花了三个多月的时间,要是用传统开发方式,估计半年都不一定能完成。而且它的维护成本也低,后续有什么小的功能更新或者 bug 修复,只需要修改一套代码,不用分别在两个平台上改,省了不少事。之前有一次,用户反馈应用里的一个表单提交按钮位置不对,在手机上点着不方便,我们在 apicloud 的控制台里改了一下 CSS 样式,重新编译打包之后,上传到应用商店审核,没过多久就更新完成了,整个过程也就花了大半天时间,要是换了原生开发,iOS 和 Android 都得改,还得分别提交审核,至少得两三天。
身边也有不少和我一样做小项目的朋友,有的也用过 apicloud,大家的感受都差不多,觉得它最大的优势就是门槛低、速度快、成本省。有个朋友做了一个本地生活服务的小程序,后来想改成 APP,就用了 apicloud,他自己之前只做过微信小程序,对原生开发一窍不通,就靠着看 apicloud 的教程,慢慢摸索,居然也把 APP 做出来了,虽然功能不算特别复杂,但至少满足了用户的基本需求,上线之后也积累了不少本地用户。不过也有朋友说,要是项目规模大了,用户量特别多,对应用的流畅度和功能深度要求高,那还是得考虑原生开发,apicloud 在这方面确实有局限。
总的来说,apicloud 不是那种能满足所有需求的 “万能工具”,它有自己的优势,也有明显的不足。如果你是个人开发者,想做一个自己的小应用试试水,或者是小团队做项目,预算有限、开发人员不足,还想尽快把产品做出来推向市场,那可以试试 apicloud,它大概率能帮你省不少事。但如果你的项目是那种大型的电商平台、游戏应用,对性能和体验要求特别高,那可能 apicloud 就不太能满足你的需求了,这时候就得考虑更专业的开发方式。毕竟每个工具都有它适合的场景,关键是看自己的需求到底是什么,能不能和工具的特点匹配上。