【TechWeb】1月10日消息,昨日晚間,鴻蒙原生版微信正式上架鴻蒙應用市場。經過網友下載體驗,微信鴻蒙版已支持視頻號、摺疊消息轉發、群紅包、轉賬、小程序等功能,與普通版微信功能基本相同。
鴻蒙原生版微信正式上線之際,騰訊官方微信公衆號「鵝廠黑板報 」9日晚也發佈題爲《開發微信鴻蒙版,需要經歷什麼?》的文章,分享了鴻蒙原生版微信的開發過程與體驗。
騰訊表示,不管外界如何評價和鞭策,這款產品本身,依然需要研發團隊一個鍵一個鍵敲出來, 從內核,到架構,到內測,到公測,再到一輪一輪的debug,他們要在不到一年的時間裏,走完微信14年的路。
以下爲《開發微信鴻蒙版,需要經歷什麼?》全文:
直至現在,「微信鴻蒙版」這五個字,依然被賦予着太多意義。
這是一款產品,也不僅僅是一款產品。開發它的本質,是讓兩個高速前進,相互影響的複雜系統,彼此磨合和熟悉,像是執行一場空中加油任務。
不管外界如何評價和鞭策,這款產品本身,依然需要研發團隊一個鍵一個鍵敲出來,從內核,到架構,到內測,到公測,再到一輪一輪的debug,他們要在不到一年的時間裏,走完微信14年的路。
回顧鵝廠所做過的產品裏,也許從未有過一款,被如此放在放大鏡下凝視。每一次上架,每一個bug,乃至於每一個里程碑,幾乎都預定當天熱搜。
站在正式版發佈的1月9日,或許這一切都可以風輕雲淡地說:the show must go on。但這過去的295天裏,他們的經歷,我們認爲值得記錄下來,分享給關心微信鴻蒙版的用戶朋友們。
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人。