精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

代碼復用率99%,攜程市場洞察平臺Donut跨多端高性能技術(shù)實踐

移動開發(fā) 開發(fā)
本文探討了攜程市場洞察平臺基于Donut實現(xiàn)跨多端高性能移動端的技術(shù)實踐。詳細分析了跨平臺開發(fā)的復雜性、多端登錄態(tài)打通、大數(shù)據(jù)列表渲染支持等難點,以及新技術(shù)平臺在功能覆蓋率、基礎設施和研發(fā)生態(tài)兼容性方面的挑戰(zhàn)。

作者簡介

Brain,攜程高級軟件技術(shù)專家,關注前端技術(shù)框架、跨端技術(shù)方案、前端構(gòu)建和工程化工具,致力于前沿技術(shù)和架構(gòu)優(yōu)化。

一、背景

FlightAI(市場洞察平臺)是攜程機票大數(shù)據(jù)團隊推出的一款賦能行業(yè)的toB數(shù)據(jù)產(chǎn)品。FlightAI的用戶群主要使用微信,但也有移動端和其他企業(yè)辦公IM系統(tǒng)(如企業(yè)微信、釘釘?shù)龋┑氖褂眯枨?。由于大?shù)據(jù)團隊的前端工程師人數(shù)很少,且現(xiàn)有技術(shù)棧主要是web技術(shù),缺乏移動端開發(fā)經(jīng)驗,因此需要選擇一種以微信為主、研發(fā)成本低、跨平臺(微信小程序、iOS、Android)應用的技術(shù),以滿足業(yè)務需求并提升研發(fā)效率。

FlightAI涉及大型表格操作與展示、大數(shù)據(jù)的圖表繪制、大數(shù)據(jù)量數(shù)據(jù)指標呈現(xiàn)等場景,對查詢和展示渲染性能要求較高。此外,還需要在微信公眾號、web系統(tǒng)、小程序、移動端等多維度產(chǎn)品矩陣中實現(xiàn)業(yè)務功能、用戶登錄注冊、賬號管理與體系打通,形成立體式產(chǎn)品服務,以提升用戶體驗和運營效率。

1.1 難點與挑戰(zhàn)

1.1.1 主要難點

a. 跨平臺開發(fā)的復雜性:

  • 雖然一些框架如React Native,F(xiàn)lutter,Weex等同構(gòu)了iOS、Android的架構(gòu),但在獨立完成移動端全流程開發(fā)和基礎設施建設上,仍面臨技術(shù)棧多樣性的問題,特別是跨端架構(gòu)中還需優(yōu)先支持小程序。
  • 需要掌握不同平臺(iOS、Android、微信小程序)的證書管理、腳本命令調(diào)用、法律法規(guī)提示和約束差異、真機和模擬器開發(fā)、調(diào)試、構(gòu)建、發(fā)布技術(shù)。
  • 跨平臺兼容性問題,如日歷優(yōu)化中遇到樣式兼容性,性能問題等,需要深入理解各平臺的差異和限制。
  • 不同平臺、不同流程下各種Token、認證和法律法規(guī)限制概念較多,較難分清。
  • UI組件在各平臺的兼容性、生命周期管理和權(quán)限系統(tǒng)、SDK稍有差異,一旦發(fā)生bug識別出這種差異較有難度。

b. 多端登錄態(tài)打通:

  • 需要解決不同平臺間的登錄態(tài)同步問題,確保用戶在不同設備和平臺上有一致的體驗。
  • 不同端的登錄支持方式多樣,需要做好同構(gòu)和異構(gòu),如APP端需支持本機號碼一鍵登錄、賬號登錄、小程序登錄、微信登錄、蘋果登錄等,以支持各個平臺的審核。
  • Token種類非常多且復雜,各自用途不同,涉及前臺與服務端code交換和token驗證等邏輯。

c. 大數(shù)據(jù)列表渲染支持:

  • 小程序雙線程機制導致涉及交互的大數(shù)據(jù)列表渲染性能優(yōu)化成為難題。
  • 在小程序的技術(shù)架構(gòu)下,官方支持最大DOM數(shù)是16000個,text類節(jié)點也被計算在總節(jié)點數(shù)中,容易超過DOM數(shù)限制,導致"Dom limit exceeded"錯誤。

1.1.2 新技術(shù)平臺的挑戰(zhàn)

a. 功能覆蓋率:

  • 雖然官方號稱跨多端,但功能覆蓋率、API覆蓋率是否足夠,接入是否復雜,能否滿足當前和未來的需求?

b. 基礎設施:

  • 研發(fā)工具、測試工具、部署工具、運維工具是否成熟,遇到問題如何快速找到支持和解決方案?

c. 研發(fā)生態(tài)兼容性:

  • 除了大的跨端技術(shù)框架面臨挑戰(zhàn),落地實施會面臨更多小型技術(shù)選型的挑戰(zhàn),如組件系統(tǒng)、圖表庫、其他平臺支持、兼容性問題。

1.2 技術(shù)選型

1.2.1 業(yè)務需求與現(xiàn)狀

a. 團隊規(guī)模小,跨多端需求和高研發(fā)效率需求:

  • 小型研發(fā)團隊,現(xiàn)有技術(shù)技能主要是JS技術(shù)棧,缺乏移動端開發(fā)經(jīng)驗,必須控制培訓成本和研發(fā)成本;
  • 考慮集成難度和行業(yè)趨勢,分析功能需求和性能需求等,F(xiàn)lightAI用戶有強烈的移動端使用需求,僅開發(fā)小程序無法滿足;
  • 需要選擇一款技術(shù)復雜度低、研發(fā)成本低、技術(shù)棧簡單的跨平臺框架,而Donut技術(shù)滿足跨多端、高性能、低成本需求,且有騰訊官方支持;

b. 業(yè)務需求:

  • 建立獨立賬號體系、獨立域名和品牌,要求與微信公眾號、web系統(tǒng)體系化運營,形成產(chǎn)品矩陣;
  • 微信小程序在功能和性能上都要求高優(yōu)先級支持;

c. 高性能需求:

  • Donut在小程序支持度和App性能上表現(xiàn)優(yōu)異。在App上底層基于Flutter,使用和微信小程序相同的一套容器,接近原生渲染性能;
  • FlightAI具有大批量數(shù)據(jù)實時渲染的需求,對渲染性能要求很高;與公司框架計劃支持使用Flutter提升渲染性能的技術(shù)路線一致;

1.2.2 為何選型Donut技術(shù)

由于用戶群體主要以微信小程序為主要使用場景,所以無法支持小程序的多端框架如React Native,F(xiàn)lutter等無法選用,而既支持小程序又支持移動端的技術(shù)框架,目前市面比較流行的是taro和uni-app,但存在如下顧慮:

  • 使用該類框架后,功能更新完全依賴于框架,微信小程序里有的功能可能無法支持;
  • 使用該類框架后,代碼經(jīng)過二次轉(zhuǎn)換,性能可能不如原生WXML,而且會帶入轉(zhuǎn)換邏輯額外引入的代碼和性能憂慮;
  • 該類框架一般都會自定義DSL,有一定的學習成本,文檔是否健全,社區(qū)支持是否完善將直接影響配置和自定義功能的效率;
  • 該類框架優(yōu)勢多在跨多端小程序,實際上線APP的案例并不多,大坑小坑無法避免,例如uniapp的nvue原生開發(fā)有局限性,特別是樣式方面限制比較嚴重;
  • 跨多端應用開發(fā)的全生命周期集成和管理能力是否強大,包括開發(fā),測試,構(gòu)建,發(fā)布,運維,法律法規(guī)提示與解讀,token管理等;

而Donut是騰訊官方推出的和小程序同源容器,在功能和性能上比這類衍生框架更優(yōu)秀,在App上底層基于Flutter,接近原生渲染性能;Donut以小程序DSL作為開發(fā)語言,可以無縫切換,也沒有二次轉(zhuǎn)換的成本,會開發(fā)小程序就會寫Donut APP。在研發(fā)工具、測試工具、部署工具、運維工具上騰訊做了全方位集成,小型團隊可能遇到的問題幾乎全部涵蓋。官方文檔一步一截圖,閱讀體驗良好,總結(jié)如下:

a. 功能覆蓋率較高

常用需要適配API(8個),根據(jù)使用情況進行選擇支持,Donut官方提供了非常多的功能API,從功能支持度、易用性和架構(gòu)上App小程序同構(gòu)上也可以看出官方的大力投入。

JSAPI 和組件支持匯總,涉及6大方面

組件部分:視圖組建,表單,導航,媒體,地圖,畫布,開發(fā)能力,原生組建都能較好支持;

API部分支持情況:總共大概507個API;支持371個,大概占73%,部分支持或者不支持的部分官方提供一些其他的替代方案;(2024-03統(tǒng)計)

SDK部分:基礎SDK和擴展SDK支持較好;這部分是Native功能,根據(jù)需要進行勾選,不選就不會打入包中,按需打包降低包size;

NativePlugin:支持Native自定義擴展,該部分都是一次性工作,除非有強烈的自定義需求,一般都用不上;

云支持:云開發(fā)云托管,Donut網(wǎng)關防護;

埋點監(jiān)控:熱力圖,回放功能支持完善,支持全埋點;

圖片

b.基礎設施較完善

Donut 平臺覆蓋開發(fā)、部署、產(chǎn)品體驗分析全產(chǎn)品開發(fā)周期的各種需求,研發(fā)工具、測試工具、部署工具、運維工具上騰訊做了全方位集成,基礎設施比較完善,貫穿產(chǎn)研全流程支持,可大幅提升研發(fā)效率,特別對于沒有移動端研發(fā)經(jīng)驗的團隊具有引導和指導的作用。

  • 多端框架-支持使用小程序原生語法進行一次代碼編寫,多端編譯,實現(xiàn)多端開發(fā)。 
  • 多端身份管理-幾行代碼,快速實現(xiàn) App、小程序的身份認證和用戶管理。
  • 安全網(wǎng)關-提供弱網(wǎng)加速、防爬防刷、流量治理等能力,全方位保障業(yè)務安全高效穩(wěn)定運行。
  • 產(chǎn)品體驗分析-從真實的用戶視角洞察產(chǎn)品問題,尋找產(chǎn)品體驗的不足之處,提升用戶留存與轉(zhuǎn)化,具有如下功能:
  • 零代碼、全埋點
    無需開發(fā),一鍵接入,元素自動全埋點,快速開始小程序數(shù)據(jù)分析。
  • 還原用戶操作現(xiàn)場
    創(chuàng)新可視化日志 & 熱力圖,還原用戶實際操作現(xiàn)場,問題分析一目了然。
  • 可視化交互分析
    全程無需 SQL 編寫,僅需在模擬器上點選交互即可完成分析過程。
  • 一鍵智能分析
    無需數(shù)據(jù)分析背景,根據(jù)業(yè)務目標智能分析,查找用戶漏點,提升轉(zhuǎn)化率。

c. 研發(fā)生態(tài)兼容性較強

  • UI組件系統(tǒng)

UI組件系統(tǒng)選型TDesign還是使用WeUI,還是使用Ant Design for Mobile,NutUI,Vant,Material-UI?

主要考慮組件的成熟度,兼容性,組件功能,TDesign是騰訊官方出品的組件庫,而WeUI則側(cè)重提供樣式庫,考慮社區(qū)實踐經(jīng)驗,最終選擇TDesign,組件相對豐富,常用組件齊全,貼合微信設計規(guī)范,在Donut APP的兼容性較好,復用組件可以節(jié)省不少開發(fā)工作量。

  • 圖表庫選擇

圖表庫使用echart還是g2移動版圖表庫,還是選擇wx-chart,ucharts,D3,antV,Threejs等圖表庫?從如下幾個方面進行了考慮:代碼規(guī)范:EChart、D3官網(wǎng)的部分案例還是使用了ES5的語法,Antd遵循了ES6新語法規(guī)范。靈活度:ECharts<G2<D3;使用難度:Echart≈G2PLot<G2<D3;場景:三維圖推薦用Threejs,二維圖用ECharts或者G2、G2Plot均可;考慮到FlightAI圖表類型為常規(guī)圖形,而且PC版本選型也是Echart,在小程序集成和兼容性上,Echart都表現(xiàn)較好,但Echart在分辨率處理上和Donut系統(tǒng)并不兼容,但在編寫適配層解決該難題后,用起來非常絲滑,所以最終選定Echart。

  • 小程序兼容性

小程序轉(zhuǎn)其他小程序或者web的方案調(diào)研如morjs等轉(zhuǎn)出來的小程序,其他跨多端如Taro轉(zhuǎn)Donut技術(shù)是否可行?

理論上Donut提供的是小程序運行容器,其他跨端或者轉(zhuǎn)換技術(shù)只要最終產(chǎn)物符合微信小程序規(guī)范,應該可以運行,但是轉(zhuǎn)換必然導致功能和性能上有損耗,而且對于Donut條件編譯等語法需要進行特殊處理,一般轉(zhuǎn)換代碼會帶來額外的處理邏輯,會增大包Size,雖然有副作用,但Donut本身的擴展能力還是很強的,畢竟提供了和微信一致的小程序容器。

1.3 Donut簡介

Donut平臺是騰訊出品的基于小程序?qū)崿F(xiàn)跨多端(小程序,IOS,Andord)的技術(shù)體系,覆蓋了開發(fā)、部署、產(chǎn)品體驗分析全產(chǎn)品開發(fā)周期的各種需求。開發(fā)者可以專注于代碼邏輯,將復雜的開發(fā)構(gòu)建流程,開發(fā)及運行環(huán)境等統(tǒng)一管理,有效降低多端應用開發(fā)的技術(shù)門檻和研發(fā)成本,以及提升開發(fā)效率和開發(fā)體驗。包含4大特色能力:多端框架,多端身份管理,安全網(wǎng)關,產(chǎn)品體驗分析。

1.3.1 Donut系統(tǒng)模塊圖:

圖片

主要分為客戶端和云端功能,客戶端主要負責端側(cè)的標注化容器,處理小程序基礎庫,小程序SDK等基礎設施,云側(cè)主要處理各種管理和審核功能,流程都集成在了微信開放平臺,微信開發(fā)者平臺,微信公眾平臺,Donut管理平臺幾大平臺上。

1.3.2 Donut工作流程

簡單理解,就是微信抽象了一個簡化版本的微信APP作為容器,底層都是基于Flutter進行渲染,承接小程序的能力,并利用微信開發(fā)者工具提供研發(fā)支持;理論上只要是微信小程序都能運行在該平臺上。

圖片

1.3.3 Donut技術(shù)適合誰

a. 基于小程序生態(tài)開展業(yè)務的個人或企業(yè);

b. 需要跨多端支持、高性能和高研發(fā)效率的項目;

c. 已經(jīng)擁有小程序,想擴展到移動端的項目;

d. 希望簡化或標準化開發(fā)運營流程,利用微信提供的全軟件研發(fā)周期集成能力的項目。

二、FlightAI如何基于小程序構(gòu)建一款跨多端移動應用Donut-APP

首先在微信公眾平臺(mp.weixin.qq.com)注冊小程序,完成注冊后可同步進行信息完善和開發(fā)。下載微信開發(fā)者工具、參考開發(fā)文檔進行開發(fā)和調(diào)試。要成為Donut跨多端研發(fā)人員需要了解如下信息:

2.1 多端應用開發(fā):開發(fā)賬號準備

2.2 了解賬號關系

圖片

2.3 多端應用開發(fā):開發(fā)資源準備

2.4 開啟多端應用模式

a. 新建或者升級小程序為多端項目即可

圖片

b. Donut多端項目結(jié)構(gòu)

和小程序項目結(jié)構(gòu)一致,只是多了一些跨多端框架的配置文件,app.miniapp.json主要作用是維護多端應用和小程序綁定關系,配置App小程序登錄頁面地址,授權(quán)頁等。

project.miniapp.json則主要用于配制原生插件,多和native交互有關;project.config.json則是小程序相關的配置文件。

圖片

2.5 了解條件編譯

Donut支持以條件編譯的方式編寫特定平臺代碼;如有些組件只有微信支持,有些業(yè)務需求只在微信展示,那么就需要條件編譯實現(xiàn)差別需求,在app上和小程序使用不同的代碼方式實現(xiàn),一般該類代碼占比較少,F(xiàn)lightAI項目中,我實現(xiàn)了自動統(tǒng)計條件編譯代碼的功能,可統(tǒng)計上報或者單機運行了解項目狀態(tài)。

圖片

2.6 多種登錄方式支持-多端身份管理

a.FlightAI登錄架構(gòu)設計

Donut支持多種登錄方式,一般項目完全夠用了,并在后臺做了較好的集成管理,官方叫做多端身份管理,F(xiàn)lightAI的場景比較復雜,除了Donut提供的5登錄方式之外,還支持了密碼登錄等總共10種登錄方式,給客戶最大的便利和可選擇性;支持方式多樣,但是底層驗權(quán),鑒權(quán),授權(quán)等接口都實現(xiàn)了統(tǒng)一。

圖片

b.小程序和 App 的統(tǒng)一身份識別

小程序的token和code2Session接口進行交換,App的token和code2Verifyinfo接口進行交換,各個接口都有配套API,比較復雜,不能搞混了,最好單獨一整套接完,再接入另外一套。

圖片

2.7 大列表渲染

在webview的雙線程架構(gòu)下,小程序的官方支持最大Dom數(shù)是16000個,text類節(jié)點也被計算在總節(jié)點數(shù)中,非常容易就超過Dom數(shù)限制,導致Dom limit exceeded, please check if there's any mistake you've made.

無論是模擬器還是真機,小程序還是Donut APP,在FlightAI場景中view-all頁面,經(jīng)過測試442條渲染Item是臨界點,超過442條就會白屏,在該數(shù)據(jù)結(jié)構(gòu)下Dom數(shù)會達到臨界點,并且442條數(shù)據(jù)在IOS模擬器上渲染耗時5646ms,這也側(cè)面證實了各端各工具在Dom數(shù)限制上是一致的。

官方推薦標準

官方推薦說明(也是評分標準),單頁面節(jié)點盡量不超過1000個節(jié)點,嵌套不超過30層,子節(jié)點不超過60個,頁面深度不超過10個;但功能較為復雜的頁面,非常容易就超出限制,那么如何突破這個問題呢?

長列表渲染特點

1)列表數(shù)據(jù)很大,首次 setData 的時候耗時高,雙線程模型使得交互性能成為瓶頸;

2)一次渲染出來的列表 DOM 結(jié)點多,每次 setData 都需要創(chuàng)建新的虛擬樹、和舊樹 diff 操作耗時都比較高;

3)渲染出來的列表 DOM 結(jié)點總數(shù)多,占用的內(nèi)存高,造成頁面被系統(tǒng)回收的概率變大。

優(yōu)化思路

要么徹底改變雙線程的底層架構(gòu),要么通過一些手段優(yōu)化參與渲染的數(shù)據(jù)和狀態(tài),只渲染顯示在屏幕的數(shù)據(jù),基本實現(xiàn)就是監(jiān)聽 scroll 事件,并且重新計算需要渲染的數(shù)據(jù),不需要渲染的數(shù)據(jù)留一個空的 div 占位元素。如下是2個解決方案:

a.微信官方提供recycle-view的解決方案,虛擬列表方案;

在滾動過程中,重新渲染數(shù)據(jù)的同時,需要設置當前數(shù)據(jù)的前后的 div 占位元素高度,同時是指在同一個渲染周期內(nèi)。頁面渲染是通過 setData 觸發(fā)的,列表數(shù)據(jù)和 div 占位高度在2個組件內(nèi)進行 setData 的,為了把這2個 setData 放在同一個渲染周期,用了一個 hack 方法,所以定義 recycle-view 的 batch 屬性固定為 batch="{{batchSetRecycleData}}"。

b.微信官方為提升渲染速度,開發(fā)了skyline渲染引擎。

skyline渲染引擎,使用更精簡高效的渲染管線,并帶來諸多增強特性,讓 Skyline 擁有更接近原生渲染的性能體驗。

使用skyline之后,不會有dom數(shù)限制了;而且很明顯的一個對比是使用skyline后,快速滑動長列表不卡頓,首頁沒有開啟skyline快速滑動會卡頓。

圖片

注意列表布局容器,僅支持作為 scroll-view 自定義模式下的直接子節(jié)點或組件直接子節(jié)點,scroll-view要設置自定義模式 type="custom",list-view要作為 scroll-view 直接子節(jié)點。

WebView 的 JS 邏輯、DOM 樹創(chuàng)建、CSS 解析、樣式計算、Layout、Paint (Composite) 都發(fā)生在同一線程,在 WebView 上執(zhí)行過多的 JS 邏輯可能阻塞渲染,導致界面卡頓。

Skyline 創(chuàng)建了一條渲染線程來負責 Layout, Paint 和  Composite等渲染任務,并在 AppService 中劃出一個獨立的上下文,來運行之前 WebView 承擔的 JS 邏輯、DOM 樹創(chuàng)建等邏輯,架構(gòu)深度優(yōu)化后性能提升顯著。

Skyline長列表官方文檔

性能對比

官方示例:小程序助手的線上數(shù)據(jù),可以看出 Skyline 的首屏時間比 WebView 快 66%,并且手機性能越低端,差異就越明顯。

圖片

另外嘗試自行計算小程序的Dom數(shù),Dom層級,做統(tǒng)計或者優(yōu)化,發(fā)現(xiàn)querySeletorAll API無法使用通配符,另外涉及到Shadow-Dom,計算變得非常麻煩;向微信官方求證過Dom最大size的數(shù)量是16000個,這是編譯器層面的限制,無法放開。經(jīng)過和微信官方溝通結(jié)果是他們可以提供小程序的Dom數(shù)計算API,目前還沒有提供,將來可以提供。

2.8 實現(xiàn)Push消息推送

FlightAI接入TPNS或者公司的Push系統(tǒng)的一些思考和調(diào)研;騰訊云有提供TPNS,但是這套推送接入成本較高,而且已停止售賣;收費標準大概是800*DAU/10000,8分錢/條,按用戶收費。

Donut提供了基于IM的新版本推送服務,2024-8月份開始支持;通過配置插件和證書實現(xiàn)推送功能,支持在線推送和離線推送;IOS和Android的各個廠商需要分別進行配置,這是廠商的規(guī)范不同導致。

新版本收費規(guī)則根據(jù)數(shù)據(jù)中心位置和不同的套餐有所不同。后臺需要根據(jù)各廠商申請對應的證書AppKey和AppID,并根據(jù)需求制定推送策略。

圖片

對于接入成本的考慮,在客戶端只需簡單配置PluginId即可,配置示例:

圖片

2.9 正式構(gòu)建APK和IPA

構(gòu)建移動端APP的臨時簽名和正式簽名是區(qū)分的,臨時簽名Donut官方直接提供,正式簽名證書,需要研發(fā)人員按照目標平臺進行注冊,上傳,注意簽名文件對目錄有要求,必須放在項目內(nèi),IOS的鑰匙串必須和配置中的名稱完全一致。

圖片

2.10 內(nèi)測分發(fā)與提交審核

在開發(fā)者工具上 選擇 正式版點擊「構(gòu)建」- 「上傳資源包」,即可將開發(fā)版本的資源包上傳至Donut資源包管理平臺,之后跟進研發(fā)流程自行決定測試版本和線上版本。

圖片

2.11 完成各平臺隱私協(xié)議,法律條款,授權(quán)彈窗等上架要求,發(fā)布APP

需要注意的是各大電子市場的要求各不相同,為了能夠上架,需要滿足各平臺的各種規(guī)范,否則審核無法通過,特別是涉及法律條款需要法務部門介入,通常時間非常長,要做好相關準備。

圖片

2.12 踩了哪些坑

  • 一些證書導致的問題
    在進行基礎設施建設中,完成小程序,Donut跨多端基建,包括環(huán)境搭建、系統(tǒng)配置、開發(fā)、測試和發(fā)布流程的打通, 技術(shù)框架搭建,架構(gòu)設計模型,開發(fā)流水線等。比如證書位置不對,證書信息不匹配,申請證書的Domain,link等信息不一致,在構(gòu)建的時候可能會報一些奇怪的錯誤,始終無法通過構(gòu)建,這塊的研發(fā)信息提示很不明確,但會Block研發(fā)進程,已建議官方優(yōu)化;
  • 構(gòu)建產(chǎn)物,雖然功能增多,業(yè)務邏輯變的越來越復雜,包size會正常增長,但是如果有自定義管理資源包的需求,那么就會遇到包size上傳限制的問題,那么就需要分包,比如我們nephle最大支持30M的包,需要解決分塊上傳問題;另外如果要實現(xiàn)ios自動下載安裝的能力,模版地址和包地址需要放在同一目錄,否則坑較深,會浪費不少精力和時間;另外真機調(diào)試和構(gòu)建,直連的數(shù)據(jù)線非常重要,帶轉(zhuǎn)換的多功能數(shù)據(jù)線很有可能帶來不少意外的構(gòu)建問題;
  • 功能開發(fā)與性能優(yōu)化:圖表功能開發(fā),日歷功能開發(fā)與性能優(yōu)化,TDesign官方日歷組件存在性能問題,官方提供的format鉤子,在遇到多年份日期遍歷的時候,性能問題突出,t-calendar并且不支持虛擬列表,所以性能不理想,采用Hash算法后優(yōu)化了近400倍,提升日歷功能的性能,另外TDesign和Donut是不同的團隊,提issue的時候要找準團隊,否則可能不被受理。
  • 小程序備案,域名備案,微信認證,用戶告知,服務條款,隱私協(xié)議,軟著商標,何時啟動?有哪些坑?
    法務審核和各種認證需要準備很多企業(yè)實體資料,盡早準備提交,完全按照文檔操作,否則會被打回重寫,再者審核周期不可控,應當盡早啟動,隱私彈窗和授權(quán)彈窗必須使用模版或者native開發(fā),不能使用其他方式,因為APP在授權(quán)之前是不能加載和運行代碼的。請仔細閱讀相關章節(jié)注意事項;
  • token管理

    token是測試一套,生產(chǎn)一套,配置不同,Android和IOS平臺各自管理一套,另外mobileprovision必須包含Doman,而且Donut和開發(fā)工具,APP中的信息必須一致;

圖片

三、成果與經(jīng)驗

3.1 技術(shù)創(chuàng)新與效率提升,代碼復用率99%

  • 代碼復用率:實現(xiàn)了99%的代碼復用率,特定平臺代碼代碼為非復用代碼,自行實現(xiàn)了自動統(tǒng)計的功能;
  • 成功研發(fā)一款跨平臺高性能APP:成功開發(fā)了業(yè)務代碼基于小程序,底層框架與微信同源基于Flutter的高性能跨多端移動應用,確保iOS、Android和微信小程序上的一致性和高性能,為公司探索新跨多端技術(shù)方案;搭建了iOS和Android應用的自動化構(gòu)建和持續(xù)集成(CI/CD)管道,提升了開發(fā)和發(fā)布效率;
  • 采用Skyline新渲染引擎, 首屏時間比 WebView 快 66%,更重要的是Skyline沒有Dom數(shù)限制,對于開發(fā)大型項目來說非常重要;
  • 一碼多端,跨多端真機效果;

圖片

3.2 打造產(chǎn)品矩陣,用戶體驗

為了提升攜程市場洞察平臺的應用范圍和市場競爭力,我們打造了一個全面的產(chǎn)品使用矩陣,實現(xiàn)了移動端、小程序、現(xiàn)有的Web端、微信公眾號和API服務的完整覆蓋。通過這種多端覆蓋,我們能夠更好地滿足用戶在不同場景下的使用需求,提升產(chǎn)品的市場競爭力。

為了提升用戶體驗,我們打通了多種設備和多種類型的登錄態(tài),支持用戶通過不同設備和渠道無縫登錄。除了Donut提供的5登錄方式之外,還支持了密碼登錄等總共10種登錄方式,給客戶最大的便利和可選擇性。

在市場洞察平臺中基于Donut實現(xiàn)了跨多端高性能移動端的技術(shù)實踐,確保了產(chǎn)品在各種移動場景下的優(yōu)異表現(xiàn)。

通過這些技術(shù)創(chuàng)新和優(yōu)化,我們不僅提升了產(chǎn)品的應用范圍和市場競爭力,還顯著改善了用戶體驗,為用戶提供了更加便捷和高效的使用體驗。

責任編輯:張燕妮 來源: 攜程技術(shù)
相關推薦

2023-08-18 10:49:14

開發(fā)攜程

2023-11-06 09:56:10

研究代碼

2022-07-15 09:20:17

性能優(yōu)化方案

2022-07-08 09:38:27

攜程酒店Flutter技術(shù)跨平臺整合

2022-05-27 09:52:36

攜程TS運營AI

2023-06-06 16:01:00

Web優(yōu)化

2022-04-07 17:30:31

Flutter攜程火車票渲染

2022-06-17 10:44:49

實體鏈接系統(tǒng)旅游AI知識圖譜攜程

2016-09-04 15:14:09

攜程實時數(shù)據(jù)數(shù)據(jù)平臺

2022-03-30 18:39:51

TiDBHTAPCDP

2024-12-26 10:00:00

系統(tǒng)開發(fā)管理

2022-07-15 12:58:02

鴻蒙攜程華為

2022-05-13 09:27:55

Widget機票業(yè)務App

2024-04-26 09:33:18

攜程實踐

2024-03-22 15:09:32

2024-04-18 09:41:53

2022-08-12 08:34:32

攜程數(shù)據(jù)庫上云

2023-02-08 16:34:05

數(shù)據(jù)庫工具

2024-12-13 10:50:00

數(shù)據(jù)開發(fā)攜程

2022-08-12 08:38:08

攜程小程序Taro跨端解決方案
點贊
收藏

51CTO技術(shù)棧公眾號

欧美国产美女| а√天堂资源地址在线下载| 在线亚洲观看| 6080日韩午夜伦伦午夜伦| 在线免费一区| 午夜精品久久久久久久第一页按摩 | 国产综合内射日韩久| 国产777精品精品热热热一区二区| 波多野结衣中文字幕一区二区三区| 欧美第一淫aaasss性| 中文字幕乱码一区| 日本美女久久| 一区二区在线免费| 乱色588欧美| 亚洲一区二区三区高清视频| 大色综合视频网站在线播放| 日韩西西人体444www| 国产亚洲欧美在线视频| 在线免费观看黄色网址| 成人午夜视频免费看| 日韩av123| 五月天婷婷色综合| 四虎5151久久欧美毛片| 欧美色男人天堂| 国产玉足脚交久久欧美| av成人手机在线| 高清视频一区二区| 91精品国产综合久久男男| 国产精品50页| 午夜av一区| 亚洲国产小视频在线观看| 中文字幕av专区| 97蜜桃久久| 中文字幕亚洲成人| 农村寡妇一区二区三区| 性生活视频软件| 日本不卡一区二区| 91产国在线观看动作片喷水| 懂色av蜜臀av粉嫩av永久| 精品欧美午夜寂寞影院| 91精品欧美一区二区三区综合在| 欧美啪啪免费视频| 北岛玲一区二区三区| 国内精品免费**视频| 欧美一级视频在线观看| www.99re7| 色欧美自拍视频| 日韩久久精品电影| 人妻互换一二三区激情视频| 成人免费视频观看| 欧美日韩黄色大片| 欧美视频在线观看视频| а天堂中文在线官网| 中文字幕不卡的av| 久久精品人成| 手机av在线免费观看| 国产成人精品1024| 91精品国产高清久久久久久91裸体 | 日韩美女视频一区| 品久久久久久久久久96高清| av加勒比在线| 欧美aa在线视频| 日本人成精品视频在线| 91精品国产乱码在线观看| 黄色亚洲精品| 欧美日韩xxx| 国产1区2区3区4区| 欧美一区精品| 另类天堂视频在线观看| 老熟妻内射精品一区| 99热国内精品永久免费观看| 一区国产精品视频| 嘿嘿视频在线观看| 成人精品影院| 中文字幕日韩在线视频| 天天躁夜夜躁狠狠是什么心态 | 日韩亚洲一区在线播放| 精品视频一二三| 久久精品视频一区二区三区| 日韩.欧美.亚洲| 国产乱视频在线观看| 国产亚洲污的网站| 亚洲精品日韩精品| 黄视频在线观看网站| 亚洲品质自拍视频网站| 一区不卡字幕| 3d成人动漫在线| 亚洲色图视频网| 国产精品视频二| 国产99re66在线视频| 亚洲永久免费av| 日韩在线一级片| 欧美xxxx做受欧美护士| 色狠狠桃花综合| 国产原创精品在线| 亚洲专区**| 日韩精品视频在线观看网址| 国产一二三四五区| 久久精品亚洲欧美日韩精品中文字幕| 免费av在线一区| 久久老司机精品视频| 久久国产精品毛片| 国产精品一香蕉国产线看观看| 国产又粗又长又大视频| 国产91精品精华液一区二区三区| 韩日午夜在线资源一区二区 | 91亚洲精品久久久蜜桃网站| 欧洲一区二区在线观看| 免费av不卡| 亚洲韩国精品一区| 黑森林福利视频导航| 99热播精品免费| 日韩手机在线导航| 国产精品久久久免费观看| 精品产国自在拍| 欧美大片免费看| 国产伦精品一区二区三区视频我| 久久成人久久鬼色| 国产一区二区免费电影| 在线免费黄色| 亚洲高清免费观看高清完整版在线观看| 黄色一级在线视频| 欧美亚洲福利| 日韩成人av网| 国产男女猛烈无遮挡在线喷水| 国产字幕视频一区二区| 国产精品com| 色偷偷在线观看| 一色屋精品亚洲香蕉网站| 尤物av无码色av无码| 在线视频成人| 亚洲午夜精品久久久久久久久久久久| 欧美激情精品久久| 奇米在线7777在线精品| 久久国产精品亚洲va麻豆| 亚洲1卡2卡3卡4卡乱码精品| 午夜一区二区三区在线观看| 日本黄色福利视频| 亚洲妇女av| 欧美激情免费在线| 亚洲一区二区色| 99re在线视频这里只有精品| 欧美少妇在线观看| 久久国产三级| 亚洲欧洲午夜一线一品| 日韩精品在线免费看| 国产成人综合在线播放| 亚洲视频欧美在线| 性欧美18一19sex性欧美| 亚洲高清久久网| 欧美成人三级视频| 国模大尺度一区二区三区| 日本一区高清在线视频| 手机在线理论片| 精品999在线播放| 欧美成人三级在线观看| 国产一区91精品张津瑜| 中文字幕精品—区二区日日骚| 亚洲www免费| 亚洲欧美另类中文字幕| 9i看片成人免费看片| k8久久久一区二区三区 | 麻豆影视在线观看_| 在线观看视频欧美| 国精产品一区一区三区免费视频 | 懂色av一区二区在线播放| 香蕉久久夜色| 松下纱荣子在线观看| 日韩电影大全免费观看2023年上| 久久老司机精品视频| 成人免费毛片高清视频| 日韩亚洲欧美视频| 日韩有码中文字幕在线| 欧美在线视频a| 日产精品久久久久久久性色| 欧美性xxxx极品hd欧美风情| 鲁大师私人影院在线观看| 亚洲久久在线| 久久久久网址| 午夜精品成人av| 在线播放精品一区二区三区 | 一区二区电影在线观看| 91精品久久久久久蜜桃| 日本动漫同人动漫在线观看| 精品国产伦一区二区三区观看方式| 久操免费在线视频| 99久精品国产| 成年人网站大全| 四虎成人精品永久免费av九九| 成人黄色激情网| 在线xxxx| 日韩高清av一区二区三区| 国产精品免费av一区二区| 97精品国产97久久久久久久久久久久 | 亚洲综合清纯丝袜自拍| 毛茸茸多毛bbb毛多视频| 日本欧美一区二区在线观看| 色撸撸在线观看| jizz国产精品| 日本精品视频在线播放| 国产永久av在线| 欧美伊人精品成人久久综合97 | 亚洲精品视频在线观看网站| 一级少妇精品久久久久久久| 乱人伦精品视频在线观看| 亚洲一区bb| 精品少妇一区| 国产日韩欧美中文| 麻豆mv在线看| 久久精品久久久久久国产 免费| 亚洲av永久纯肉无码精品动漫| 欧美午夜www高清视频| 成人小视频免费看| 东方aⅴ免费观看久久av| 欧美精品aaaa| 国产精品av一区二区| 日韩av在线一区二区三区| 亚洲天堂中文字幕在线观看| 国产91成人在在线播放| 成人免费网址| 国产香蕉97碰碰久久人人| 国产丰满果冻videossex| 在线免费观看日本一区| 日本特黄特色aaa大片免费| 国产精品成人免费| 日韩精品卡通动漫网站| 国产精品香蕉一区二区三区| 欧洲av无码放荡人妇网站| 亚洲网站啪啪| 中文字幕在线观看一区二区三区| 九色丨蝌蚪丨成人| 亚洲va码欧洲m码| 国产综合色区在线观看| 久久久久久国产| 黄色网页在线免费观看| 中文字幕av一区| 四虎影视2018在线播放alocalhost| 欧美一区二视频| 青青国产在线视频| 精品美女国产在线| 国产无套粉嫩白浆内谢| 国产精品超碰97尤物18| 成年人在线免费看片| 91网站黄www| 老司机午夜免费福利| 国产精品亚洲专一区二区三区 | 国产一区二区在线电影| 三级a在线观看| 三级久久三级久久久| 欧美日韩亚洲一| 亚洲激情精品| 久久久久99精品成人片| 伊人成人在线视频| japanese在线播放| 最新精品国产| 50度灰在线观看| 欧美黄色免费| 中国丰满熟妇xxxx性| 亚洲午夜在线| 大伊香蕉精品视频在线| 久久人体视频| 一区二区日本| 我不卡伦不卡影院| 日韩 欧美 自拍| 久久精品国产www456c0m| 天天好比中文综合网| 成人直播大秀| 四虎一区二区| 97久久夜色精品国产| 一区二区三区精品国产| 999国产精品| 色一情一乱一乱一区91| 欧美日韩影院| 国产一区二区三区在线免费| 欧美午夜精品| www.com毛片| 奇米精品一区二区三区在线观看 | 亚洲国产精品久久久久久久| 日韩欧美一卡二卡| 亚洲精品一区二区三区蜜桃| 亚洲精品电影网站| 黄色的视频在线免费观看| 一区二区三区视频免费在线观看| fc2在线中文字幕| 久久亚洲成人精品| av在线加勒比| 国产精品成人一区| 日韩电影精品| 国产精品国产精品| 久久爱www成人| 特级毛片在线免费观看| 国产一区观看| 国产免费成人在线| 久久91精品久久久久久秒播| 亚洲区 欧美区| 久久久夜色精品亚洲| 国产又黄又粗又猛又爽的| 一区二区在线观看不卡| 国产高清中文字幕| 欧美男生操女生| 人人妻人人澡人人爽人人欧美一区| 亚洲精品视频免费在线观看| 日本暖暖在线视频| 欧美成人性色生活仑片| 自拍网站在线观看| 91在线观看欧美日韩| 另类在线视频| 中文字幕99| 国产一区亚洲| 国产成人愉拍精品久久| 亚洲**毛片| 久久影院理伦片| 成人亚洲一区| 国产精品专区在线| 久久精品国产亚洲a| 日本少妇xxxx| 亚洲精品国产一区二区精华液| 国产成人免费看| 欧美α欧美αv大片| 97在线观看免费观看高清 | h视频在线免费| 久久久视频免费观看| 四虎精品一区二区免费| 日本高清一区| 国产亚洲激情| 国产精品福利导航| 亚洲成人免费观看| www.精品久久| 久久香蕉频线观| 伊人久久大香线蕉综合影院首页| 欧美日韩精品一区| 国产日韩欧美一区二区三区在线观看 | 巨大荫蒂视频欧美另类大| 国产精品国产三级国产aⅴ9色| 色婷婷综合久久久久久| 日本中文字幕网址| yourporn久久国产精品| 日本在线小视频| 精品成人私密视频| 2021天堂中文幕一二区在线观| 91一区二区三区| 欧美精品自拍| 日本泡妞xxxx免费视频软件| 亚洲免费观看高清完整版在线| 国产精品久久久久久久久毛片| 色吧影院999| 24小时成人在线视频| 日韩video| 国产成人一区二区精品非洲| 麻豆疯狂做受xxxx高潮视频| 日韩欧美中文字幕公布| 欧美xxxx做受欧美88bbw| 国产成人亚洲欧美| 亚洲少妇诱惑| 精品成人无码一区二区三区| 欧美视频一二三区| 免费av毛片在线看| 99在线视频播放| 亚洲看片免费| 先锋影音av在线| 欧美高清激情brazzers| 在线观看午夜av| 国产亚洲精品久久飘花| 久久激情视频| 国产探花在线视频| 亚洲第一免费网站| 成人美女视频| 中文字幕一区二区中文字幕| 国产成人免费视频网站| 全部毛片永久免费看| 国产亚洲精品久久久久久777 | 国产精品免费一区二区三区| 在线国产日韩| 亚洲女优在线观看| 欧美一级片在线| 无遮挡爽大片在线观看视频 | 午夜不卡视频| 成人在线观看91| 久久一区视频| 成人在线观看免费完整| 亚洲国产精品99| 精品国产黄a∨片高清在线| 免费观看国产视频在线| 久久一留热品黄| 国产欧美日韩综合精品一区二区三区| 久久久久久久久久久免费精品| 蜜臀av免费一区二区三区| xxxx在线免费观看| 欧美日韩在线看| 成人免费看片| 久久精品二区| 国产在线观看免费一区| 中文字幕亚洲高清| 久久躁日日躁aaaaxxxx| 亚洲最好看的视频| 熟妇无码乱子成人精品| 色偷偷久久人人79超碰人人澡| 手机在线免费av| 五月天亚洲综合小说网| 成人动漫一区二区在线|