如何评价 APICloud ?

一句话总结,开发3天,填坑60天,不如直接用原生开发。

对于混合开发,我认为只需要在部分界面使用即可,比如广告页,微信朋友圈网页处理需要网页,而大多数页面还是建议用原生。

如果你是一个新人,想开发一些新闻类的跨平台简单APP,可以试一试,他们对双平台支持的不错,而且真的很快;如果你是一个专业前端,想用日新月异的框架开发APP,那么性能在iOS上是不错的,而Android性能天生不够,与框架无关;如果你是一个传统行业的老板想涉足O2O,建议直接找外包;如果是你老板拍脑袋决定的,作为开发者应该做好重构的准备。

以Android产品为例,开发了2个月的基于APICloud的APP。

1. API文档非常乱;社区怎么说呢,类似于安卓巴士的感觉(没有贬义的意思,只是吃二手的东西很不舒服);QQ群中小白一直吵消息闪个不停就退了,后来进了所谓的收费VIP群才有开发者回复。一个常年使用stackoverflow的人居然要去VIP群里问,真是日了狗了。
2. HTML5的性能差,缩放类型的CSS3动画都很卡,在开发的过程中,设计师设计出的很多优美动画都无法实现,以后不得不切换回原生界面,官网敢不敢放一个流畅运行的Demo?敢不敢放一个跑分?
3. 所谓的组件化(UzModule)开发,对Android的生命周期支持非常不到位,常见的onPause,onResume都无法实现;onCreate也没有使用,我们只能放到构造函数中,APICloud引擎会在启动时构造这些组件,如果构造函数中有复杂的对象,那么打开APP需要白屏很久才可以运行;onDestory(也就是组件中的onClean)函数倒是有但是文档说的不清楚,开发中的AIDL,Timer等与生命周期相关的东西加进去,调试难度非常高,如果使用到第三方合作伙伴开发的SDK集成,那么给合作伙伴反馈问题的话也不好解决,因为对面不懂APICloud啊;最后不得不把这些组件全部改写成原生界面;
4. 调试的坑非常多,比如为了所谓的组件化,必须要使用UZResourcesIDFinder代替R文件
(ImageButton) findViewById(R.id.btn_buy);
UZResourcesIDFinder.getResourceById("btn_buy");

也就是说,AndroidStudio下的findusage是无法使用了,github上成千上万的AAR包也无法使用了,因为aar中有R文件会抛出空指针;
5. 云编译需要排队,编译速度不如本地的i5机器
6. 程序的逻辑全部暴露在assets下的html文件中,就算js支持混淆,但是它事真多,毕竟代码不是你一个人控制的,不规范的js代码在混淆时就会让你哭了;相比成熟的Android加固方案差距太大了;
7. 开发速度实际上并不快,原生APP界面也是基于XML,与HTML相比不见得有多大的开发速度差距;原生各种开源框架只用在gradle中添加一句话就可以了,并且都有成熟的社区与教程文档,而APIcloud需要去他们的商店去购买;
8. android可以直接找Applet服务器要DTO代码,然后json反序列化(比如Retrofit)就可以了,而在js中就需要暴露逻辑,万一服务器改对象了,这边就全部要跟着改,这个太费事了;

最后我们的项目除了主界面的外壳,全部换成原生Activity了。

什么时候能够把上面的性能问题解决了,我再考虑换回来。

-------
下面再说下各同类产品的对比或者介绍,各位前端汪可以参考下

NativeScript
  1. 4.2 or higher, 7.1 or higher
  2. JS ES6
  3. XML
  4. MVVM(NS ,Angular , React)
  5. free of charge as an open source project only
React Native
  1. iOS, Android
  2. Flexbox Layout
  3. JSX/HTML CSS-layout/CSS
  4. React Virtual DOM
  5. Primary View
APICloud
  1. iOS6, 2.3+
  2. Eclipse based IDE
  3. js html5 css3
  4. native module supported
  5. Cloud DataBase, Cloud API (Rust interface)
  6. update(Man), push, summary
-------

再补充一点,最近的技术趋势我更趋向于使用react-native,第一它本质上是用js写代码,然后用android中的javascript解释器(跑在c上)执行js代码,并使用原生组件进行渲染,效率比webview高;第二,它有facebook,微软等大公司提供平台支撑,国内有阿里已经开始实践,而且有intellij这样重量级的ide提供jsx语法支撑,写android的学下jsx语法马上就可以转;最后,它是免费的,有stackoverflow,有issue,不用加官方唯一QQ。


作者:BlackSwift
链接:http://www.zhihu.com/question/25387807/answer/62243274
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值