DCloud与APICloud的对比选择

Stella981
• 阅读 615

这两家目前应该说是市场占有率较高的国内团队。

DCloud官网上有一个比较:http://ask.dcloud.net.cn/article/237,抛开其中撕逼的部分,文章中基本观点我是非常认同的。

在此请允许我摘抄一些:

关于HTML5的重视力度不同

DCloud是专注于发展HTML5的,而APICloud是更关心iOS和Android的跨平台App开发。

DCloud有专业的HTML5开发工具HBuilder,除了开发App还是可以开发普通前端,包括手机浏览器版本和微信版本。

DCloud有mui框架,可以用于App,也可以用于手机浏览器和微信。这造成的结果就是,开发者使用DCloud产品,可以真正的跨平台,一套项目代码通过条件编译,可以变成手机浏览器版本、iOS App、Android App、微信App、百度直达号、360流应用,而APICloud开发一次,只能输出iOS和Android App。

对HTML5的价值理解不同

HTML5不如原生,所以需要扩展。但如何扩展,两家公司思路不同。

DCloud的产品命名就可以看出DCloud的思路,HTML5+的意思是基于HTML5做扩展,不做HTML5能做的事情。DCloud本身是W3C的会员,HTML5plus.org里的专家委员很多都是W3C的标准参与者,不会重复立项HTML5可以做的事情。

原生有40多万API,DCloud的思路是HTML5Plus来解决28原则里最常用的跨平台API,比如barcode、file,尽量控制封装层的厚度,减少runtime的体积。然后DCloud开发了Native.js技术,来解决剩余40w原生API的调用问题。此外DCloud还提供了5PlusSDK,也支持三方开发者开发原生插件。

APICloud的思路不是这样,他统统写原生控件,比如城市选择这些业务也通过原生控件来实现。APICloud做了模块市场,希望其他人也来做封装。但问题是这个市场真的存在吗?交易流通能活跃吗?

结论:DCloud的runtime更小,API更多,40w原生API都可以调用。当然Native.js开发需要些原生基础,这和APICloud模块开发需要原生基础一样,但Native.js的门槛更低、并且是开放自由的,DCloud提供了大量的现成Native.js示例代码。以及DCloud的5PlusSDK的开放性比APICloud的模块开放性更好。

至于APICloud,它的runtime包体积更大,能力更少,虽然看起来模块较多,但质量和可用性并不好,有问题也无法自己修改。

对开放性和开发者自定义权力的理解不同

DCloud很在意开放性,ui部分的核心,mui是基于MIT的开源协议,完全允许开发者自己随便改。

但APICloud的ui大多是原生封死,不开源也无法自己定义。而ui是app里非常个性化的部分,经常需要改。

DCloud允许本地打包,开发者可以自由内嵌5+SDK,开发者不用担心代码必须提交给DCloud的服务器。但APICloud只能使用他们的云打包,代码必须提交到他们的服务器。对于很多内网开发者,这点更无法接受。

DCloud支持开放的规范,DCloud本身是W3C的会员,参与HTML5规范的制订讨论,HTML5Plus.org也是一个三方公立组织,允许任何厂商按照HTML5+规范来开发实现自己的runtime,甚至APICloud也可以按照HTML5+规范来开发自己的产品,这样开发者开发一次,就可以有更多终端可以使用。但APICloud是是自己定义的api,上升不到规范高度。

开发便利性

众所周知,HBuilder是业内一流的HTML5开发工具,代码提示、用户体验、极客风格、真机运行、边改边看,拥有众多创新,让开发者开发和调试过程更爽更高效。

HBuilder有最全的语法库和浏览器兼容性,有强大的js解析提示引擎,APICloud的代码提示功能弱很多。

HBuilder支持iOS设备真机运行和日志反馈,还可直接定位行号。

前端框架的比对

DCloud有开源的mui框架,小巧、漂亮、高性能。这对于开发者非常重要。

而且DCloud就基本js操作推荐使用原生,没有依赖jquery或zepto。因为手机端都是webkit内核,基本js操作无需再封一层框架,多封装一层反而降低执行效率。

APICloud的前端框架并不是ui框架,而是在zepto上改了一个js框架,去掉了一些功能,后期apicloud也推出了自己的开源框架aui。

DCloud重视精品App,APICloud重视入门新手

DCloud认为HTML5要起来,需要精品App,我们极力在改善高级开发人员的体验,因为我们知道这样的人才能做出精品App。所以很多大公司都在使用DCloud的产品,比如360、大众点评、csdn、明道等知名公司。

而APICloud更重视新手,强调从0开始30天完成App。

产品观不同

DCloud的产品观有2个特点,一个是极致,一个是节制。

我们在关键点上非常追求极致,通过突破创新来解决遇到的问题,我们要最全的语法库、我们要调用40万原生API,我们会突破这些技术难题。

同时我们又会极力控制HTML5 和mui的功能蔓延,控制封装层的厚度,控制runtime和mui的体积,保证每个新增的功能都精巧的解决关键问题。

但APICloud是遇到什么问题就增加什么功能,不停的用原生封装封装,功能越来越多,问题越来越多。

生态系统的不同

DCloud是做HTML5生态的,左边开发者,右边最终用户。

DCloud的流应用引擎是面向C端用户的,它能让一个客户端App在5秒内完成下载-安装-解压,省流量、省内存、省电。

目前DCloud的流应用引擎装机量已经上亿。在360手机助手里搜索大众点评外卖,可看到秒开按钮,这就是大众点评公司开发的流应用。

对于开发者,如何开发App找DCloud,App做好了如何发展用户也找DCloud,DCloud帮助开发者掌握业务最关键的部分,App的开发和推广。

APICloud只能帮助开发者开发App,不能帮助他们获得用户。

点赞
收藏
评论区
推荐文章
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
刚刚好 刚刚好
5个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
晴空闲云 晴空闲云
5个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
Karen110 Karen110
1年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
艾木酱 艾木酱
5个月前
快速入门|使用MemFire Cloud构建React Native应用程序
MemFireCloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
Wesley13 Wesley13
1年前
MySQL查询按照指定规则排序
1.按照指定(单个)字段排序selectfromtable_nameorderiddesc;2.按照指定(多个)字段排序selectfromtable_nameorderiddesc,statusdesc;3.按照指定字段和规则排序selec
Wesley13 Wesley13
1年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
1年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
helloworld_28799839 helloworld_28799839
5个月前
常用知识整理
Javascript判断对象是否为空jsObject.keys(myObject).length0经常使用的三元运算我们经常遇到处理表格列状态字段如status的时候可以用到vue
helloworld_34035044 helloworld_34035044
8个月前
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为