為何開發(fā)App不建議使用uniapp
uniapp是否會取代原生開發(fā)?
在某些情況下,開發(fā)者可能會選擇使用uni-app進行開發(fā),但也要注意一些問題。比如刪除或重命名了uni.js文件和uniapp.config.js文件時,我們需要更深入地檢查項目文件內容,尋找其他指示性信息。這是因為uniapp作為一個跨平臺開發(fā)框架,有其自身的特性和限制。盡管它可以方便地實現(xiàn)跨平臺開發(fā),但也正因為這種特性,可能會帶來一些問題。讓我們從幾個方面深入探討這個問題。

uni-app的技術背景及特點
我們知道uni-app是一個基于Vue.js框架開發(fā)所有前端應用的框架。它的特點是具有跨平臺開發(fā)的特性,包括小程序等前端平臺都可以使用。由于它對JS的要求較高,對于一些主要擅長HTML和CSS的開發(fā)者來說,JS的水平可能不足以應對uni-app的開發(fā)需求。雖然uni-app內置了HTML5+引擎,使得JS可以直接調用豐富的原生能力,但小程序等其他平臺并沒有這種擴展規(guī)范,因此在使用時需要特別注意條件編譯的問題。關于組件調用和第三方庫的兼容性也是開發(fā)者需要考慮的問題。雖然uni-app有其優(yōu)勢,但也存在一些不可忽視的問題和挑戰(zhàn)。
如何評價uni-app?
對于uni-app的評價可以從多個方面來考慮。它上手快,對于熟悉Vue的開發(fā)者來說能夠迅速適應。uni-app滿足了大多數App的原生功能需求,并且其調試打包和配置都相對簡單明了。它在特定的場景下是值得考慮的選型之一。初次體驗下來并沒有明顯的問題。開發(fā)者還提到了它的廣告聯(lián)盟和廣告變現(xiàn)方面的功能特點。uni-app是一個強大且靈活的框架,但也有其特定的應用場景和限制條件。
uniapp與原生APP的區(qū)別

關于uniapp與原生APP的區(qū)別,主要在于它們的開發(fā)方式和技術棧不同。原生APP是使用特定平臺的開發(fā)語言和技術棧開發(fā)的,而uniapp則是一種跨平臺開發(fā)框架,可以使用一套代碼適配多個平臺。這種差異導致了它們在性能、用戶體驗等方面可能存在差異。由于它們基于不同的賬號機制和技術實現(xiàn)方式,可能會導致用戶在不同平臺間的賬號關聯(lián)出現(xiàn)問題。因此在使用uniapp進行開發(fā)時需要考慮這些因素對用戶體驗的影響。同時也要注意處理好廣告聯(lián)盟和廣告變現(xiàn)方面的問題以保持用戶體驗的流暢性和一致性。最后要強調的是雖然uniapp具有諸多優(yōu)點但也需要注意其存在的限制和挑戰(zhàn)以便更好地滿足業(yè)務需求并提升用戶體驗。因此開發(fā)者需要根據自身需求和業(yè)務場景選擇合適的開發(fā)方式和技術框架以實現(xiàn)最佳的開發(fā)效果和用戶體驗效果。 一、uniapp與跨平臺開發(fā)概述
uniapp與跨平臺開發(fā)的特點
uniapp作為一種跨平臺的開發(fā)框架,能夠實現(xiàn)一套代碼同時開發(fā)多個平臺的應用,極大地提高了開發(fā)效率和便捷性。與傳統(tǒng)的app開發(fā)相比,uniapp的優(yōu)勢在于其跨平臺特性,可以覆蓋Android、iOS、H5等多個平臺,降低了開發(fā)成本。
微信小游戲與uniapp開發(fā)
對于微信小游戲的開發(fā),只要掌握編碼技能,完全可以通過uniapp框架進行開發(fā)。無論是專家文章、訂閱內容、評論功能,還是更復雜的游戲元素,uniapp都能提供豐富的開發(fā)資源和工具。開發(fā)者可以通過閱讀官方文檔、查看示例代碼,逐步深入flex布局等前端技術,優(yōu)化promise請求,提升開發(fā)效率。

二、開發(fā)工具與多端構建
開發(fā)工具介紹
uni-app的開發(fā)可以使用如HBuilderX等開發(fā)工具,這些工具為開發(fā)者提供了豐富的功能和友好的界面,極大地簡化了開發(fā)過程。HBuilderX等工具可以幫助開發(fā)者在安卓、IOS、H5等多端構建app應用。
Android開發(fā)環(huán)境與uni-app框架
對于安卓app的開發(fā),AndroidStudio是主要的開發(fā)環(huán)境,它提供了豐富的功能和工具,幫助開發(fā)者構建安卓App的Native環(huán)境以及對應的安裝包等。結合uni-app的框架,開發(fā)者可以更加高效地進行跨平臺開發(fā),降低開發(fā)成本。

三、移動APP開發(fā)框架的周期與盤點
移動前端開發(fā)周期與框架演變
從React框架的興起,到React Native的開源,再到如今的移動前端開發(fā)爆發(fā)期,開源項目經歷了一個成熟的周期。在這個周期內,移動APP開發(fā)框架不斷演變,Web移動前端框架也日趨豐富。
框架的成熟與選擇
在當前的移動前端開發(fā)階段,React無論在選擇面還是成熟度上都表現(xiàn)出了明顯的優(yōu)勢。雖然有很多項目停止維護,但也有很多項目堅持下來,并涌現(xiàn)出了一批新項目。大廠在移動開發(fā)上的需求主導了當前的市場,個人項目要堅持確實不易。

四、漸進類框架與多端同構
漸進類框架的現(xiàn)狀與預測
漸進類框架,即所謂多端同構框架(小程序框架),在當前市場需求旺盛。盡管大多數先行者都面臨挑戰(zhàn),但Taro等框架的成功還是讓人看到了希望。預測未來,這一類框架將會有很大的變化,很多框架可能會出局。
橋接類框架與未來趨勢
漸進類框架作為過渡性產品,最終可能會成為橋接類框架的一部分。這個賽道已經基本被大廠占據。未來的移動APP開發(fā)框架,將更加注重與橋接類框架的協(xié)同,這也是框架發(fā)展的一個重要方向。

總體來看,移動APP開發(fā)框架在不斷演變,新的技術和工具不斷涌現(xiàn),開發(fā)者需要緊跟潮流,不斷學習和掌握新的技能,才能在競爭激烈的市場中立足。新一代跨端開發(fā)框架Hippy:騰訊的創(chuàng)新與挑戰(zhàn)
一、Hippy與Weex的競爭
Hippy作為騰訊的新一代跨端開發(fā)框架,在Weex實質停更后應運而生,似乎是對標Weex的項目。Hippy不僅全面壓制了Weex的Kpi功能,更支持React和Vue兩種主流前端框架。這種競爭態(tài)勢的背后,反映出跨端開發(fā)領域的激烈競爭與創(chuàng)新活力。
二、Hippy的架構解析
Hippy 2.x架構分為三個層次:UI(JS)層、中間層C++以及渲染層。其中,Hippy-React和Hippy-Vue負責驅動UI指令生成;HippyCore負責抹平平臺差異性和提供高性能模塊;而Android和iOS則提供終端底層模塊、組件,并與布局引擎通信。這種架構設計確保了Hippy的高效性能和良好的跨平臺適應性。

三、Hippy與Weex的差異化發(fā)展
Weex因功能相對弱小、坑較多而最終被遺棄。而Hippy則在此基礎上層層加碼,未來的3.x版本更將在業(yè)務與渲染層中實現(xiàn)多元化切換,如支持DSL/Dart/WASM等語言驅動,以及選擇Flutter(Voltron)等其他渲染Renderer。這種差異化發(fā)展展現(xiàn)了Hippy的創(chuàng)新能力和對市場的深度洞察。
四、Kraken北海與Hippy的關聯(lián)
Kraken北海是一款高性能Web渲染引擎,底層基于Flutter進行渲染。它不限制上層開發(fā)者使用的框架,無論是Vue、Rax還是React都可以開發(fā)Kraken應用。Kraken的runtime通過JS Engine Binding的方式提供了一系列Web標準的API接口。其實,Kraken是一個追求全平臺完全一致的小程序平臺,同時也是一個小號瀏覽器,致力于摳W3C標準。這種追求為開發(fā)者提供了更廣闊的開發(fā)空間和更高的開發(fā)效率。
五、Hummer:超輕量級動態(tài)化跨端開發(fā)框架

除了Hippy,Hummer也是一款值得關注的跨端開發(fā)框架。它以JS引擎為基石,支持多種業(yè)內知名的JS引擎,如JavaScriptCore、Hermers、QuickJS等。Hummer的特點是拋棄了業(yè)界其他動態(tài)化跨端框架普遍使用的DSL層和VDOM層,換來的是接近原生開發(fā)的體驗和性能。在此基礎上,還開發(fā)了基于MVVM架構的開發(fā)框架Tenon,可將使用Vue/React編寫的代碼轉換成原生Hummer的代碼。Hummer也是一個超輕量的小程序平臺,如果想要提升APP能力,可以考慮嵌入Hummer。
隨著Web移動前端框架的第三個高速發(fā)展期到來,各類框架得到極大繁榮。Hippy和Hummer等跨端開發(fā)框架的涌現(xiàn),為開發(fā)者提供了更多選擇和創(chuàng)新空間。我們期待這些框架在未來能夠持續(xù)創(chuàng)新和完善,為移動開發(fā)領域帶來更多的可能性。創(chuàng)新制勝之道:我在React與前端跨平臺框架的微薄貢獻與探索之路
一、創(chuàng)新與架構創(chuàng)新的重要性
在當今快速發(fā)展的技術時代,個人在特定項目中的貢獻已顯得微不足道。要想脫穎而出,創(chuàng)新與架構創(chuàng)新才是制勝的關鍵。這也正是我對React持有高度信心的根本原因。React以其獨特的響應式編程模式,為開發(fā)者帶來了全新的開發(fā)體驗,成為了現(xiàn)代前端開發(fā)的熱門選擇。
二、探索組件庫無縫切換的框架

目前,前端組件庫如雨后春筍般涌現(xiàn),更換組件庫所付出的代價不容小覷。我希望能創(chuàng)建一個框架,實現(xiàn)組件庫的無縫切換,就像上次提到的組件公約數和公倍數一樣。這個框架理論上應支持所有組件庫,為后來者提供超越的機遇。雖然大廠可能對此沒有強烈需求,不愿發(fā)布此類框架,但我仍想進行這次微不足道的探索。
三、引入useMobile庫
這就是我所說的框架——useMobile,它分為useMobileReact和useMobileVue兩個版本。接下來我將首先發(fā)布useMobileReact。在發(fā)布后,我將填補關于此庫的推薦度空白。這個庫的目標是實現(xiàn)組件庫的無縫切換,降低更換組件庫的代價,提高開發(fā)效率和體驗。
四、uniapp的開發(fā)工具選擇
接下來,我們來談談uniapp的開發(fā)工具選擇。uniapp是一個使用Vue.js開發(fā)所有前端應用的框架,一套代碼即可發(fā)布到多個平臺。對于開發(fā)工具,我推薦使用HBuilderX進行uniapp的跨端開發(fā)。不是因為其他工具如webstorm、vscode不好,而是HBuilderX對uniapp的語法及vue相關的提示更為方便,且更加輕量。加上其快速搭建和開發(fā)的特性,使得開發(fā)效率大大提高。

五、知識準備
要想順利進行uniapp的跨端開發(fā),你需要具備一些基礎知識。你需要熟悉vue的相關語法。你需要了解小程序的路由配置方法。熟悉各平臺生命周期等知識也是必不可少的。這些知識儲備將幫助你在跨端開發(fā)之路上走得更加順暢。
創(chuàng)新和探索是推動技術發(fā)展的動力。我在React和uniapp的開發(fā)中微不足道地貢獻著,希望通過我的探索和實踐,為前端開發(fā)者帶來更好的開發(fā)體驗和更高的開發(fā)效率。