終端碎片化的時代與多端一體化開發體系的興起
隨著響應式與混合開發的技術體系的興起與逐步完善,終端碎片化時代如期而至。
這裡的‘碎片化’,意指形形色色的媒體終端碎片化了使用者體驗方式和時間,一款產品在各終端的表現層基本一致,略有差異。
於是,基於產品多終端的便捷化開發,多端一體化開發體系興起了。在講多端一體化開發體系之前,我們先回顧一下它的基礎:混合開發。
混合開發
混合開發發展到現在,實質上而言,大致可分為三大類;
一 H5嵌入式混合開發(webApp ,native-h5-app ):
代表技術有:
1 webview : webview控制元件效能愈加強大,可控的h5內容體積以及逐漸接近native的效能,讓它逐漸成為新時代主流的webapp開發方式;
2 hyiframe : 用iframe開一個視窗,請求服務端的h5頁面,是早年的webapp的主流開發方式。
3 highbridge : 有native提供底層呼叫api,以橋接的方式,讓h5可間接呼叫底層,直到現在,它還是主流的webapp開發方式;
4 pwa : pwa 其實不算一種技術,它是一種概念——追求無限接近native效能的web pro。這裡把它放在這裡,主要考慮到桌面h5應用。
二 native混合開發(寫的js,build出的是安卓、ios原生):
代表技術有:
1 RN : react-native是早期Facebook團隊推出的混合開發框架,到現在的版本,對安卓和ios都有很好的支援;
2 Weex : vue語法的native混合開發體系。雖然背後沒有特別強大的團隊,但開源大佬多啊;
native意指原生,這裡的原生指的是 安卓原生和ios原生。前陣子很火的一道面試題是 native混合開發的原理,講起來很簡單,實際上真正要更深入的理解,多少要學些原生的東西。
三 平臺指令碼類的小程式 :
代表技術有:
1 微信小程式 : 這個有多火就不用再說了==!
2 支付寶小程式: 聽說搞得還不錯,但支付寶使用者多依賴支付寶的支付功能,大多都是把它定位為一個便捷支付類的產品,而非一個娛樂/社交產品。它沒微信小程式火,不是因為技術上的不足,而是產品的定位。
我們知道js也是門指令碼語言,所謂指令碼語法,就是隻能執行在特定的環境下。 例如js只能依賴具備js直譯器的環境(以瀏覽器引擎,node為主的環境都具備js直譯器的功能),vbs只能依賴windows環境(windows的指令碼語言)。
同樣的,微信、支付寶、釘釘等產品本身也是一種環境,微信最先開始提供了它的指令碼語言,在語言設計上,與js的語法幾乎一致,因此——我們用的是js語法,實際上寫的是獨屬於這個環境的指令碼。
以上,是主流的三大類混合開發方式;
多端一體化開發體系
多端一體化開發體系,就是以h5與混合開發為根本,利用它們共同的特性:js語法,去構建的一次開發,多端產出的開發體系。
主流技術有:
1 Rax: 表層用react語法開發,構建依賴weex(沒寫錯,不要奇怪這一點)實現native(安卓、ios)端,同時產出h5端;
也就是 rax => weex+h5 => andriod+ios+h5;
2 Taro.js : taro.js也是一個開源的多端一體化開發體系,版本穩定以來一直很受歡迎。
Taro.js用的也是react語法,但開發一套程式碼後,通過taro提供的編譯工具,可build出多套終端的適配程式碼:包括微信/百度/支付寶/位元組跳動小程式、H5、React-Native ,適用性很廣,極大地解放了前端開發的生產力。
18年起,開源的多端開發框架逐漸增多,出現了不少好產品。這必然是前端應對大前端潮流下終端碎片化的最好方式,因此,掌握和熟練一門體系是作為一個跟隨時代潮流的前端開發人員所必備的技能之一。
大前端,講在最後
所謂大前端的概念,一開始是node興起後的衍生概念。我們知道,node作為服務端js的執行環境,它一開始的主要是做ssr(服務端渲染)這樣的一個表現層;但隨著它的逐步完善和突出的特點,新興架構方式中常有用node作為前端的一個資訊資料的轉發和控制層。這一點其實與多終端相契合——因為多終端所以更需要node去做控制層或中間層,反過來node不僅是多終端的根本開發依賴,更是客戶端與服務端親密結合的基礎。
因此,現時代講大前端應當是必備這樣的兩個條件: 1 面向於多終端的技術棧; 2 以node為核心的服務端技術盞 ;
全文手打,2019年1月9日,散場丶丶。