㈠ 移動APP開發框架盤點2:Web移動前端框架大全
開源項目其實有一個成熟周期,這個周期大概是三年左右,自React框架在2013年發布並引爆了前端框架的大潮,這個屬於前端的周期就此開始了。
之後在2015年5月開源的React Native又開啟了屬於Web移動前端的周期,15-16年,18-19年,21-22年正好就是屬於移動前端的三個爆發點。
三年前,在第一個成熟收獲期,我盤點了移動開發框架。在這第二個成熟收獲期,理所當然要來盤點一波。
不過,當我點開github項目的code-frequency時,還是被這個准到嚇人的周期猜想驚呆了,先給你們看一波,剩下的自行驗證。
1、https://github.com/youzan/vant/graphs/code-frequency
2、https://github.com/quasarframework/quasar/graphs/code-frequency
再來說第二個比較有意思的發現,停止維護的項目絕大多數是Vue框架項目。
盤點開始的時候我還覺得React框架處於絕對劣勢,到完成時我發現React無論在選擇面還是成熟度上都超過了Vue。
原因我這里就不分析了,反正大家都有自己的看法。
網頁類框架就是前端組件框架,這一次雖然有大量項目停止維護,但是也有很多項目堅持了下來,而且還涌現出了一批新項目。
大廠佔了主導,因為這些年大廠在移動開發上的需求,遠高於其它方面。個人項目要堅持確實不易。
本來是想要做一個驗證項目,把所有框架都試用一遍並給出推薦度的。由於進度太慢,還是下一次再發吧。
這次的重點是漸進類框架,就是所謂多端同構框架(小程序框架)。這幾年國內的重點的各種小程序平台,所以多端框架的需求很是旺盛。
不過大多數先行者都沒挺過來還是讓我很意外,只有Taro成功了,想想還是有很多讓人唏噓的東西。
在這里還是先預測一波吧,因為這一類框架最變化最大,最終還是有很多框架要出局的。
漸進類框架是一個過渡性的產品,最終會變成橋接類框架的一部分,所以,與橋接類框架協同才是框架的出路。
這個賽道基本全是大廠了。
騰訊新一代跨端開發框架Hippy
Hippy一看就是淘寶Weex的對標項目,Kpi功能全面壓制。所以官方支持 React 和 Vue 兩種主流前端框架。在Weex2019年實質停更後發布,要不要這么卷?
Hippy 2.x 架構主要分成三層,UI(JS) 層 Hippy-React 和 Hippy-Vue 負責驅動 UI 指令生成;中間層 C++ HippyCore 負責抹平平台差異性和提供高性能模塊;渲染層 Android 和 iOS 負責提供終端底層模塊、組件,並與布局引擎通信。
對Weex慘遭遺棄,我上次就說過:「ReactNative提供工具,Weex提供框架,將平台差異化屏蔽(Write Once, Run Everywhere)。所以Weex則註定功能相對弱小,並且坑比較多。」Weex最終下馬也是必然的,淘寶又發布升級版北海,為了實現(Write Once, Run Everywhere),它採用自繪,而且是基於Flutter自繪。
所以Hippy3.x就一如既往的Kpi功能層層加碼,很有騰訊風格。在未來的 3.x 中業務與渲染層中的具體實現可根據用戶實際場景進行切換:業務層上不再局限於 JS 驅動,還可選擇(如:DSL/Dart/WASM 等)其它語言進行驅動;在渲染層中,渲染引擎除了支持現有原生(Native)渲染之外,還可以選擇其他渲染 Renderer,如 Flutter(Voltron) 渲染。
「Kraken 北海」是一款高性能Web渲染引擎。底層基於 Flutter 進行渲染。
Kraken 不限制上層開發者使用的框架,無論你是使用 Vue 、Rax 還是 React 都可以開發 Kraken 應用。
Kraken 的 runtime 通過 JS Engine Binding 的方式提供了一系列 Web 標準的 API 介面,調用相應 API 會執行相關邏輯並創建一系列需要發送給 Dart 層處理的指令。
Kraken 其實就是一個小程序平台,而且追求全平台完全一致。我雖然認為各平台不一致是很自然的事情,但是也表示理解,畢竟別人吹牛有當真的傳統(KFC表示認同)。
Kraken 現在也是一個小號瀏覽器,所以它的主要工作就是摳標准,畢竟它是一款基於 W3C 標準的高性能渲染引擎。
最後,我勸淘寶領導定Kpi要理智些,畢竟Hippy4我還蠻期待的。
滴滴出品的超輕量級動態化跨端開發框架,主打輕量和實用。
Hummer 以 JS 引擎為基石,目前已支持 JavaScriptCore、Hermers、QuickJS 等業內知名 JS 引擎(這里本來還有個V8的,我刪除了,源碼裡面沒有,Kpi需要)。再配合經過調優的 Yoga 布局引擎,抹平了兩端視圖布局差異(性能更佳的自研布局引擎開發中)。順便提一下,Hippy採用V8(功能更強)自研布局引擎(性能更佳)。
Hummer 的特點是拋棄了業界其他動態化跨端框架普遍使用的DSL層和VDOM層,因此原生 Hummer 不具備前端開發常用的響應式編程的能力,但同時換來的是接近原生開發的體驗和性能。再以原生 Hummer 為基礎,在此之上開發了一套基於MVVM架構的開發框架 —— Tenon ,通過 Tenon,可以把使用 Vue/React 編寫的代碼,轉換成原生 Hummer 的代碼。
Hummer也是一個小程序平台,而且超輕量。如果想要無限提升自己APP的能力,可以考慮嵌入Hummer。
Web移動前端框架正在迎來第三個高速發展期,各類框架得到極大繁榮。
個人在具體項目的貢獻已經微乎其微了,創新、架構創新是唯一制勝的手段,這也是我看好React的根本原因。
最後,還是想做點微不足道的 探索 ,現在前端組件庫層出不窮,更換組件庫帶來的代價有點大。想創建一個框架,來實現上次說的組件公約數和公倍數,無縫切換組件庫。理論上支持所有組件庫 ,也能為後來者提供彎道超車的機會。我想大廠可能沒有需求,也不會願意發布這種框架,畢竟都是平台部門說了算。
這個庫就是useMobile,當然分為useMobileReact和useMobileVue。下次先發布useMobileReact。等我發布後,再來填上面表中缺的推薦度。
原文地址: https://www.cnblogs.com/windfic/p/16019457.html
㈡ 移動前端開發和web前端開發有什麼區別
移動前端開發和 Web 前端開發的區別是:
1、前端是相對比較大的概念,一般是指用戶能夠看到、直接接觸的界面都算是前端,比如iOS界面,安卓界面,網頁界面,PC/Mac桌面軟體的界面。最常見的是Web前端,也就是針對於網頁端開發的工作。
2、Web App即Web application,也就是以瀏覽器作為客戶端的軟體。例如,用桌面客戶端來收發郵件,但也可以直接用瀏覽器登陸gmail或者QQ郵箱,直接使用網頁版的軟體來使用。總之就是使用網頁版代替本地軟體。
Mobile Web App就是在手機端打開的Web App。例如Gmail的移動端軟體
3、目前,移動客戶端的開發主要包括三種類型:
Native App(原生APP):也就是完全使用移動設備系統語言寫的客戶端。iOS系統就是使用Objective-C語言來編寫本地應用,也可以使用蘋果於2014年蘋果開發者大會上發布的SWIFT語言;Android平台就是使用Java語言來開發。原生APP就是從界面到交互都是使用官方標准語言來編寫,效率和穩定性都是最好的,但欠缺靈活性。
Web App:這個就是在移動瀏覽器里打開的,使用Web前端開發語言HTML CSS JavaScript來開發的,基本上就是個網頁,
Hybrid App:主要使用HTML5實現。一般使用Native語言實現一個容器,然後使用HTML CSS JS來實現用戶界面和交互。這樣方式既克服了Web App容器暴露偏底層的介面這樣的問題,同時比起原生的開發靈活性要高。這樣就更新可以更方便快捷,也不依賴於市場。例如,豌豆莢其實是個PC端的hybrid app 。
對於以上三種開發方式的比較和分析搜索引擎裡面有太多的內容了,這里也就不再贅述了。
4、移動端網頁布局方法與pc的差異。
主要是css方面,外加如何做到同一url,不同客戶端展現不一致的做法,俗稱pc和mobile都兼容。還有會說一下rem的相關用法和一段比較經典的rem.js
最後總結一下:
其實這兩者最顯著的區別就是,web app是不依賴於具體的設備的,通用性較強,只要手機或PC有相應內核的瀏覽器就基本OK。而mobile的app則依賴於具體的設備,一旦更換設備,需要重新下載才能繼續使用。
移動前端開發 主要來說的是Native Client的開發Android為Java,iOS為Objective-C,然後么HTML5應用號稱跨平台其實差異很大。
Web前端開發么基本上就是HTML JavaScript CSS,不過有些人把Servelt/JSP, PHP,Ruby,Python,C#之類的只要關繫到頁面的也叫做Web前端開發。
app是應用,每個操作系統有專門的開發工具和語言
web是網頁,使用html+css+js,有工具可以生成轉化為app,不過效果一般
㈢ web前端開發和app開發,哪個發展前景比較好
個人感覺WEB要更好些,就算是現在或者將來,很多APP還是需要WEB來提供數據的,而且這也是將來的一個趨勢,WEB應用或者基於web端的APP。
㈣ h5開發和原生app開發以及web開發有什麼區別呢
一、開發方面
原生App
⊙ 每一種移動操作系統都需要獨立的開發項目【點擊查看APP開發的真正報價】
⊙ 每種平台都需要獨立的開發語言。Java(Android), Objective-C(iOS)以及Visual C++(Windows Mobile)等等
⊙ 需要使用各自的軟體開發包,開發工具以及各自的控制項
移動Web App
⊙ 因為運行在移動設備的瀏覽器上,所以只需要一個開發項目
⊙ 這種應用可以使用HTML5,CSS3以及JavaScript以及伺服器端語言來完成(PHP,Ruby on Rails,Python)
⊙ 這里可沒有標準的SDK,基本任意選擇別忘了有一些跨平台的開發工具,比如PhoneGap, Sencha Touch 2,APPcan以及Appcelerator Titanium等等。
二、能力方面
原生App
⊙ 能夠與移動硬體設備的底層功能,比如個人信息,攝像頭以及重力加速器等等
移動Web App
⊙ 只能使用有限的移動硬體設備功能。
三、獲取方法
原生App
⊙ 直接下載到設備
⊙ 以獨立的應用程序運行(並不需要瀏覽器)
⊙ 用戶必須手動去下載並安裝這些原生App
⊙ 有一些商店與賣場來幫助用戶尋找你的App,目前app市場不計其數
移動Web App
⊙ 從移動設備上的瀏覽器訪問
⊙ 不需要安裝額外的軟體
⊙ 軟體更新只需要伺服器就夠了
⊙ 因為現在沒有什麼商品或賣場提供這種App,所以如何搜索這些移動Web App相當不簡單。四、版本控制
原生App
⊙ 用戶可以自由地選擇是否更新軟體版本,所以會出現不同用戶同時使用不同版本的情況移動Web App
⊙ 所有的用戶都是用同樣的版本五、優勢
原生App⊙ 比移動Web App運行快
⊙ 一些商店與賣場會幫助用戶尋找原生App
⊙ 官方賣場的應用審核流程會保證讓用戶得到高質量以及安全的App
⊙ 官方會發布很多開發工具或者人工支持來幫助你的開發移動Web App
⊙ 跨平台開發
⊙ 用戶不需要去賣場來下載安裝App
⊙ 任何時候都可以發布App,因為根本不需要官方賣場的審核
⊙ 如果你已經有了一個Web App,你可以使用 responsive web design來輔助改進六、缺陷
原生App
⊙ 開發成本高,尤其是當需要多種移動設備來測試時
⊙ 因為是不同的開發語言,所以開發,維護成本也高
⊙ 因為用戶使用的App版本不同,所以你維護起來很困難
⊙ 官方賣場審核流程復雜且慢,會嚴重影響你的發布進程移動Web App
⊙ 無法使用很多移動硬體設備的獨特功能
⊙ 要同時支持多種移動設備的瀏覽器讓開發維護的成本也不低
⊙ 如果用戶使用更多的新型瀏覽器,那問題就更不好處理了
⊙ 對於用戶來說,這種App很難被用戶發現。
想要了解更多有關APP開發的相關信息,推薦咨詢豬八戒網。豬八戒網有千萬服務商為企業、公共機構和個人提供定製化的解決方案,將創意、智慧、技能轉化為商業價值和社會價值。2011年豬八戒網獲得IDG投資並被評選為中國2011年度「最佳商業模式十強」企業;專業性值的信賴。
㈤ web app開發的難度怎麼樣
按復雜程度可以分為三個等級:
1、簡單的app開發—web語言
HTML5是構建Web內容的一種語言描述方式。HTML5是Web中核心語言HTML的規范。編程語言就是網頁三件套HTML+CSS+Javascript。
這種方式實現實現app開發比較容易,而且還是跨平台開發,只要開發一套代碼,就可以適用於安卓,蘋果等多個操作系統,但是這種方式功能比較弱,性能低,用戶體驗也沒那麼好,適合開發一些簡單的項目。
2、中等的app開發—web語言和原生開發語言混合
通過這種方式,可以在蘋果和安卓系統上實現一套app原生開發框架,像通用的Flutter, ReactNative都是較為流行的原生跨平台框架。通過這種方式開發app難度比用web開發大,但是比原生簡單,也是跨平台開發,一套代碼通用於多個操作系統,功能和性能方面也是處於中等水平。
3、復雜的app開發—原生開發
這種方式較為復雜,如果要開發不同的操作系統,要開發相對應的代碼。
㈥ java web後台開發跟手機APP後台開發有什麼不同
基本上一樣的,ssh也可以為手機APP開發後台。
其實對於後台開發來說原理都差不多。只不過app的後台開發和web不一樣的地方在於傳輸數據格式不一樣,一般來說web訪問後返回的是一個html頁面,少部分是json格式;而一般app的後台開發大部分直接傳json格式數據,少部分會直接返回html5的頃碼灶頁面。
(6)web開發app開發擴展閱讀
1、伺服器端開發,也叫後台開發,這是唯一的,對應不同的平台,他負責數據的分發與存儲,和一些邏輯的處理.邏輯處理的多少由業務的復雜程度決定。服務端相對獨立,與平台沒啥關系。
2、移動設模纖備又可分為andriod平台、iPhone平台等每個平台都有自己的規范和開發技術。web平台的規范是鍵盤+滑鼠,開發技術是html+css+javascript;移動設備平台的規范是鍵盤+手指,技術iphone是Objective-C,android是java。Java Web,是用Java技術來解決相關web互聯網領域的技術總和。
3、Java技術是Sun公司在1995年5月正式推出的。雀扮20多年來,Java已從編程語言發展成為全球第一大通用開發平台。Java技術已為計算機行業主要公司所採納,同時也被越來越多的國際技術標准化組織所接受。1999年,Sun推出了以Java 2平台為核心的J2EE、J2SE和J2ME三大平台。