騰訊“鵝廠黑板報”公眾號發文談及「微信鴻蒙版」的開發歷程。官方表示:“站在正式版發布的 1 月 9 日,或許這一切都可以風輕云淡地說:the show must go on。但這過去的 295 天里,他們的經歷,我們認為值得記錄下來,分享給關心微信鴻蒙版的用戶朋友們。”
據悉,微信純血鴻蒙版 App 今日正式登陸手機端華為應用市場(App Gallery),版本號為 1.0.3.42。
原文如下:
直至現在,「微信鴻蒙版」這五個字,依然被賦予著太多意義。
這是一款產品,也不僅僅是一款產品。開發它的本質,是讓兩個高速前進,相互影響的復雜系統,彼此磨合和熟悉,像是執行一場空中加油任務。不管外界如何評價和鞭策,這款產品本身,依然需要研發團隊一個鍵一個鍵敲出來,從內核,到架構,到內測,到公測,再到一輪一輪的 debug,他們要在不到一年的時間里,走完微信14 年的路。
回顧鵝廠所做過的產品里,也許從未有過一款,被如此放在放大鏡下凝視。每一次上架,每一個 bug,乃至于每一個里程碑,幾乎都預定當天熱搜。
2024年3月,集結
鵝廠指派了從塞班(Symbian)時期就負責微信開發工作的團隊,來主導微信鴻蒙版。從塞班到智能手表、車機、Linux PC 端的微信,這個團隊在內部素以擅長攻克不同環境、不同語言的開發工作著稱。
同樣很重要的一點是,得益于智能手表端微信的研發工作,微信和華為的兩個團隊是老相識,這也讓雙方的對接更加順暢緊密起來。從三月貫穿到四月,兩邊通過拉通會、分享會學習鴻蒙系統研發框架,不定時組織技術專題討論。
雙方都很清楚,這不是一場三天兩夜就能解決的小規模戰斗,而是曠日持久的兵團級戰役。兵馬未動,糧草先行,敲下第一行代碼之前,還有許許多多的工作需要準備。
2024年4月,基建
萬丈高樓平地起,基建是最重要的第一步。
搞基建,“三通一平”(通電/通路/通水/土地平整)是基本要求,進取一些,可以做到“五通一平”(加入通訊/排污),再進一步,還有“七通一平”(加入通氣/有線電視),乃至于“十通一平”(加入寬帶/鐵路/暖氣)。通得越多,越有利于后期擴展和長遠發展。
經過塞班、手機、手表等各種終端上的長期打磨,這個團隊積累了一套名為Alita(阿麗塔)的跨平臺內核。這也為鴻蒙版微信的基建打下了基礎。這個階段的重中之重是,快速熟悉鴻蒙系統,移植基礎庫,讓 Alita 內核能夠在鴻蒙系統上運行起來,和華為一邊溝通、一邊驗證推進。
2024年5月,架構
接下來考驗的是架構能力。開發團隊需要設計好鴻蒙微信客戶端的架構、編寫好各模塊文檔,支撐各業務進場后能夠高效開發。
這一步的難點,在于充分預判到業務之間的復雜解耦,既要降低各業務之間的依賴性,又要提高整體的穩定性,還要留出高可擴展性,屬于典型的“我全都要”難題。
這就好比從零開始建設一座城市,要預估到這座百年之后超級都市的人口規模、交通狀況、人居需求、產業結構、商業發展等因素,以及提前平衡這些因素之間的關系,需要具備極大的前瞻視角。
技術團隊繼續搖人,招聘也快馬加鞭推進。TAPD(騰訊敏捷產品研發平臺)流程圖里,他們的首個目標是做出一個基礎版本,保證用戶能實現收發消息、語音通話等最基礎、也是最重要的功能。
2024年6月,磨合
進入了真正的手搓環節。flutter(跨平臺應用程序開發框架)、liteapp(專為移動端設計的跨平臺開發框架)等,都是這個階段的關鍵工作。
為了這桌“年夜飯”,技術小哥們一邊在廚房切菜燒飯,一邊去客廳招呼各方沏茶倒水,讓支付和VoIP(語音通話技術)等基礎能力陸續湊上一桌。
除了內外部密切的技術溝通,微信和華為團隊對彼此的技術標準保持了互相尊重。以相冊選圖發送功能為例,在 Android 系統上,選圖需要獲取整個相冊權限,也就是說應用可以訪問用戶的所有照片。在鴻蒙上的選圖功能,為了保障用戶隱私,微信采用的是 Picker 控件的方式,相冊照片的展示和選擇邏輯都由 Picker 控件提供,微信只能讀取到用戶勾選的照片。
第一個里程碑,bug 如約而至 ??
趕在6月21日前,團隊做好了第一個內部體驗版本,包含收發消息、通話功能。和2011年1月21日發布的 iOS和安卓版的微信1.0版本相比,多了語音消息發送。
你可能會不以為然:大動干戈這么久,就整了個這毛坯房?
其實這里蘊含的開發思路,是驗證最小可用的原則,本質上是對第一階段研究鴻蒙語言和系統的成果驗收。重要的是把基本功練好,才能為后續的開枝散葉打好底子。
但即便是如此普通的版本,也出了個閃退型 bug,最后查出來是系統的底層 API 問題:同樣的代碼邏輯,在 iOS 和安卓上能用,但在鴻蒙上行不通。兩邊團隊為此絞盡腦汁,交了兩個星期的學費,最后還是靠著某位技術小哥靈光一現想到的。
這個 bug也像是一場結業考試,經此一役,開發進入了快節奏。
微信集合了眾多產品功能,各功能間又有復雜的交互和依賴關系,比如小程序的開發就涉及到與支付功能的打通,而支付能力又需要與基礎會話功能打通。在完成基建的前提下,基礎、支付、小程序……能進場的業務模塊都陸續進了場。一個共同的目標是——10月8號鴻蒙公測那天,做出一個新版本。這個版本,將新增微信支付、朋友圈等功能。
2024年10月8日:喜歡您來
10月8日,微信鴻蒙原生版開啟內測邀請,嘗鮮版本包含基礎社交通訊音視頻通話、朋友圈、微信支付的二維碼收/付款等功能。
內測開啟,意味著微信和其他所有適配原生鴻蒙的第三方App一樣,從內測到應用嘗鮮再到公測,走上了鴻蒙系統第三方軟件開發的三部曲。
為什么要限量內測而不是一口氣開放下載呢?
在全新的平臺上,要支撐海量用戶、高并發通訊需求,同時涉及支付、小程序、視頻等多個大功能模塊,還要滿足極高頻使用下的穩定性,是很大的挑戰。
所以,用內測 → 找bug → 修bug → 加大內測的方式,是一個更符合軟件開發規律的方式。
經歷了4天緊張的測試和debug,包括微信支付在內的多個功能經過嚴格測試流程后,合入大版本,10 月 12 日,微信鴻蒙原生版正式開始公測。
2024年10月~11 月:這都能遇到灰產啊啊啊
公測放量過程中,有一次實際登陸人數不到放量總數的十分之一?
某平臺上竟然有人公然售賣測試名額?
一系列插曲打破了原定的放量節奏,雙方共同排查后發現,原來有人把安裝包拿去二手平臺牟利。應用商店完善機制后,把漏洞補上。
安裝包都能拿來賣,也堪稱是國產軟件開發史上濃墨重彩的一筆。
微信鴻蒙版在嘗鮮專區上線了2萬測試名額,但后臺顯示,登錄數據一直較低,我們和華為一同復盤發現,因為有人用腳本去搶名額,觸發了應用商店的安全機制,同時擾亂了應用商店的計數邏輯,導致大概90% 的放量被攔截,最終實際下載的用戶只有 10%左右。
又是濃墨重彩的一筆......
如何讓用戶盡可能體驗到微信測試版本?
在基本保障嘗鮮專區不斷檔的情況下,11 月 6 日,雙方緊急協商,華為將微信鴻蒙版的測試名額大幅擴容,微信再次邀請擴容后的用戶分批有序參與內測,共同完善新版本的各種體驗。
在不斷收集用戶反饋、歷經數次迭代后,目前的版本已經可以使用視頻號、聊天引用、發文件等功能,所有鴻蒙用戶也都可以直接下載,更多功能在持續上線。
2025年1月9日:不止是微信
吸收了廣大用戶的反饋和多輪debug后,鴻蒙版微信順利結束公測,1月9日正式版本上線。你除了能穩定下載和使用微信外,還可以用到 QQ、騰訊視頻、騰訊新聞、QQ 音樂等App。
自今年起,騰訊20多款產品通過敏捷開發,實現鴻蒙系統的適配工作,更多騰訊的產品適配也在路上。
一個發生在2024年10月29日的插曲,某種程度上,可以反映微信鴻蒙版開發團隊的工作情形和協作流程。
19:20,項目組微信支付團隊發現,即將要上架的最新嘗鮮版的微信,小部分用戶轉賬入口出現bug,點擊后無反應。
20:15,客服團隊同步后臺客訴情況。
20:57,微信支付團隊初步定位,有問題的代碼是今日合入導致的,疑似是LiteApp(跨端的框架,微信轉賬是鴻蒙第一個使用這個框架的功能)的問題。
21:31,進一步定位問題,發現在一些極端情況下, LiteApp的文件緩存寫入被系統提示權限不足,聯系華為技術團隊一起定位。
21:47,支付技術團隊完成最新內測版微信的修復,合入后,提交版本給測試團隊。
22:32,支付技術團隊復盤問題,提出后續改進措施。
22:41,微信基礎技術團隊向華為應用商店提審新版本內測包。
22:54,向華為應用商店提審嘗鮮版。
23:30,最新嘗鮮版微信通過審核,上架嘗鮮專區,轉賬問題修復。
微信公眾平臺曾有一句 slogan 深入人心:再小的個體,也有自己的品牌。同樣的,再小的問題,放在微信上,都會被億量級地擴大。我們知道,永遠等不來“完美交付”這一天。灰度測試、持續迭代,讓產品在和用戶的互動中得到改進,是騰訊一直以來的產品理念。
感謝微信用戶、鴻蒙用戶始終跟我們站在一起,7x24小時反饋bug、提出優化意見。如果把新產品開發比做一場足球賽,那希望你們一直都在,做我們敏捷開發“球隊”的第12人。