同步操作将从 开源中国/中国开源社区 landscape 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
专注做开发者服务,致力于提升中国互联网应用开发效率;是W3C 成员及HTML5中国产业联盟发起单位。
主要产品包括:写代码的编辑器HbuilderX,前端的开发框架uni-app和服务端的云引擎uniCloud。
uni-app
是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。
DCloud
公司拥有900万开发者、数百万应用、12亿手机端月活用户、数千款uni-app插件、70+微信/qq群。阿里小程序工具官方内置uni-app(详见),腾讯课堂官方为uni-app录制培训课程(详见),开发者可以放心选择。
uni-app
在手,做啥都不愁。即使不跨端,uni-app
也是更好的小程序开发框架(详见)、更好的App跨平台框架、更方便的H5开发框架。不管领导安排什么样的项目,你都可以快速交付,不需要转换开发思维、不需要更改开发习惯。
一套代码编到14个平台,这不是梦想。眼见为实,扫描14个二维码,亲自体验最全面的跨平台效果!
注:某些平台不能提交简单demo,故补充了一些其他功能;hello uni-app示例代码可从github获取。快应用仅支持 vivo 、oppo、华为、360小程序仅 windows平台支持,需要在360浏览器中打开
我们精心准备了一个简单的十分钟介绍视频,方便你快速了解uni-app
的主要特征:
uni-app
在开发者数量、案例、跨端抹平度、扩展灵活性、性能体验、周边生态、学习成本、开发成本等8大关键指标上拥有更强的优势。
从下面uni-app
功能框架图可看出,uni-app
在跨平台的过程中,不牺牲平台特色,可优雅的调用平台专有能力,真正做到海纳百川、各取所长。
uni-app
实现了一套代码,同时运行到多个平台;如下图所示,一套代码,同时运行到iOS模拟器、Android模拟器、web、微信开发者工具、支付宝小程序Studio、百度开发者工具、字节跳动开发者工具、QQ开发者工具(底部每个终端选项卡,代表1个终端模拟器):
实际运行效果如下(点击图片可放大):
uniCloud
是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。
uniCloud
的 web控制台地址:https://unicloud.dcloud.net.cn
目前uniCloud阿里云版免费,助力开发者低门槛实现自己的想法。
uniCloud是DCloud在阿里云和腾讯云的serverless服务上封装而成的。
它包含IaaS层(由阿里云和腾讯云提供硬件和网络)和PaaS层(由DCloud提供开发环境)。
开发者可以自主选择uniCloud的硬件和网络资源的供应商,在阿里云版和腾讯云版之间切换。
开户和付费虽然通过DCloud渠道,但实际上开发者自动在云厂商处建立了账户和充值了余额。价格是云厂商的标准定价,DCloud只获取云服务厂商的返佣。
开发时虽使用DCloud的工具,但应用上线时,手机端是直连阿里云或腾讯云的serverless,不经由DCloud的服务器。
serverless是目前很火的概念,它是下一代云技术,是真正的“云”。
传统的云服务,让开发者免于购买实体服务器硬件,改为购买虚拟机。但开发者仍然要自己装操作系统、web服务器、数据库,自己处理热备,自己新购服务器来应对高并发,自己抗DDOS攻击...
这不是成熟的“云”!
真正的云计算,就像用水用电,没有复杂的门槛,即用即有、按需付费。
简单回顾下用电的历史。几十年前,很多单位都有专门管电的工程师,当单位的电力负荷不够时,就需要找这个管电的工程师扩容发电机。
现在这个管电工程师的岗位已经淘汰了,电已经变成随用随取、按需付费了。
传统云模式下,开发商仍然需要一个管服务器的工程师,当用户量激增或被攻击时,甚至需要半夜把工程师叫醒来扩容。这当然不合理。
serverless的云,真正的把计算、存储的能力进行了云化,开发者只需要按量租用这些计算和存储能力,再也不用关心扩容和攻击。
开发者不再有“服务器”的概念,因为没有一台具体的机器。就像现在的你再也找不到自己的发电机一样。
当用户量激增时,开发者什么都不用做,系统自动承载更高并发。开发者只需要按照对资源的消耗付费即可。
同理,如果没有用户使用,即没有资源消耗,则根本无需为云资源付费。
开发者写好云端业务代码,即js编写的云函数,通过HBuilderX部署到uniCloud上即可。
云端庞大的serverless资源池,有无数个node进程待命。当手机用户发起请求时,serverless系统会调配闲置的资源来运行开发者相应的云函数。
serverless在国外兴起,但国内的发展速度已经超过了国外。微信、支付宝、百度、字节跳动、快应用联盟都上线了自己的serverless云开发。
目前国内已经有超过60万开发者在使用serverless云开发,包括腾讯、阿里、DCloud的很多自有业务都在使用。
就像uni-app可跨端一样,uniCloud可跨云。基于uniCloud,无需担心使用云开发被绑定到专用的小程序平台。uni-app + uniCloud 是跨端跨云的开发方案。
1、传统云服务的租用,按占用的硬件资源的上限值+固定时长来租用。
选择CPU和内存的配置,不到满配时,资源是浪费的,接近满配就需要立即扩容新的配置。
serverless不是传统云,它不需要开发者选择CPU和内存配置,也没有操作系统的选择。开发者编写云函数代码,上传到uniCloud的阿里云版或腾讯云版。
阿里云和腾讯云搭建了巨大的serverless资源池,有众多node进程用于云函数的运行。
这些资源是复用和共享的,并不存在某个开发者租用了3G CPU和8G内存,这些硬件就只能为他所用。
因为共享大资源池,云服务厂商的成本大幅下降,开发者无需为闲置资源付费,云函数被调用才计费。
从技术原理上serverless就有明显成本优势,所以租用serverless比租用传统云要便宜的多。
2、没有名目繁多的收费项
在传统云的世界里,有大量的收费产品。
在阿里云和腾讯云的官网可以看到长长的收费产品列表,比如负载均衡、高防、安全中心...
在uniCloud的世界,简单清晰,没有这些收费项。
只需按对计算资源、存储资源的消耗计费,只需关心业务,无需关心其他各种名目的增值产品,也无需为它们付费。
要知道一个用于防DDoS的高防套餐,每个月至少几万元。而这些费用,在uniCloud中无需支付。
展开说下uniCloud为什么不用买高防也不害怕DDoS:由于阿里云和腾讯云的serverless有巨大的资源池,且serverless没有固定ip,云函数使用的是阿里云和腾讯云的自有域名,前端网页托管在cdn上,DDoS攻击者打不起、也打不挂uniCloud。
3、云厂商的促销补贴
目前阿里云为uniCloud提供了免费的云资源,不但云函数、云数据库免费,连存储和cdn都免费(云存储目前有限额,但是正常业务均可申请提额,具体参考:阿里云费用)。
腾讯云也提供了一个免费服务空间,此外再建服务空间的收费也比传统云要低很多。
基于以上3点原因,uniCloud大幅降低了开发者云资源的租用成本。
除了云资源的成本,uniCloud还可以减少开发商的人工成本、招聘成本、沟通管理成本,这些成本更远大于云资源成本。
前端工程师想掌握后端开发,有6大门槛:
而有了uniCloud,这些门槛全都降了下去:
所以说,uniCloud是前端变全栈的最佳机会,只需花点时间熟读uniCloud的文档,你就可以成为全栈!
uniCloud最吸引人的是,它将开发效率提升了10倍以上。
在uniCloud推出的一年时间里,uni-app + uniCloud 已经变成了一个庞大的生态。包括非常多的工具、模块。
开发效率提升10倍,并非某个杀手功能的功劳,而是庞大的生态共同的作用。本章节篇幅较长,请耐心阅读。
2020年初,uniCloud刚发布,新冠肺炎突然来袭,各地涌现大量抗疫项目需求。
uni-app + uniCloud成为大家和病毒抢时间的重要利器。
各地迅速涌现了数百个基于uni体系的抗疫项目。详见:https://www.dcloud.io/ncp.html
当时一个抗疫项目的开发,仍然需要几十人天。
以出入管理登记的项目为例,第一版做了10天,有4-5位全职或兼职工程师参与。
一年后的2021年春节,各地又大量出现了返乡人员信息登记的需求。
项目需求类似,但此时的uniCloud生态建设已经完善,基于各种利器,返乡人员登记系统的开发人天数大幅削减,只花费0.0625人天!
1年时间,开发效率提升了将近1000倍!
uni云端一体生态的内容太多,让我们抽丝剥茧、归纳分类,以容易理解的方式讲解开发效率是怎么提升的。
开发效率提升,分7个层次:
我们来依次展开介绍每一层。
这是云端一体生态里最容易理解的价值:大量开源模块。
以前的开源模块,基本端是端、云是云,没听说过云端一体的开源模块。
以用户模块为例,其实它有前端、也有云端。前端有注册、登录、修改密码等页面,云端有对应的逻辑代码和数据库。
现在有了uni-id,一个开源的、功能完善的、云端一体的用户模块。立即节省数人月的开发工作量。
下面列举些常用的轮子
1. 官方维护的插件
2. 社区的优秀插件
3. 项目模板
上面的轮子,是与业务无关的通用轮子。除此之外,还有大量的云端一体的项目模板。 使用这些现成的项目模板,那开发效率更是极大幅的提升。过去5、6人月的项目,现在几天就能搞定上线!
电商 | 博客 | 排班 |
网赚合成游戏 | 社交 | 预约预订 |
O2O | 短视频 | 家谱 |
外卖 | 音乐 | 头像挂件 |
影视 | 记账 | 人像抠图、漫画脸 |
新闻 | 考勤打卡 | 红包封面 |
在这里,我们还必须提到2个新概念:uni_module
和datacom
。
uni_module
中,整体传播与发布,对云端一体组件的生态有重大的帮助。详见
优良的模块化方案让生态越发繁荣。
如果在第一层提效中,找不到现成的轮子,需要自己写代码时。那么首先要做的,是使用schema2code这个神器,自动生成代码。
uniCloud云数据的schema,是一项重要的创新。 为数据表编写schema,可以实现非常多功能:数据结构定义、权限管理、数据值域管理,以及非常神奇的功能 -- 《schema2code》
在传统开发中,有了数据库,可以生成crud后台接口。然后前端再写代码调用接口。
但在uni云端一体生态中,有了数据库的schema,可以直接生成云端一体的页面。而不仅仅是只生成接口。
schema2code,可以生成手机端的列表、详情或增删改页面,也可以生成admin管理端的所有数据管理功能的页面。
如下是schema2code的操作演示视频:
可以实战体验这个云端一体通讯录的项目,几乎没有单独写代码。设计好通讯录的表schema,用schema2code即可生成这个项目。
前述提到的返乡人员管理项目,之所以只花费了半小时就可以做好,也是schema2code的功劳。
数据的权限管理也很简单,在schema中可以快速定义指定的数据记录或字段,只能由什么样角色或权限的人来操作。
数据入库的值域校验就更简单了。传统开发中,一个手机号的校验,需要在前端页面写一遍,服务器入库前再检查一遍,很多余。既然云端协同了,自然会优化掉这个问题。
现在只需在DB Schema中定义好手机号这个字段的可选值域,比如一个正则,那么schema2code将自动生成前端表单,且遵循schema的定义,只接受相同正则。
这样不但提高了开发效率,还可以避免传统开发中各种漏洞,保持严谨和一致性。
schema2code生成的代码清晰易读,易于二次开发。这比低代码平台更有效率、且完全开放开源,随意扩展。
如果schema2code仍不能满足你的需求,需要单独开发,那么只要操作数据库,clientDB就是推荐使用的利器。
传统开发中,前端写request联网,后台写接收请求去查库,再返给前端,然后前台再绑定到data上....天天干这么枯燥的事情不烦吗?
uni-app提供了<unicloud-db>
组件(代码块触发键是udb),在前端直接访问数据库,前所未有的高效和简洁,在大多数场景下完全不用写服务器代码!
比如uniCloud的云数据库有个user表,里面有字段id、name,查询id=1的用户数据,把名字显示在界面上,写法如下:
<template>
<view>
<unicloud-db v-slot:default="{data, loading, error, options}" collection="user" field="name" :getone="true" where="id=='1'">
<view>
{{ data.name}}
</view>
</unicloud-db>
</view>
</template>
是的,仅需5行代码,就可以完成过去前后端合计得写几十行代码才能完成的事情,代码量大幅减少到原来的十分之一。
无需担心前端直接访问数据库会造成安全隐患,上一节提过了DB Schema,在云端的schema中可以定义什么角色可以操作数据库。详见
clientDB技术,有前端的JS API和前端组件,为了进一步提高开发效率,clientDB还提供了几大利器: JQL是一种基于js的数据库操作语言,它改进了SQL语言的诸多不便之处。
可以看出,在uni云端一体生态中,开发者不但提高了效率、减少了成本,还得到了更强大的赋能工具。
如果clientDB仍然不能满足需求,必须编写云端代码,那么云对象的出现,彻底改变了后端开发json接口和前端联调的低效局面。
云对象把云端的代码变成对象方式,让前端js直接import这个对象,然后使用这个对象的方法,就像使用前端的js对象一样顺畅。
云端新加一个todo
云对象,写一个add方法,代码如下:
// 云对象名:todo
module.exports = {
add(title, content) {
title = title.trim()
content = content.trim()
if(!title || !content) {
return {
errCode: 'INVALID_TODO',
errMsg: 'TODO标题或内容不可为空'
}
}
// ...其他逻辑
return {
errCode: 0,
errMsg: '创建成功'
}
}
}
然后在客户端的js中,import这个todo
对象,调用它的add方法
const todo = uniCloud.importObject('todo') //第一步导入云对象
async function addTodo () {
try {
const res = await todo.add('title demo', 'content demo') //导入云对象后就可以直接调用该对象的方法了,注意使用异步await
console.log("add成功")
} catch (e) {
// 符合uniCloud响应体规范 https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=resformat,自动抛出此错误
console.log(e.errMsg)
}
}
HBuilderX、uni-app、uniCloud是三位一体、高效协同的。
HBuilderX提升了uni-app的开发效率,自然也将提升uniCloud的开发效率。并且三位一体,实现了以前无法想象的新突破。
以下图为例:
在传统开发中,item是一个通过request返回的json,ide是不可能知道这个json的数据结构的,也就无法提示。
由于三位一体协同,HBuilderX可以解析本地schema文件,直接提示item后面的数据结构。避免开发者写错代码、减少服务器联调工作。
云对象的方法,HBuilderX同样可以完美解析,让编写客户端代码时直接提示云对象的方法、参数。
前端和云端都使用js编程语言,提高了沟通效率。
js和其他服务器语言,比如php或java,在过去需要Mock来翻译,这很多余。
在实际开发中,开发商应该安排人员按业务分工,专注于业务,一个业务模块的前端后端都由一个人负责。开发效率会比以前更高。
由于统一了技术栈,招聘效率、管理效率也会相应提升。。
代码量的减少到原来的十分之一,这自然可以让code review效率和白盒测试的效率也提升了十倍。
黑盒测试中,前后端对不齐的bug、权限漏洞等发生的概率也大幅减少。
现在,开发、测试都将变的更加轻松。
因为serverless的免运维特点,开发商再也不用操心扩容、高并发、ddos攻击、安全漏洞补丁等一系列麻烦事。只需专注于自己的业务。
uniCloud是开发界的革命。在HBuilderX、uni-app、uniCloud三位一体的协同下、创新的功能设计下、丰富的生态和轮子支持下,开发者的开发效率,超过传统开发10倍以上。
目前uniCloud已发展2年多,活跃服务空间数万,云函数日请求数量过亿。请放心使用。
腾讯课堂的uni-app相关课程有137门 https://ke.qq.com/course/list/uni-app?tuin=269fe6b
网易课堂的uni-app相关课程有21门 https://study.163.com/courses-search?keyword=uni-app
bilibili的uni-app相关教程视频700多个 https://search.bilibili.com/all?keyword=uni-app&from_source=nav_search_new
慕课网uni-app相关课程 https://www.imooc.com/search/?words=uni-app
腾讯课堂官方制作的《uni-app 商业级应用实战》 https://ke.qq.com/course/379043?from=800006421
每日互动、阿里巴巴EWTP基金、CSDN极客帮基金、线性资本、景林资产、上海涌铧。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。