您的位置:首页 > 其它

如何评价 APICloud ?

2016-04-05 16:42 288 查看
一句话总结,开发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

4.2 or higher, 7.1 or higher
JS ES6
XML
MVVM(NS ,Angular , React)
free of charge as an open source project only

React Native

iOS, Android
Flexbox Layout
JSX/HTML CSS-layout/CSS
React Virtual DOM
Primary View

APICloud

iOS6, 2.3+
Eclipse based IDE
js html5 css3
native module supported
Cloud DataBase, Cloud API (Rust interface)
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

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: