关于uni-app你需要了解的基本问题及选型评估23问

uni-app收费吗?

uni-app 是免费产品,DCloud公司不会向开发者收取任何费用,大家可以放心使用。

DCloud提供的所有开发工具都是免费的,也不会有什么陷阱。

DCloud的盈利点在帮助开发者进行推广和流量变现上,而不在开发工具收费上。

跨端会造成功能受限制吗?

uni-app在跨平台的过程中,不牺牲平台特色,不限制平台的能力使用。

应用开发中,80%的常规开发,比如界面组件、联网等api,uni-app封装为可跨多端的API。

其余的,uni-app引入条件编译。可以优雅的在一个项目里调用不同平台的特色能力。比如push,微信小程序里不支持,但可以在App里使用,还有很多原生sdk,在App时难免涉及,这些都可以正常的在uni-app框架下使用。

下图是uni-app产品功能框架图,uni-app在保持uni规范跨平台的前提下,还可实现每个平台特有的平台能力(如微信小程序平台,可继续调用微信卡劵等微信特有业务API)。

在做小程序时,小程序所有的api都可以使用;而输出到App时,原生渲染引擎、原生sdk集成和混写都支持,使得原生的所有api都可以使用。

同时注意,条件编译不同于代码里if逻辑判断。条件编译块里的代码或指定的文件,只有在特定平台才会被编译进去,不会把不能用的其他平台代码混在一个包里。如果大量使用if判断,会增大体积和影响性能,而条件编译则没有这些问题。有效build出不同平台的包,减少体积提升性能,减少互相的干扰。

uni-app的手机端用户体验如何?

使用uni-app开发的微信小程序,和直接开发微信小程序相比性能没有明显差别,因为uni-app输出到微信时也是编译为wxml格式。uni-app编译到微信时用的是mpvue框架,这个是业内广泛使用的成熟框架。

uni-app打包成App后的体验和微信小程序一样好,在某些场景下更好;微信小程序的Hybrid应用框架是业内体验上的标杆,实践证明这种体验足以承载一线互联网开发商获得上亿用户。

uni-app内置预载机制,加载新页面速度极快,可实现无白屏极速渲染。

uni-app在App端还支持weex原生渲染(nvue),左右拖动长列表等复杂场景依然可实现高流畅性。

对比其他跨平台方案:

  • 对于Hybrid方案,uni-app比普通基于webview的Hybrid方案体验更好,包括比DCloud之前的mui体验更好。
  • 对比纯原生渲染的方案,体验差不多,但易用性和生态完整度上uni-app明显胜出(uni-app自身功能组件丰富,并且小程序的周边丰富生态都可以用于跨平台开发)。

就当前环境看,uni-app是功能、生态完整的跨平台方案里体验最好的。

当前的手机硬件越来越好,和以往大不相同。就像486微机时代,网页应用很难发展,肯定是原生开发的天下。但随着终端性能的提升,原生开发的必要性越来越小,加上流量获取的便利性,web开发成为主流。

手机上也是这个潮流,社会总是向生产效率更高的方向前进。向前看,不固守旧思维,方能赢得未来。

只开发小程序,需要uni-app吗?

uni-app开发小程序的开发体验更好,使用通用技术vue开发,不用学习微信自定义的语法。

在HBuilderX里修改源码保存,微信开发者工具的模拟器自动刷新。

包括IDE层面,代码提示、转到定义、高效文本操作方面,HBuilderX比微信工具自带的编辑器好太多了,也比其他国外开发工具优化的更好(准确说其他国外开发工具没有为小程序开发做任何优化)。大幅提升开发效率。

随着支付宝、百度、头条等各种小程序的发布,原生的微信小程序开发方式逐渐式微。

每个公司的老板,都会要求工程师把微信小程序也发布到其他小程序平台。此时使用原生小程序开发方式会非常麻烦,后续维护简直是噩梦。

uni-app兼容各种其他平台小程序,开发者使用跨端框架开发是未来主流模式。

另外只有小程序没有App的业务不太健康。小程序用户的留存和arpu值还是低于App,能力限制和运营策略限制也很多,想要提升应该同时出一个App给用户。反正又没有额外开发成本。

只开发App,需要uni-app吗?

uni-app是更好的跨平台开发框架,开发一次iOS、Android都有了。体验好、开发效率高。

uni-app在App侧可以使用小程序引擎或weex引擎渲染,性能体验高于其他Hybrid框架。

uni-app在App侧可以使用丰富的小程序sdk,如网易云信、环信、七牛等众多sdk厂商均原厂维护其小程序sdk版本,而这些sdk均可直接用于uni-app并发布为iOS、Android的App。

相比纯原生开发,uni-app体验可商用,也不会限制功能调用,但开发效率和开发成本更优于原生开发。

如果你已经有了原生App,那么可以局部使用uni-app,内嵌SDK,让工程逐步跨平台化。

uni-app是多端写在一个项目统一升级维护,还是每个端不同的项目,只复用部分代码

uni-app是多端写在一个基础项目下,差异使用条件编译来管理。

这有个巨大的好处是一套工程代码,升级时可多端同时更新。

如果把不同端的项目分开,那么维护升级时非常麻烦,无法方便同步升级。

所以uni-app开发微信小程序时,不止编码,包括域名校验等配置均在HBuilderX里完成,不需要在微信开发者工具里二次调整。

基于weex的nvue和vue看起来是2套代码?

首先uni-app体验好,不是依赖于weex才体验好。没有weex体验本来也很好。weex是用于弥补个别场景的不足而引入的。

微信小程序里不可能支持weex原生渲染,在微信小程序里只能使用vue文件开发。

uni-app为了解决复用问题,把uni的js api移植到了weex里,形成了nvue,所以nvue可以和vue引用相同的js文件。

虽然界面写2套,但业务逻辑可一套代码完成。

同时由于uni-app默认推荐使用flex布局,而weex也只支持flex布局,所以样式也可以大量复用。

uni-app体系中,nvue是作为补充存在的,大部分场景用不到weex渲染,只有诸如可左右拖动的长列表等少数场景需要它强化。并且weex完善度并不高,在App里大面积依赖weex也会有很多问题。

uni-app的设计方式是一种各取其长、扬长避短的结合方案。

所以实际项目中,也不会产生大量的重复代码。

uni-app 学习成本高吗?基于什么技术栈?

uni-app简单来说是 vue的语法 + 小程序的api。

它遵循Vue.js语法规范,组件和API遵循微信小程序命名,这些都属于通用技术栈,学习它们是前端必备技能,uni-app没有太多额外学习成本。

有一定 Vue.js 和微信小程序开发经验的开发者可快速上手 uni-app 。

没学过vue的同学,也不用掌握vue的全部,只需了解vue基础语法、虚拟dom、数据绑定、组件、vuex,其他如路由、loader 不用学,cli、node.js、webpack也不需要学。

官方有入门培训视频,且还有众多培训渠道加入uni-app生态,可参考培训教程资源汇总

uni-app 开发体验如何?支持现代前端开发流程吗?

uni-app 积极拥抱社区现有的现代开发流程,包括但不限于:

  • 内置了webpack
  • NPM 包管理系统,详见参考
  • es6+ 语法(发布时会自动编译为es5),详见参考
  • 各种预处理器(less、scss、stylus、typescript)
  • uni-app的官方ide:HBuilderX,在vue、json、markdown、代码提示、操作效率上,有非常明显的优势,可帮助开发者大幅提高工作效率
  • uni-app同时也提供了cli方式,可使用其他开发工具开发,当然开发效率不如HBuilderX

uni-app调试怎么做?

开发小程序时,调试仍在微信开发者工具里。

开发H5版时,在chrome里调试,推荐安装chrome的vue devtools插件。

开发App时,uni的部分(不是app特色部分),可以在chrome里调试,也可以在微信开发者工具里调试。

在App侧,支持真机运行,打log。不能审查元素和debug。

如果你在App侧使用nvue,也可以在weex在线调试器里审查元素。

uni-app有什么ui库? 首先要理解传统的h5下的vue库和传统的微信小程序ui库虽然也能在uni-app下使用,但他们无法跨6端。 想要完美跨端需要看uni-app生态下的资源。

  1. uni-app内置组件直接用。

  2. 扩展组件是uni ui,在组件的文档左侧。

  3. 更多ui库和模块,见插件市场:https://ext.dcloud.net.cn

  4. 基于vue的无dom库也支持,包括graceui、zanui-mpvue。这些ui可以在app、小程序、h5端均可使用。但zanui-mpvue不是纯flex的。 如果是操作dom和window的vue库,因为小程序不支持dom和window,比如elementui,无法在uni-app中使用。 基于微信小程序自定义组件的ui库也支持,比如vantui的微信小程序版。但性能不如基于vue的组件,平台覆盖方面也只支持微信小程序和App。

  5. 如果你在App侧使用nvue,也支持weex ui。

uni-app 生态开放性如何?能否直接利用现有前端社区资源?

uni-app 提供了开放性的生态:

  • 兼容微信小程序 JS SDK,丰富的小程序生态内容可直接引入uni-app,并且在App侧通用,参考
  • 兼容微信小程序自定义组件,并且App侧通用,参考
  • 支持 NPM 包管理系统,参考
  • 支持 mpvue 项目及组件,参考
  • 支持原生插件,见插件市场:https://ext.dcloud.net.cn
  • 支持原生开发混写,可在原生工程里嵌入uni-app的sdk。

需要注意的是,uni-app 采用Vue.js方案,限制了dom操作,因此所有基于dom的前端库都无法直接使用;所幸的是目前基于微信小程序的库已经非常多了,这个生态也很完善,所有微信小程序的库在uni-app 里都能用,不止是在微信里能用,在App下也能用。

uni-app 支持的手机版本最低到多少?

Android4.4、iOS8是官方会保障兼容的。 更低版本其实也能用,但官方发布时不会测试更低版本。

另外如果使用flex布局,更低版本是不支持的,只能使用传统css布局。

开发时尽量避免使用太新的css,可能在老款手机上产生兼容问题。

小程序的导航栏等UI相对单一,平台接口也较少,App端能自由定制这些UI吗?

可以。

uni-app 发行到App端使用的是5+引擎,5+的所有API都可以在uni-app中可以使用;通过5+ API,可以实现更为丰富的App能力,比如设置导航栏为透明渐变模式。

我已有小程序项目,如何迁移到uni-app?

  • 如果是mpvue开发的小程序,那极其简单,参考
  • 如果是非mpvue开发的小程序,改动也不复杂,毕竟组件、api、样式是一样的,参考

如果已有5+或mui App、wap2app、原生App,是无法迁移到uni-app的。

uni-app成熟度高吗?

uni-app发布到微信使用的mpvue框架,发布到App使用5+引擎,这些都是业内成熟的技术产品。所以uni-app并不是一个全新事物,本身就是成熟产品的叠加。

uni-app发布以来,已经迭代了几十个版本,拥有众多案例,成熟度完全可商用。

uni-app的社区活跃吗?

加入uni-app的群就知道,几十个QQ/微信群每天数万条聊天记录,非常活跃。

插件市场内容也非常丰富,常见开发需求都有轮子可用。

基于uni-app的三方培训也很多。

uni-app 有哪些已上线的成功案例?

开发者分享的案例参考uni-app 应用案例,我们相信还有更多优秀案例,没有被我们采集到,欢迎大家到项目案例征集提交。

DCloud是家什么公司,是否可信赖

DCloud从2013年开始做HBuilder,目前270万前端开发者在使用DCloud的开发工具,HBuilder百度指数与sublime、webstorm等全球知名工具相同。是中国唯一一家成功的开发工具厂商。

DCloud是明星创业公司,融资已经过了B2轮,且均为知名VC或战略投资人。

DCloud是HTML5中国产业联盟的发起单位和秘书单位。该联盟隶属于工信部信通院标准所。

DCloud产品中使用的HTML5Plus规范,为联盟的标准规范而非私有api。

uni-app推出时间不长,案例还不够多。但众多开发者使用DCloud5+引擎打包的App,这些App已经安装激活在上亿台手机设备上,广泛应用于各行各业。

DCloud的产品技术一直引领业内,2015年就上线业内第一个"小程序":DCloud流应用。随后DCloud广泛推动业内各大公司上线"小程序",普及该技术广泛应用。

数年来只有其他公司侵权DCloud并已被法院判赔DCloud,DCloud从未有劣迹,诚信立足于行业。

App打包必须上传DCloud云端吗?代码会泄露吗?

代码可以云打包,也可以离线打包。

即使使用云打包,DCloud也不会保留开发者的代码,云端打包完成后程序不会持久化存储相关文件。DCloud不愿也不敢沾惹这方面的麻烦。

之所以提供云打包,是方便不熟悉原生的前端工程师直接生成App安装包。包括没有mac电脑的工程师也可以打出iOS的包。

DCloud提供哪些技术支持?碰到框架bug影响业务怎么办?

uni-app 是DCloud全力打造的重点产品,首先会保证产品质量稳定,不会有明显bug,同时还会投入专人提供技术支持服务。 uni-app的github上的dev分支是日更的,可随时修复bug。并且作为开源产品,开发者也可以修改源码。 uni-app 的app引擎,支持原生扩展,只要你会原生扩展,就不怕app引擎有限制,大不了自己补一个原生插件进去。

开发者碰到问题,可以通过如下途径进行反馈交流:

另外,如果您确实需要商业化的保障才安心,也可以申请付费技术支持。参考

大型互联网公司发布的开源框架,是不是更有影响力?

大型互联网公司在自用某个项目时,解决了某个问题,把它摘出来开源,这个是众多大公司开源项目的来源和初衷。

而之所以把内部自用的框架开源出来,基本是为了在技术圈塑造形象和威望。对团队而言,有助于招聘;对负责人个人而言,有助于晋升和提升名气。

这类开源项目被戏称为KPI项目,往往逃不开4个魔咒:

  1. 很多项目开源后一旦取得成绩,负责人就升职调岗,或者因为其他原因最初立项负责人离职,于是之前的开源项目就慢慢变凉。
  2. 其设计初衷是为公司内部使用的,不是站在广泛的开发者需求角度设计的,其他开发者使用时会遇到各种问题。
  3. 大型互联网公司的主业都是toC的,而不是to开发者。投很多资源持续维护这些开源项目并不是其公司目标,也不会有回报。
  4. 优秀的程序员和优秀的开发框架设计者是2个层面的问题,不是说某些一线公司的前端技术人员水平不足,而是他们缺少面向开发者设计产品的经验,这种经验需要长期为开发者提供服务的团队才能具备。经验不足者设计的产品不会好用。

DCloud这家公司就是为开发者而生的,优秀的人才和资源全部是为开发者服务的,产品立项之初广泛调研不同开发者的需求,产品发布后持续迭代,让开发者们使用的更便利。

  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值