新聞中心
uni-app選型評估23問
如果你關(guān)心競品對比,這里有幾份詳盡對比:

- 多端開發(fā)框架對比橫評,參考:https://juejin.im/post/5ca1736af265da30ae314248
- 只做App,flutter、react native等App跨平臺框架對比,參考:https://ask.dcloud.net.cn/article/36083
- 只做小程序,原生wxml開發(fā)、wepy、mpvue、taro的對比,https://ask.dcloud.net.cn/article/35867
- uni-app和微信原生開發(fā)的詳細(xì)比較評測,參考:https://ask.dcloud.net.cn/article/36484
uni-app收費(fèi)嗎?
uni-app 是免費(fèi)并且屬于Apache2.0開源協(xié)議的產(chǎn)品。DCloud官方承諾永遠(yuǎn)不會變更開源協(xié)議。無論HBuilderX、uni-app、App,面向中國人永久免費(fèi)。大家可以放心使用。
DCloud的盈利方式在幫助開發(fā)者進(jìn)行推廣和流量變現(xiàn)上,而不在開發(fā)工具收費(fèi)上。
跨端會造成功能受限制嗎?
uni-app在跨平臺的過程中,不犧牲平臺特色,不限制平臺的能力使用。
應(yīng)用開發(fā)中,90%的常規(guī)開發(fā),比如界面組件、聯(lián)網(wǎng)等api,uni-app封裝為可跨多端的API。
各個端的特色功能,uni-app引入條件編譯??梢詢?yōu)雅的在一個項目里調(diào)用不同平臺的特色能力。比如push,微信小程序里不支持,但可以在App里使用,還有很多原生sdk,在App時難免涉及,這些都可以正常的在uni-app框架下使用。
下圖是uni-app產(chǎn)品功能框架圖,uni-app在保持uni規(guī)范跨平臺的前提下,還可實現(xiàn)每個平臺特有的平臺能力(如微信小程序平臺,可繼續(xù)調(diào)用微信卡劵等微信特有業(yè)務(wù)API)。
在做小程序時,小程序所有的api都可以使用;而輸出到App時,原生渲染引擎、原生sdk集成和混寫都支持,使得原生的所有api都可以使用。
同時注意,條件編譯不同于代碼里if邏輯判斷。條件編譯塊里的代碼或指定的文件,只有在特定平臺才會被編譯進(jìn)去,不會把不能用的其他平臺代碼混在一個包里。如果大量使用if判斷,會增大體積和影響性能,而條件編譯則沒有這些問題,減少包體積,減少互相的干擾。
uni-app的手機(jī)端用戶體驗如何?
使用uni-app開發(fā)的微信小程序,因為智能的處理的數(shù)據(jù)的diff,比大多人手寫的原生小程序的性能還好。詳細(xì)數(shù)據(jù)評測參考:https://juejin.im/post/5ca1736af265da30ae314248
uni-app打包成App后,支持webview渲染和weex原生渲染這2種引擎,可以任由開發(fā)者切換使用。
- webview渲染方式,架構(gòu)和微信小程序一樣。微信小程序的Hybrid應(yīng)用框架是業(yè)內(nèi)體驗上的標(biāo)桿,實踐證明這種體驗足以承載一線互聯(lián)網(wǎng)開發(fā)商獲得上億用戶。uni-app的App端體驗同微信小程序,超過其他平臺的小程序,超過一般的hybrid框架。
- 原生渲染方式,是DCloud改造了weex引擎,在weex上實現(xiàn)了uni-app的組件和API。達(dá)到更優(yōu)秀的用戶體驗。
由于有豐富的插件市場,以及支持所有小程序SDK在App端的使用,使得uni-app擁有更龐大的應(yīng)用生態(tài)。
只開發(fā)小程序,需要uni-app嗎?
是的,單獨開發(fā)小程序,也應(yīng)該使用uni-app。它比其他小程序框架或原生小程序開發(fā)更有優(yōu)勢。原因如下:
- uni-app無需追隨微信升級,可不受限在條件編譯里使用wx的現(xiàn)在或未來的所有api
- uni-app的性能比一般人手寫的微信原生代碼性能更高。就像vue操作比一般人寫js操作dom性能更高一樣。底層自動diff差量更新數(shù)據(jù),比手動setData性能更高。評測數(shù)據(jù)見下文
- uni-app是純vue語法,不必另學(xué)一種dsl。開發(fā)不同項目時,思維不用切換
- uni-app的組件、模板非常豐富,插件市場數(shù)千款插件。如富文本解析、圖表等組件,uni-app版插件性能均超過了wxparse、wx-echart等微信小程序組件
- HBuilderX比微信工具更強(qiáng)大,開發(fā)效率更高。哪怕使用vscode等工具,由于這些工具對vue的支持強(qiáng)于對wxml的支持,所以開發(fā)效果也會更高
- 微信原生開發(fā)對webpack、預(yù)編譯語言、工程流程管理很多功能都不支持,大公司很少用微信原生開發(fā),都是在用框架來提升開發(fā)效率
- uni-app支持雙向數(shù)據(jù)綁定、vuex狀態(tài)管理,比小程序原生開發(fā)方便的多
- 遲早會有多端需求,使用uni-app再無后續(xù)顧慮
- uni-app并非僅用于做跨端的,只用uni-app做小程序、只做H5、只做App的,案例是一樣多的,詳見:https://uniapp.dcloud.io/case 關(guān)于uni-app和微信開發(fā)的詳細(xì)比較評測,參考:https://ask.dcloud.net.cn/article/36484
- 評測1、uni-app和原生wxml開發(fā)、wepy、mpvue、taro的對比,https://ask.dcloud.net.cn/article/35867
- 評測2、uni-app和微信原生開發(fā)的詳細(xì)比較評測,參考:https://ask.dcloud.net.cn/article/36484
只開發(fā)App,需要uni-app嗎?
uni-app是更好的跨平臺開發(fā)框架,開發(fā)一次iOS、Android都有了。體驗好、開發(fā)效率高。
uni-app在App端,基于能力層/渲染層分離的架構(gòu)設(shè)計(見下圖),渲染層是webview和weex二選一,能力調(diào)用都是共同的plus api,比如藍(lán)牙、掃碼等能力;也就是weex被內(nèi)置到uni-app中,并且被強(qiáng)化了。
過去weex有個很大的問題是api太少,開發(fā)時必須iOS、Android原生和前端3撥團(tuán)隊協(xié)作開發(fā),實際上react native也如此,因為他們的核心只是高性能渲染器。
plus api的結(jié)合解決了這個問題,大多數(shù)App的開發(fā)不再需要原生介入了,從而把跨平臺開發(fā)省成本這個核心目的落地了。
uni-app在App側(cè)可以使用豐富的小程序sdk,如網(wǎng)易云信、環(huán)信、七牛等眾多sdk廠商均原廠維護(hù)其小程序sdk版本,而這些sdk均可直接用于uni-app并發(fā)布為iOS、Android的App。
uni-app的插件市場里有非常多的ui庫、組件、模板,可以大幅提升開發(fā)效率。
相比純原生開發(fā),uni-app體驗可商用,也不會限制功能調(diào)用,但開發(fā)效率和開發(fā)成本更優(yōu)于原生開發(fā)。
如果你已經(jīng)有了原生App,那么可以局部使用uni-app,內(nèi)嵌SDK,讓工程逐步跨平臺化。
uni-app是多端寫在一個項目統(tǒng)一升級維護(hù),還是每個端不同的項目,只復(fù)用部分代碼
uni-app是多端寫在一個基礎(chǔ)項目下,差異使用條件編譯來管理。
這有個巨大的好處是一套工程代碼,升級時可多端同時更新。
如果把不同端的項目分開,那么維護(hù)升級時非常麻煩,無法方便同步升級。
所以uni-app開發(fā)微信小程序時,不止編碼,包括域名校驗等配置均在HBuilderX里完成,不需要在微信開發(fā)者工具里二次調(diào)整。
uni-app 學(xué)習(xí)成本高嗎?基于什么技術(shù)棧?
uni-app簡單來說是 vue的語法 + 小程序的api。
它遵循Vue.js語法規(guī)范,組件和API遵循微信小程序命名,這些都屬于通用技術(shù)棧,學(xué)習(xí)它們是前端必備技能,uni-app沒有太多額外學(xué)習(xí)成本。
有一定 Vue.js 和微信小程序開發(fā)經(jīng)驗的開發(fā)者可快速上手 uni-app 。
沒學(xué)過vue的同學(xué),也不用掌握vue的全部,只需了解vue基礎(chǔ)語法、虛擬dom、數(shù)據(jù)綁定、組件、vuex,其他如路由、loader 不用學(xué),cli、node.js、webpack也不需要學(xué)。
官方有入門培訓(xùn)視頻,且還有眾多培訓(xùn)渠道加入uni-app生態(tài),可參考培訓(xùn)教程資源匯總。
uni-app 開發(fā)體驗如何?支持現(xiàn)代前端開發(fā)流程嗎?
uni-app 積極擁抱社區(qū)現(xiàn)有的現(xiàn)代開發(fā)流程,包括但不限于:
- 內(nèi)置了webpack
- NPM 包管理系統(tǒng)
- es6+ 語法(發(fā)布時會自動編譯為es5)
- 各種預(yù)處理器(less、scss、stylus、typescript)
- uni-app的官方ide:HBuilderX,在vue、json、markdown、代碼提示、操作效率上,有非常明顯的優(yōu)勢,可幫助開發(fā)者大幅提高工作效率
- uni-app同時也提供了cli方式,可使用其他開發(fā)工具如vscode開發(fā),當(dāng)然開發(fā)效率不如HBuilderX。對比詳見https://ask.dcloud.net.cn/article/35451
uni-app 生態(tài)開放性如何?能否直接利用現(xiàn)有前端社區(qū)資源?
uni-app 提供了開放性的生態(tài):
- 豐富的插件市場為開發(fā)者提供數(shù)千款現(xiàn)成的輪子,https://ext.dcloud.net.cn
- 兼容微信小程序 JS SDK,豐富的小程序生態(tài)內(nèi)容可直接引入uni-app,并且在App側(cè)通用
- 兼容微信小程序自定義組件
- 支持 NPM 包管理系統(tǒng)
- 支持 mpvue 項目及組件
- 支持原生插件,見插件市場:https://ext.dcloud.net.cn
- 支持App原生工程里嵌入uni-app的sdk。
需要注意的是,uni-app 采用Vue.js方案,限制了dom操作,因此所有基于dom的前端庫都無法直接使用;所幸的是目前基于微信小程序的庫已經(jīng)非常多了,這個生態(tài)也很完善,所有微信小程序的庫在uni-app 里都能用,不止是在微信里能用,在App下也能用。
uni-app 支持的手機(jī)版本最低到多少?
Android4.4、iOS8是官方會保障兼容的。 要知道Android4.4已經(jīng)是2013年發(fā)布的手機(jī)了,正常用戶不會還在用這么久遠(yuǎn)的手機(jī)。
uni-app成熟度高嗎?
uni-app是目前最成熟的多端開發(fā)框架,已迭代幾十個版本,擁有幾十個開發(fā)者交流群,幾十萬應(yīng)用案例。
阿里小程序IDE官方內(nèi)嵌uni-app,uni-app沒有讓阿里巴巴失望,也不會讓你失望。詳見:https://ask.dcloud.net.cn/article/36485
uni-app的社區(qū)活躍嗎?
加入uni-app的群就知道,幾十個QQ/微信群每天數(shù)萬條聊天記錄,非?;钴S。論壇里每天數(shù)百個帖子。
插件市場內(nèi)容也非常豐富,各種輪子方便可用。https://ext.dcloud.net.cn/,并且很多輪子的uni-app版,性能功能都強(qiáng)于微信小程序版。
基于uni-app的三方培訓(xùn)也很多。騰訊課堂官方親自為uni-app制作了課程。
uni-app 有哪些已上線的成功案例?
開發(fā)者分享的案例參考uni-app 應(yīng)用案例
DCloud是家什么公司,是否可信賴
DCloud從2013年開始做HBuilder,目前380萬前端開發(fā)者在使用DCloud的開發(fā)工具,HBuilder百度指數(shù)與sublime、webstorm等全球知名工具相同。是中國唯一一家成功的開發(fā)工具廠商。
DCloud是明星創(chuàng)業(yè)公司,融資已經(jīng)過了B2輪,且均為知名VC或戰(zhàn)略投資人。
DCloud是HTML5中國產(chǎn)業(yè)聯(lián)盟的發(fā)起單位和秘書單位。該聯(lián)盟隸屬于工信部信通院標(biāo)準(zhǔn)所。
DCloud產(chǎn)品中使用的HTML5Plus規(guī)范,為聯(lián)盟的標(biāo)準(zhǔn)規(guī)范而非私有api。
DCloud的產(chǎn)品技術(shù)一直引領(lǐng)業(yè)內(nèi),2015年就上線業(yè)內(nèi)第一個"小程序":DCloud流應(yīng)用。隨后DCloud廣泛推動業(yè)內(nèi)各大公司上線"小程序",普及該技術(shù)廣泛應(yīng)用。
數(shù)年來只有其他公司侵權(quán)DCloud,這些作惡公司已被法院判決給DCloud賠款道歉,DCloud從未有劣跡,誠信立足于行業(yè)。
阿里小程序IDE官方內(nèi)嵌uni-app,uni-app沒有讓阿里巴巴失望,也不會讓你失望。詳見:https://ask.dcloud.net.cn/article/36485
App打包必須上傳DCloud云端嗎?代碼會泄露嗎?
代碼可以云打包,也可以離線打包。
即使使用云打包,DCloud也不會保留開發(fā)者的代碼,云端打包完成后程序不會持久化存儲相關(guān)文件,DCloud不愿也不敢沾惹這方面的麻煩。
之所以提供云打包,是方便不熟悉原生的前端工程師直接生成App安裝包。包括讓沒有mac電腦的工程師也可以打出iOS的包。
DCloud提供哪些技術(shù)支持?碰到框架bug影響業(yè)務(wù)怎么辦?
uni-app 是DCloud全力打造的重點產(chǎn)品,不是非專業(yè)公司的KPI項目。不會因為某些負(fù)責(zé)人的流動導(dǎo)致框架爛尾。 uni-app 的github上的dev分支是日更的,可隨時修復(fù)bug。并且作為開源產(chǎn)品,開發(fā)者也可以修改源碼。 uni-app 的app引擎,支持原生擴(kuò)展,只要你會原生擴(kuò)展,就不怕app引擎有限制,大不了自己補(bǔ)一個原生插件進(jìn)去。 uni-app 開發(fā)小程序,無需依賴微信等平臺升級。它們升級后,uni-app是可以直接使用的,不需要等待uni-app升級才能使用微信的新功能。
開發(fā)者碰到問題,可以通過如下途徑進(jìn)行反饋交流:
- ask社區(qū):https://ask.dcloud.net.cn/explore/category-12
- QQ群:參考官網(wǎng)左側(cè)導(dǎo)航顯示的QQ群列表
另外,如果您確實需要商業(yè)化的保障才安心,也可以申請付費(fèi)技術(shù)支持。
大型互聯(lián)網(wǎng)公司發(fā)布的開源框架,是不是更有影響力?
大型互聯(lián)網(wǎng)公司在自用某個項目時,解決了某個問題,把它摘出來開源,這個是眾多大公司開源項目的來源和初衷。
而之所以把內(nèi)部自用的框架開源出來,基本是為了在技術(shù)圈塑造形象和威望。對團(tuán)隊而言,有助于招聘;對負(fù)責(zé)人個人而言,有助于晉升和提升名氣。
這類開源項目被戲稱為KPI項目,往往逃不開4個魔咒:
- 很多項目開源后一旦取得成績,負(fù)責(zé)人就升職調(diào)崗,或者因為其他原因最初立項負(fù)責(zé)人離職,于是之前的開源項目就慢慢變涼。
- 其設(shè)計初衷是為公司內(nèi)部使用的,不是站在廣泛的開發(fā)者需求角度設(shè)計的,其他開發(fā)者使用時會遇到各種問題。
- 大型互聯(lián)網(wǎng)公司的主業(yè)都是toC的,而不是to開發(fā)者。投很多資源持續(xù)維護(hù)這些開源項目并不是其公司目標(biāo),也不會有回報。
- 優(yōu)秀的程序員和優(yōu)秀的開發(fā)框架設(shè)計者是2個層面的問題,不是說某些互聯(lián)網(wǎng)大廠的前端技術(shù)人員水平不足,而是他們?nèi)鄙倜嫦蜷_發(fā)者設(shè)計產(chǎn)品的經(jīng)驗,這種經(jīng)驗需要長期為開發(fā)者提供服務(wù)的團(tuán)隊才能具備。經(jīng)驗不足者設(shè)計的產(chǎn)品不會好用。
而DCloud這家公司就是為開發(fā)者而生的,優(yōu)秀的人才和資源全部是為開發(fā)者服務(wù)的,產(chǎn)品立項之初廣泛調(diào)研不同開發(fā)者的需求,產(chǎn)品發(fā)布后持續(xù)迭代,讓開發(fā)者們使用的更便利。
新聞標(biāo)題:創(chuàng)新互聯(lián)UNI-APP教程:uni-app選型評估指南
瀏覽地址:http://fisionsoft.com.cn/article/cdcejpd.html


咨詢
建站咨詢
