大前端技術選型 Native原生iOS, Android, React-Native, Flutter, 微信小程序, HTML5

說明

筆者於2020年5月15日在世界500強企業,做了一場300+人次的技術分享。特此記錄主要內容。
在這裏插入圖片描述

1.淘寶架構

1.1淘寶整體架構

在這裏插入圖片描述
淘寶架構圖如何剖析,從外圍到內圍,從左到右。外圍都是用戶,數據的生產者,內部是數據的消費存儲者;左邊都是數據處理的源頭,右邊到達大數據平臺,是大數據的分析。經過大數據的分析,爲運營和產品提供優化方向,進一步提供更好的產品、商品、活動,提高GMV、DAU等。

1.2 淘寶App架構

在這裏插入圖片描述
淘寶APP通過插件的方式引入各個業務模塊,實現輕量級可插拔的系統。上半部分未業務部門模塊,通過下面的bundle模塊和基礎模塊組合而成,很想樂高,比如手機淘寶,聚划算,淘點點,農村淘寶等。下半部分分爲:Bundle爲公用的業務模塊,比如商鋪、購物車、商鋪詳情等;底層bundle爲基礎功能模塊,比如掃碼、路由、熱修復等。

在這裏插入圖片描述
單個Bundle內部架構,淘寶分爲多個App,比如淘寶、天貓、聚划算等。每個App的架構都是一樣的,分爲業務層、核心層、基礎層。

APP由URLRouter來解耦各個Bundle的互相引用。比如通過路由taobao://car可以訪問到購物車模塊,不管是Native還是H5都是用的同一個路由,通過參數區別調用Native還是H5,這樣子就可以通過Server端下發參數的形式,或者App內部策略來實現降級(比如Native crash 連續crash2次以後,這個頁面用H5打開)。並且不需要引入跟個類的頭文件,通過Protocol接口的方式實現。

1.3 Flutter架構

在這裏插入圖片描述
Flutter爲Google出品, 用Dart語言編寫,實現一次編寫,實現跨端運行iOS,Android。因爲React-Native是通過iOS WebKit的bridge,Android的V8引擎來解析H5,最後生成純Native代碼,性能多多少少有點被詬病。Flutter解決性能問題,並且兼容Google下一代Web操作系統。所以阿里巴巴、騰旭、字節跳動都早早的入局Flutter。

1.4 大前端未來

在這裏插入圖片描述
Flutter這些跨端的技術,相對還有代碼維護的噩夢。比如很多老代碼都是推倒重來,現在Google,Microsoft都在大力收購無代碼編程公司。詳情可以參考下面鏈接。
https://www.softwaretestinghelp.com/low-code-development-platforms/

1.5 初創團隊如何選型

在這裏插入圖片描述
初創公司如何選型?這裏舉阿里巴巴淘寶和騰訊QQ的例子。

  1. 回想2003年淘寶的第一版本。馬雲老師說1個月之內要上線,技術團隊考慮多方位因素以後,決定花了XX美金買了一個PHP電子商城網站。
  2. 騰訊2000年版本的QQ,實際上就在ICQ的基礎上做了一點微創新。ICQ沒有把數據存儲到服務器,只有存在用戶本地機器。對於當年比較落後的國內環境來說,絕大多數人只能去網吧。所以QQ實現了聊天記錄上傳到服務器,在任何電腦登錄都可以看到聊天記錄。

總結,初創團隊一定要從多方位要素考慮產品選型。切記不要照抄現在大廠,找個最合適的Miss 或者 Mr Right。

2. 選型需要考慮什麼要素

在這裏插入圖片描述
產品如何選擇:

  1. 選擇Native元素開發實現(iOS, Android), 還是通過React Native, Flutter來實現。
  2. 實現HTML5 不受APP限制
  3. 實現微信小程序,目前只能在國內用,並首先與微信的審覈。

在這裏插入圖片描述
需要考慮各種產品的優劣,筆者寫了另一篇文章,詳細描述。請參考:
移動端產品iOS, Android, 小程序, H5, 混合開發優劣對比

3. 筆者推薦初創公司選擇React-Native

在這裏插入圖片描述
React Native的編程語言爲H5,市場上有很多前端開發者,成本比較低。可以看到JavaScript(UI)綠色部分未開發人員開發的部分;黃色Android Bridge, iOS Bridge 會有少量的與Native交互;藍色部分未組件化開發,要到SDK級別纔會接觸。

在這裏插入圖片描述
筆者寫了React-Native的入門文章,詳細請參考:
實戰ReactNative 從入門到精通 重要技術解析,5分鐘搭建iOS, Android App 實戰一

感謝觀看
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章