IT之家 7 月 3 日消息,騰訊今日發文稱,微信鴻蒙版一直備受關注。但可能很多朋友并不了解,由于鴻蒙系統的特殊架構,過去十幾年積累下來的微信功能無法直接遷移,而必須從零重寫。
騰訊邀請微信鴻蒙適配團隊的三位成員,深入聊聊這場大規模重構背后的技術挑戰、產品取舍與協作機制。希望這期節目能解答用戶關于微信鴻蒙版的一些疑惑。
嘉賓:anqi,鴻蒙微信手機版基礎功能負責人
嘉賓:zuogang,鴻蒙微信電腦版基礎功能開發負責人
嘉賓:小蔣,"客村小蔣",字"X 毛",微信公關團隊
客座主播:劉飛,內容創作者,產品經理,播客《三五環》《半拿鐵》主播
劉飛:歡迎大家收聽"以鵝傳鵝",我是劉飛。今天邀請到的是鴻蒙微信團隊。幾位老師,先跟大家打聲招呼吧!
zuogang:大家好!我是 zuogang,是鴻蒙微信電腦版基礎功能開發負責人。
anqi:大家好!我是微信的 anqi,主要負責鴻蒙微信手機版基礎功能這一塊的(鴻蒙微信手機版基礎功能開發負責人)。
小蔣:大家好!我是小蔣,在微博上大家叫"客村小蔣",我是微信公關團隊的。
劉飛:今天邀請幾位來,我們就是想聊一聊鴻蒙微信在做的一些事情,以及在鴻蒙微信的開發過程中大家遇到的一些問題和一些思考。
我們先從鴻蒙微信到底是什么開始聊起吧,能不能簡單介紹一下鴻蒙系統?我知道有一些聽友可能有一些簡單的理解,比如說,鴻蒙是跟 iOS 和安卓都不一樣的系統。但是對于鴻蒙版本的微信,以及為什么要有鴻蒙版本,可能也沒有基礎的認知。
小蔣:鴻蒙操作系統在華為手機上,可能大家很早就聽過這個名字了,因為它的操作系統就叫"鴻蒙"。但是為什么我們現在又要做一個鴻蒙版的微信?就是因為現在的鴻蒙操作系統,華為自己又叫它"原生鴻蒙",英文叫"HarmonyOS NEXT"。所謂的原生,就是它完全不再基于開源安卓的框架,而是完全自己從零開始又做了一套框架,可以理解為它是完全全新的華為自主研發的操作系統,這也就意味著我們在安卓上面做的這個版本是不能直接運行在現在的原生鴻蒙操作系統上,包括它的技術框架、編程語言都完全不一樣,那我們就要根據這個來重新去把微信從頭再開發一遍。
劉飛:我們可以先說一說現在接手鴻蒙微信的團隊。你們兩位在的團隊,應該一位是負責 PC 端的、一位負責手機端的。
zuogang:對。
劉飛:你們團隊之前是什么樣的淵源?
小蔣:我先班門弄斧一下,后面兩位專業補充。因為我是聽我們手機端鴻蒙微信的負責人有講過更早的歷史。
安奇在的這個團隊,最早是負責塞班微信的,而且是非常非常早,就是在 2011 年微信開始開發的時候,我們的第一個版本應該就是"塞班微信"。這個操作系統它后面很快的不行了之后,安奇在的這個團隊是去做了很多其他的一些探索。
anqi:塞班之后,我們這個團隊做過很多探索性的項目,慢慢下來我們積累了很多通用的組件和跨平臺的開發經驗,后面來了一些新的客戶端需求自然也就給到我們這邊來了,像兒童手表微信或者一些車廠的車機微信,還有運動手表、智能手表,還有一些特殊的硬件,像微信相框上面也有簡單的微信客戶端,再后面就到了信創 Linux 微信。
劉飛:這些它的底層是不是也有一些相似之處?
anqi:微信的功能上是一樣的,但是操作系統和 CPU 架構是有很大區別的,像操作系統主要有 Android、Android Wear、Linux 車機,這些都是定制的 Linux 系統,還有 Altas 單核計算平臺。
劉飛:在開發上的可復用性也沒有那么強,每一次都要重新給它定制,對吧?
anqi:對,像 UI 這些強依賴平臺的就每次都要定制的,但是微信的功能邏輯,比如發一條消息、收一張圖片這種,這些都是一樣的,所有的平臺都是一樣的。
劉飛:就是服務端那邊的基本上就不會太受影響,對吧?
anqi:對,服務端不太受客戶端的影響,就是我們做了這么多之后不可能每次都要重寫這些同樣的功能,我們就把這些功能慢慢的積累到了寫跨平臺的語言上,比如說我們全是用 C++ 實現了這些功能。
劉飛:就是其實還是做了一些工作,不用重復造輪子了?
anqi:對。
小蔣:我們還有一個內核,叫"阿麗塔內核",背景就是基于這些很多平臺的不同特點,微信的基礎聊天功能可以用這個內核就實現出來,不管是在什么平臺上都可以快速地把基礎功能跑起來。
anqi:是的,正是有了這些積累和這些經驗,后面我們拿到鴻蒙客戶端的時候才不至于很慌!
劉飛:就還是有一些積累的,也不是完全從零開始?
anqi:是的。
劉飛:那在電腦端這邊呢?
zuogang:我們團隊之前負責的就是 Windows、Mac 兩個端微信,還做了很多小眾的手機平臺,比如 Windows Phone、S40(諾基亞后來做的 Feature Phone)。我們之前的做法,就像安奇所說,我們有一些基礎組件,但大部分的業務邏輯和 UI 都是各自平臺原生實現。當安奇團隊把 Linux 信創版本交給我們之后,我們就面臨了一個選擇,是再搭一個團隊去按 Linux 系統的原生技術棧來實現,還是把以前的方案推倒全盤重來,就是在 PC 端從底到上都做一套跨平臺方案?我們還是做了一些考慮的:第一,性能體驗;第二,團隊技術棧的匹配度;第三,團隊成員的發展和成就感。我們想的是,讓大家負責更多的平臺,做更有挑戰的事情。我們就做了一個重要的決定,就是在接手 Linux 微信這個契機從頭做一個跨平臺的 PC 微信框架。
劉飛:所謂的跨平臺,是跨哪些平臺呢?
zuogang:當時的目標是 Windows、Mac、Linux。
劉飛:就是常用的 PC 端?
zuogang:對。做這個事情的時候我們也是通過合理分層設計,即使未來有鴻蒙 PC 或者其他 PC 接入的時候也可以把可復用的組件做到最大化。
劉飛:明白,這也可以理解,因為 PC 端本身在微信的使用場景里是屬于小比例,如果在一個更小眾的平臺,那可能專門做這個平臺的團隊同學就感覺沒什么成就感和也沒什么成長性。
zuogang:是的,確實我們是基于這樣的考慮。
劉飛:所以現在鴻蒙也好,其實蘋果也在想辦法融合,就是移動端和電腦端盡量做跨平臺的融合,我看其他品牌,包括 vivo、OPPO 他們也都在做這個事情。這是不是也有利于你們未來大家的融合或者團隊能有更多創新的事情可以做?
zuogang:對。當我們用跨平臺技術做這件事的時候,要的人力比以前的分平臺來做是要更少的,我們也會幫助業務更快地去迭代去發展,也是現在的一個趨勢。
小蔣:我們 PC 端微信,大家可能直觀的覺得它用戶量沒那么大,但 PC 端微信更多是工作場景,其實用戶量還是非常非常大的。另外有一個很有意思的事情,PC 端微信很重要的一個功能是"直播助手",很多主播在去發起直播的時候一定會通過 PC 端去發起,因為要接很多外設。我們 PC 端微信的團隊在這個方面有非常多的投入跟優化,這也是我們目前做的非常好的一個功能,就是雖然它的用戶量不大,但是它創造的價值是非常非常大的。
劉飛:對,PC 端微信在有些場景下還是有很多不可替代性的,就平時大家工作的場景、工作的平臺如果是在 PC 上的話,傳個文件或者打開一些需要操作的東西,在電腦端還是更方便。這是最基本的,就是為什么需要 PC 微信的前提。
接下來我們聊一聊現在做的這些遷移到鴻蒙上可能會面臨什么樣的問題,先從前面說的"阿麗塔內核"開始聊吧。阿麗塔內核,就像前面說的它是基礎的積累,這個內核能不能稍微展開說一說?
anqi:這個內核,是我們之前做過很多探索性的業務都用到了這個微信的功能,慢慢的我們就把這個微信的功能做到通用的組件里面,這個通用的組件主要有像網絡通信、聊天、文件收 / 發這些基礎功能,包括運維的像日志、功能上報都在這里面的。后面我們基于阿麗塔內核很快做了鴻蒙的第一個 Demo 出來。
小蔣:這個內核名字的來源也很有意思,就來自那部電影《阿麗塔戰斗天使》,取名的時候說看完電影覺得這個角色又帥又能打,所以我們的內核也起這個名字。
這個內核,剛剛 anqi 有說,就是我們很快基于這個內核能把能收發信息的鴻蒙版微信 Demo 做出來,但是這個 Demo 為什么不能馬上就推出來給大家去測試或者用,就是因為這個內核更多的還是基礎的信息收發、通訊這些功能,要實現其他的大家更常用的功能,比如朋友圈、小程序這些,那還需要有非常非常多的工作要做。所以,這個工作就分兩步:第一步,安奇的團隊負責把基建搭好。基建搭好,意思就是把這些業務接進來,我要先給它做好準備;第二步,業務的同學也要來學習這個系統、了解這個系統,然后把自己的業務在阿麗塔內核實現的基礎版本上一點一點的堆進來。這個過程,就是"地基"搭好了,我們還要把承接更多業務的地基打得更深更廣,然后一點一點的讓其他的業務在這個上面去把房子蓋起來。
劉飛:有一個技術上不太了解,可能大家也比較好奇的問題,其實做鴻蒙系統的微信和安卓原來的,很多技術框架是差別很大的,還是要很多東西從頭開始搭的,對吧?
anqi:是的,因為微信這個端是比較注重用戶體驗的,很多用戶高頻使用的這些功能…
劉飛:對,尤其是日常大家每天打開的時間都很長,頻次都很高。
anqi:對,常用的聊天、朋友圈、聯系人,這些都是用原生來開發的。用原生開發,它在加載速度和流暢度的上限是比較高的。
劉飛:所以這個過程當中還是花了很多時間去做的?
劉飛:那中間有遇到什么困難嗎,就不管是開發上、團隊上,還是各方面等等?
anqi:主要困難是時間緊、任務重,因為我們要把過去微信十幾年積累的功能大部分都是要重做的。
劉飛:這不是微信 1.0,對吧?這是微信十幾年的版本。
小蔣:對,微信現在是 8.0(Version8.0)。
anqi:其實我們在開發過程中微信后面增加的那些功能開發起來是比較簡單的,因為這些功能包括文檔、負責人、設計稿都是在的,我們重新實現起來就快很多。但微信上是有很多老功能,這些功能往往實現了可能有十年以上的歷史了。
劉飛:它實現了,就放在那兒了,對吧?
anqi:對,這些功能都轉交了很多手了,能看到的就只有代碼。
劉飛:要再去拆代碼,代碼里面可能注釋寫得也不一定全?
anqi:是的。程序員最痛苦的事情,就是看別人寫的代碼,還有看自己之前寫的代碼。
劉飛:自己之前寫的就跟別人寫的代碼差不多了。
anqi:是。所以,反而那些老的功能會卡得比較久一些。
同時,鴻蒙系統它還處在高速的迭代期,系統會有各種各樣的問題。最直觀的,我們看到的就是鴻蒙的 API 版本。在其他系統上,像安卓,它的 API 版本基本上是一年一個大版本。但是在鴻蒙的初期,快的時候一個月就有兩個版本。
劉飛:他會更新 API 的接口,是吧?
劉飛:你要去配合,去做調整?
anqi:是的。如果涉及到"破壞性"的升級,我們就要花很多精力去重新適配它。
劉飛:什么是"破壞性"的升級?
anqi:就是這個接口的行為跟之前不一樣了。
劉飛:完全不一樣了?
劉飛:你要如果直接上線,那就用不了了?
anqi:對,產生各種各樣的意外問題。
劉飛:還有別的嗎?
anqi:還有個比較困難的點,就是招新。其實這個項目成立之后公司從上到下都是非常重視的,也給了我們很多招聘名額。但是招聘還是需要我們自己來的。
劉飛:名額在這,但是人不會自己來?
anqi:是的,還需要我們自己去招聘。因為很多同學業務上也比較忙,平時都是靠抽空,趁編譯時間去刷簡歷庫。簡歷本來就很少,但是客戶端開發要求卻一點都不少,特別涉及到跨平臺開發要求甚至還會更高。
劉飛:跨平臺開發,一般會找有什么樣經驗的呢?他可能甚至要對底層代碼、底層語言有一些了解嗎?
anqi:這些都是有要求的。操作系統,跨語言的開發經驗,基礎的我們用得比較多的 C++ 語言,還有對知識面的廣度深度都有一定的要求。
劉飛:說到鴻蒙微信,還有一個點是,它有兩套,不光有移動端,也有自己的 PC 端。那鴻蒙的 PC 端和移動端有很大的區別嗎?其實并不是說你開發了一套它就能自己適配 PC 端了是吧?
zuogang:本身如果是用 ArkTS 來做的應用,是可以做到"一次開發多次運行"。但是從實際出發,因為手機畢竟是單窗口交互系統,但是在 PC 上是多窗口多任務的交互系統,我們如果只是把移動端的應用跑在 PC 上,那我們只是給用戶一個能跑的應用,但實際上它并不好用。
劉飛:這就包括最基本的 UI 等等這些完全不一樣?
zuogang:對。所以出于體驗的考慮,我們是想著要給用戶提供電腦微信更好的體驗,讓它的體驗是跟 Windows、Mac、Linux 電腦系統對齊的。
劉飛:這個過程中你們面臨的困難是不一樣的嗎?
zuogang:我們面臨的困難:
第一,因為我們這個團隊同時要兼顧 Windows、Mac、Linux 微信,而且我們相當于是要重新做一個版本把現有的版本替換掉,包括要把它的消息快速的遷移到新的版本上,因為架構完全不同,所以要考慮的事情比較多,這本身就是一個很有挑戰性的工作,在這個過程中還要去適配鴻蒙 PC。
第二,因為鴻蒙 PC 系統是先有移動操作系統,所以它的一些特性設計是優先考慮移動端的,比如窗口系統、進程模型這些能力,因為我們做的跨平臺微信在 Windows、Mac、Linux 上用的一些能力在鴻蒙剛開始的時候它還不完善,所以需要我們去跟他有比較多的交流,宣講我們的需求,然后系統去逐步改善,我們再去適配。
第三,因為鴻蒙 PC 為了兼容現有的一些 PC 軟件,所以他是把 Qt 融合到他的 ArkTS 框架上,它就產生了兩個主線程。
劉飛:可以理解,是兩個框架、兩個結構,對吧?
zuogang:對,就是要把 QT 這套機制融入到它的原生機制中,所以它兩個線程同步就會導致一些復雜的時序問題,這也是需要我們去配合他們一起定位、一起解決。
劉飛:所以這個過程當中,因為本身鴻蒙也是一個新的系統,他們剛做出來的,中間也需要大家的互動,或者給他們提一些需求。
zuogang:是的。
劉飛:所以開發鴻蒙 PC 跟開發 Linux 原生還挺不一樣的,是吧?
zuogang:是,Windows、Mac、Linux 已經是成熟的系統,它的接口已經是穩定的了。
劉飛:他們也不會說一個大版本就更新一些接口了?
zuogang:對,就即使現在 iOS 升級了,可能是增加一些新的 API,但是老的 API 大多都是兼容的。但是在鴻蒙 PC 上,因為它是一個新的系統,有個發展過程。
劉飛:所以有一些覺得不合理的接口,他就直接換掉了?
zuogang:對。或者有些欠缺的,要補上。所以相對來說會難度更大。
劉飛:你說到這兒了,跟華為那邊,尤其是在這個階段,是不是要有更緊密的溝通,他們會有專門的對接團隊來解決嗎?
zuogang:對,他們有非常多的團隊跟我們進行線上交流,總共可能有上百次交流。
anqi:其實我們私下是有建很多群的,平時那些小問題反饋,我們直接就拋在群里面了,華為那邊同學也會積極響應,很快的幫我們去解決,或者給我們一個確定的結論。有些需要長線追蹤的,比較耗時的那些問題,我們也會提一個單來進行長期的追蹤。
我舉一個很小的例子。在 iOS 上,雙擊手機頂部列表會滾到頂部的功能。安卓上是沒有的。如果要自己做呢,其實也可以,可能體驗沒那么好。我們把這個問題直接在群面丟給華為那邊同學,直接反饋,他們很快就給了我們一個結論,說我們系統可以支持這個,你們就不用再去重新開發了。
劉飛:像這種之前在微信移動端實現得比較好的一些功能,希望華為配合來完成的,就跟他們溝通,他們也會配合來一起做,對吧?
劉飛:zuogang 這邊有什么補充嗎?
zuogang:對,其實華為開發同學配合度和投入度都是很高的,就像有一些系統 Qt 提升的 Bug,我們給他們寫出最小重現的事例,他們就幫忙一起分析、一起研究解決。
zuogang:我們絕大多數都是通過線上交流解決問題。我印象比較深的一次問題,碰到微信內置瀏覽器會經常 Crash,我們當時找不到頭緒。然后前天晚上我 11 點給華為的對接同學說了這個事情,結果沒想到他們第二天就從中山、武漢過來一起幫忙定位,當天就定位、解決了。確實也是挺佩服和感謝他們的!
劉飛:你提到瀏覽器,突然我意識到一個問題,就是微信里面要做的東西真的還挺多的。像瀏覽器的功能特性就很復雜,小程序它又是一個這么大的框架。
zuogang:還有編輯器、筆記、文件預覽,有很多很多功能。
劉飛:對。我們十幾年用微信用過來,一兩年有個大功能,每次會感覺有些大變化。現在再回頭看會發現已經積累了這么多東西了,之前是沒太意識到的。
劉飛:可能有一些聽友也會比較奇怪,鴻蒙版的有一些產品上得就挺快的,因為我看到之前有一個信息,在 2024 年"華為開發者大會"上有很多主流 App 的 LOGO,當時也沒有看到微信的 LOGO,很多人也比較關心,包括大家買華為肯定也要考慮這個問題,就是如果沒有"微信",那我買這個手機,用起來也比較難用。在開發難度上是不是也的確是因為微信的一些特性和一些客觀的原因會導致它開發起來就是難度比較大?
anqi:確實是存在這個問題,不同的 App,它的復雜度,采用的技術路線不同,適配的難度是有很大區別的。比如很多應用采用了我們之前說的那些跨平臺技術方案,像 Flat、Web,這些適配起來就簡單很多,只需要系統來支持 Flat 框架,支持得好的話,很容易就可以遷移過來的。一遷移過來,它的功能就會比較全。
但是微信呢,因為在其他端都是采用了原生的開發方式,我們沒有辦法就直接把它給遷到新的操作系統上來。我們使用原生開發呢,就非常依賴系統的更新,還有提供的一些功能,跟系統要配合度很高才能來完成微信上的功能,這個也就拖慢了微信的適配進度。
劉飛:包括前面說的,本身原生開發的很多功能實現,我理解,像剛才提到的內置瀏覽器或者其他的一些組件,完全基于原生的框架實現,它的成本也是不一樣的。有一些組件,如果直接用外部的現成組件,包括開源的組件,可能就在上面搭一層,實現的速度也會更快。對吧?
劉飛:從前面也聽得出來,在開發過程當中本身是有些難度的。具體來說,在 2024 年 6 月份當時華為"開發者大會"的時候,你們團隊當時做到什么程度了?
zuogang:我們 PC 版的進度是這樣的,因為在 2024 年 6 月份的時候我們還沒有拿到鴻蒙 PC 電腦,所以當時的重點還是在 Windows、Mac 和 Linux 版本。
我們是從 6 月份開始去參與華為的技術培訓,先了解這個系統。我們瀏覽器組件同學先去適配,因為鴻蒙移動端需要瀏覽器,我們其他的同學是在 9 月份才正式的開始適配。
劉飛:所以其實前面還是有很多就像剛才提到一些原生的工作要去做,那團隊的資源有限。安奇有什么補充的嗎?
anqi:去年這個時候我們有一個簡單的 Demo 出來,這個時候正在忙基礎建設方面的事情,還有拉其他的業務同學去參加華為給我們開的技術培訓課。這個時候我們關鍵任務就是要把"地基"給打好,其他業務要依賴的,我們準備好之后,他們才能更好的入場來實現他們的業務。
小蔣:當時也有一些網友就會看發布會上的 LOGO 墻,數半天,就說"就沒有你們,你們肯定就沒有在做。"但其實當時我們技術團隊已經是加班加點了。
劉飛:但這也反過來說明大家對微信的預期還是很高的,就是你需要在鴻蒙系統里有"微信",不然的話,就像前面說,手機使用起來就是沒那么方便。
小蔣:對、對、對,我們內部也把這個看得比較重,就是大家對微信的期待還是蠻高的,尤其是很多已經用起來非常常見的功能。因為我們的版本在一個一個推,每個版本我們都會發現不同的人群會說"為什么這個功能沒有?這個功能對我非常非常非常的重要!"而且不同的人群會有不同的"非常、非常重要!"也就說明微信的很多功能還是非常去契合用戶的需求,或者說用戶在長期的使用過程中已經通過這些功能去實現了自己的需要。這也就意味著我們一定要把功能打磨得足夠好、足夠絲滑、足夠穩定,這也是我們剛剛提到的,一定要用原生開發;另外,一定要把體驗一點一點的打磨好再拿出來,拿出來之前一定要先去測試,測試中間發現問題馬上把它改。改好之后,待這個版本比較穩的時候再去把它推向比較大的用戶群。不斷地去重復這個過程,我們才會真正的把這個版本去上架。在鴻蒙微信上,我們同樣是要去堅持這樣一個過程。現在只是在鴻蒙微信上我們是從頭開始去建的微信,很多剛需的功能因為要經歷這個過程,那有些用戶就會覺得比較"痛苦",因為"我明明看到你的內測版本,有些人在內測了,已經有了,為什么我沒有?"其實就是因為我們要保證功能的足夠穩定、足夠絲滑、足夠好用,才會給它推向更大范圍的用戶。
劉飛:看你們之前也一直很謹慎,應該是 10 月份有第一個版本,當時算是內測版本吧,當時出去的名額也不是特別多,對吧?
小蔣:對。名額,安奇可以幫忙解釋一下,為什么我們會用那樣一個方式,以及為什么大家會覺得你放的名額這么少?甚至有些用戶罵我們"耍猴"。
anqi:那這里我就要首先講一下我們的開發流程,剛才蔣老師也有大概講一下。
我們每個功能都要:先內部開發完自測;自測完之后,我們有內部的測試團隊,他們有設定好的用例;他們把這些用例過完,沒有問題之后,我們就要去邀請部分外面的用戶來體驗這個功能,當這部分用戶體驗之后,他會反饋一些問題出來,我們的監控平臺也會監控到一些問題的上報;我們把這些問題修復之后,再給這部分用戶推送修復版本,再繼續觀察這些問題的修復情況。一直重復這個循環,到最終有足夠穩定的版本,有了穩定的版本之后我們才敢去慢慢的加大放量,比如說邀請更多的用戶,或者進行公測,公測就是面向所有的用戶,可以"先到先得",大家看到之后就能下載安裝體驗;公測沒有問題之后,我們才會把這個版本推到了正式商店,這樣就是所有用戶都可以看到的穩定版本。
劉飛:哪怕是穩定版本或者所謂的正式版本,它的功能也是在逐步迭代的,對吧?
劉飛:你們在這上面會有功能優先級的考量,這些考量主要是怎么考慮的呢?就是先有哪些功能。
anqi:我們第一個版本的時候是根據產品經理他自己的經驗,像基礎聊天、支付、朋友圈這些第一個版本是一定要帶出去的。其他的功能,就是要看用戶反饋的聲量,我們內部也有簡單的分類,并不是所有的功能都會按聲量來排的,有些是它雖然聲量會小一些,但它是一個很剛需的需求。
劉飛:可能有一些功能是你沒有用戶就會覺得很缺失或者有一些問題。
anqi:是的。其他的那些,像換聊天背景、換鈴聲,這些我們歸到叫"改善性需求",這些需求的聲量是非常高的,但是我們會把這些綜合考慮,然后把更剛需的但聲量少的調到前面來。綜合考量來開發這些功能。
小蔣:對,這個點我之前也跟我們的一位技術負責人聊過這個話題,他跟我說過一個我還蠻觸動的點,他說:"微信很多時候在做事情的時候,我們要非常去考慮沉默用戶。"所謂的沉默用戶,他說,就是我們的爸爸媽媽、爺爺奶奶這樣的用戶,他們是永遠不會在社交平臺上去發聲說你這個功能為什么沒有?你為什么不做?但是我們做的些取舍和優先級排序是一定要考慮他們的實際使用跟感受的。如果我們不考慮他們,如果他們遇到問題是沒有地方反饋的,對于這部分用戶來說,那就是一個他完全沒法用的狀態了。
zuogang:我補充一點,其實在 PC 微信里面還有一批用戶,是無障礙用戶,這些人是視障群體。其實用戶量也不大,但是我們覺得這些需求的優先級也是比較高的,因為如果我們支持不好,他們因為視障的原因,他看不到,支持不好的話,他就無法使用這個軟件。可能普通人看不到這部分工作,但實際上對需要的人它意義非常重要,所以我們也會花比較多的精力去做這方面的適配。
小蔣:再回溯一下剛剛說到"耍猴"那個問題,其實有這么一個問題,剛剛也提到我們的開發流程是"內測-腰測-灰度"這樣的節奏。但一開始鴻蒙的應用商店會有一個限制,內測的上限是 1000 人。1000 人,對于微信來說是完全滿足不了我們去測試一個功能的要求。
劉飛:收集用戶反饋。
小蔣:如果不用這種內測的方式,我們就只能用"嘗鮮"的方式。所謂"嘗鮮",就是在華為的應用商店里面有個"應用嘗鮮"專區,也就意味著可以在這里上架,不用上架正式去。上架這里,可以設定限制名額,幾萬個都可以,原則就是"先到先得",先看到了就先下載。比如說,我們在這里放 1 萬個下載名額,那這次這 1 萬個下載之后,我們發現了一些共性的問題,那我們就肯定要再換一個版本,解決這個問題,我們需要的是得看看原來下載的這 1 萬個用戶,推給他們,他們遇到的問題到底有沒有解決。但是當時的應用商店是沒有定向推送能力,就是意味著我不能定向的推給原先下載了…
劉飛:已經下過了,你跟他說"現在已經改了"。
小蔣:這次又變成了"先到先得",那就意味著又是另外 1 萬人來下載。
劉飛:哦,就原來那些人還得再來搶,那這次搶不到,就沒有新版本了?
小蔣:對,這樣對于我們來說,也達不到我們去看這個問題有沒有修復的目的了。所以我們只能被迫著選擇"嘗鮮"的方式,以及盡量的把這個量放大一點,但事實上也還是不能滿足我們這個需求的。這樣持續了大概一個月的時間,那段時間也是我們被罵得最慘的。后面也是跟華為的同學一起開會去商量怎么解決這個問題,最后的解決方案是,華為幫我們把內測的上限從 1000 人提到了比較高的比例,這就能夠滿足我們的需求,所以我們就去招募了一些來參與內測的用戶,那我們就可以推給他們,發現問題之后,我們再定向的推給這些人,然后把穩定的版本上到正式商店,或者是在"應用嘗鮮"里面我們不再去限制這個量,讓大家都能下到,都能正常地用。
劉飛:就中間還是會有一些客觀因素的限制。這個過程中,有一些功能看似比較簡單,因為看到有一些信息說,有的功能,比如調節字體大小,或者現在 App 都有深色模式,這些提供的也都挺慢的。這個是不是也是因為還是有一些新的難度?
anqi:像字體調節、深色模式,這種就屬于看著很簡單但實際上工作量非常大的功能點。
因為微信功能是有很多團隊在負責的,然后我們要拉所有的團隊一起協作來解決這個事情,要確保每一個功能的每一個頁面在所有字體檔位顯示都不會出現問題。
劉飛:因為功能頁面也特別多?
深色模式,這種我們把它給歸到"改善性需求"上了,我們會花更多的精力去做了前面說的一些剛需功能,這個進度就會慢一點。
劉飛:你說到這個點,其實鴻蒙版本它也不只是分為簡單的手機和 PC,還包括不同的機型。就像前段時間的華為 Pura X 闊折疊屏手機,這款手機適配,我理解也不是之前的鴻蒙移動端,自動拉伸就可以完成適配了,可能還是有更多新的工作要做的,是不是也是挺有難度的?
anqi:是的。適配華為 Pura X 的時候跟字體調節、深色模式工作量是差不太多的,因為涉及到所有功能頁面都要去適配、去測試。當時在發布之前這個手機的保密要求是非常高的,華為那邊同學也非常認真負責,就保證"人機不分離"。
劉飛:就一直帶著這個機器?
anqi:最開始的時候我們只有 2 臺測試機,但是華為那邊只有 1 個同學過來,我們也沒有辦法做到…
劉飛:就是他人得在場?
劉飛:你得在他在的情況下做一些測試?
anqi:對,特別是開發的時候,我們如果要把這個手機連到電腦上,就必須當著他們的面來做這件事情。就很多功能都是我們當著他們面去現場改的,改完之后再輪到下一個功能。這么去做這件事情。
劉飛:這里面有哪些具體的是需要單獨針對它手機做的嗎?
anqi:其實華為 Pura X 適配難度主要集中在外部那個小屏。
劉飛:小屏也能打開聊天窗,能夠聊天,對吧?
anqi:是的,在內部使用微信的時候我怕合上了,那這個頁面就要出現在外面小窗這里。因為我們很多的功能都是針對長方形的屏幕來設計的。比如說,我轉發一條消息,我要預覽這條消息的內容、預覽要發送的人,下面還有些操作按鈕。在長方形的屏幕上是很容易展現出來的,但是如果放到一個方形的小屏幕上,這個屏幕就不足以去展示這些所有的信息了。
劉飛:那你們就要做一些調整、刪改?
anqi:對,如果只是做簡單的尺寸上調整是沒有辦法滿足這種要求的,我們必須要做產品形態上的調整。比如說,我們把這個功能分成兩步或者沿革一些功能,才可以讓用戶正常來使用這個功能。
劉飛:這種新的適配,對于華為來說,他自己出了一個新的機型,他想要微信配合,這個好像也只能微信來做,除非微信開放核心功能的接口。但這個目前看也不現實,那就得微信來配合做。我想到,十幾年前我也在手機公司,當時在錘子,那時我們適配有一些新的東西,比如短信、電話,這些從系統層面都可以重新給它實現。像短信,我內部的短信團隊就可以了。但是這種情況下,那手機廠商也得需要各個應用的公司大家來配合做這些,這確實是新的時代新的階段都會面臨的問題。所以這些就會讓很多用戶尤其是不是那么理解,就說"你不就是做一個適配嘛,怎么會做得那么慢呢?"這些用戶就會有很多吐槽。你們是不是也挺有壓力的?
anqi:剛開始那段時間壓力確實比較大,因為我們白天寫代碼來開發功能,晚上我們會有值班,看用戶的反饋。其實用戶的每一條反饋我們都是可以看到的,我們也會認真總結。里面很多用戶會言詞比較激烈,看了這些語言就特別難受。隨著版本的迭代,我們功能開始慢慢的完善起來,這類的聲音就慢慢的減少了,然后也會出現一些積極正面的反饋,給我們一些鼓勵,說"加油"之類的這些。
小蔣:我那段時間也體會比較深,因為我平時比較愛說話,就開了個微博的賬號。原先這個微博主要是解釋大家使用微信中間遇到的一些問題,因為鴻蒙微信,一下子就洶涌而來。
劉飛:就是你本來不是專門聊鴻蒙微信的?
小蔣:對,本來不是專門聊鴻蒙微信的。但是找到了一個宣泄的出口,那段時間罵得非常非常兇。有一次有個用戶還給我賜了個名字,叫"搞微信的屌毛"。說實話,我倒是"如獲至寶",趕緊把它拿過來貼在微博上,我自己把它玩成了梗,包括到今天也很多人在微博上叫我"屌毛",我覺得"屌毛"還好一些。叫"屌毛",我自己想了想,在真實的語境里面叫"屌毛",更多就是朋友之間大家互相在叫。這么叫,可能下意識的用戶覺得"我們是站在一起的。"
劉飛:至少感覺上是拉近了關系。
小蔣:對,至少拉近了關系。有一些客觀的情況,解釋的時候有些用戶還是能夠聽進去。到了現在,罵的也還是很多。罵,當然我們也要聽,這就意味著他對微信的期望跟需求是很高的,那我們肯定還是加班加點地趕緊把這些功能都補上;另外,剛剛聊到一些客觀的問題客觀的限制,就是我該去講一講的也會跟大家去盡量做一些解釋。中間觀感上的這些東西,跟實際情況中間的這個 Gap,我覺得還是需要跟大家做一些比較良性的溝通。
劉飛:對,尤其是信息上,大家首先知道,認不認可、理不理解是另外一回事,但是先做好溝通嘛。
小蔣:是的、是的。補充一個問題,我自己也比較好奇,原來做版本,肯定是慢慢的去加工的,你是能看到反饋。現在這個,等于是有一個對標的版本,那就變成了我們要去一點一點追這個東西,那作為開發人員來說,這個心態跟之前不斷的做新功能,這個心態有沒有什么不一樣?
anqi:之前做其他功能的時候,有一種做"甲方"的感覺,就是我提供多少功能,這些都是新增的,對于用戶來說都是新的體驗。但是在鴻蒙微信這里,我們是在做"乙方",并且我們跟用戶主動反饋的機會是很少的,主要在微信的更新日志那里,也就是應用商店看到那里,我們希望每個版本能讓更新的內容更多,也是我們對用戶的反饋吧。
劉飛:既然說到這兒了,有一個很核心的問題,大家作為鴻蒙用戶肯定都特別關心的,到底什么時候移動端能拉齊 iOS 和安卓,PC 端能拉齊 Mac 和 Windows?
anqi:移動端這里大家盡可放心,我們最終的目標一定是要對齊 iOS 和安卓的。
劉飛:首先,它不會是一個殘缺版的?
anqi:對!
劉飛:我聽你們講,特別像是跟領導匯報什么時候完成,但是我確實是在這兒代表用戶,用戶就是我們的"領導"嘛!
劉飛:既然要對齊 iOS 和安卓的功能,是不是從團隊上這也得是一個很穩定的團隊?我估計很多用戶也會比較關心,說你們這個團隊就是一個只是做適配的團隊,是一個臨時的組織還是一個成建制的。就是未來 iOS、安卓、鴻蒙也是相對平行的,未來功能都會同步迭代的這么一個團隊的建制?
anqi:在鴻蒙微信手機版剛立項的時候我們其實就在準備一個滿建制的團隊了,那時候公司從上到下都很重視這件事情,專門成立了鴻蒙移動端的開發中心來做這件事情。包括平時一些業務開發的重視程度上,跟之前我們做其他端,比如手表端、車機端這些,規格是完全不一樣的。
劉飛:相當于在之前,尤其是之前跨平臺的那些微信版本,比如車機等等,有一些操作你不可能完全復刻。但是現在的移動端、PC 端,在鴻蒙上還是要把它變成和 iOS、安卓、Mac、Windows 一個等級的要求?
anqi:是的,我們終極目標就是把鴻蒙微信做得要對齊安卓和 iOS,甚至超過 iOS 版本的。
劉飛:最后問一個問題,你們畢竟也在鴻蒙這個生態上做了挺長時間開發了,作為技術人員、開發人員,你們目前怎么看待這個生態呢?
anqi:首先,我覺得它是一個很有希望的新的生態,因為它是一個新的操作系統,是站在一個比較高的點上來設計的,在很多理念是要比安卓甚至比 iOS 要更先進的。
劉飛:因為沒有太多歷史包袱,是充分設計的。
anqi:是的。包括安全、用戶隱私,還有跨端的互聯,做的都是很先進的設計。現在它是在早期階段,很多功能雖然還沒有完善,但設計上是很先進的,是一個更加現代的操作系統。
劉飛:現在很多開發者開發鴻蒙覺得難度大,其實遇到的問題跟你們之前的問題類似,就是要從零開始做很多工作,它也沒有很多現成的組件。但是未來鴻蒙這個生態也有很多標準化的組件了,它也有很多成熟的體系,接口也穩定了,是不是開發起來它也不會比 iOS 和安卓差別很大,甚至在你剛才是說理念先進的基礎上,開發成本可能還會低?
anqi:在可預見的將來,在完善之后它的開發成本是會更低的。比如說,我在鴻蒙系統上要實現"選擇照片"這個功能,在鴻蒙上花很小的成本就可以實現的,并且是一個非常安全的系統空間來幫你做這件事情,這些都不需要開發者來理會。對用戶來說,不用擔心應用去竊取你的隱私這些事情。
zuogang:我從 PC 的角度來說,確實鴻蒙 PC 操作系統它沒有歷史負擔,所以它的設計可以借鑒以往操作系統的一些優點,而規避已知的一些問題。但畢竟是新系統,操作系統是一個復雜的工程,在實踐過程中肯定也會有一些不足。比如說,我們在 PC 適配過程中發現了一些適配問題,因為微信是一個體量比較大、比較復雜的應用,所以我們針對性能和體驗的要求是比較高的。那我們就會從我們的角度出發,發現系統目前還有一些能力不完備,我們就會持續給華為提需求,幫助這個系統越來越好,最終幫助我們鴻蒙微信 / PC 微信更好。
短期來看,從辦公需求來說,跟 Windows、Mac 相比,差別不大。差別大的在什么地方呢?重度游戲,還有生產力工具,如果這方面能做起來的話,我們以后開發同學能用鴻蒙 PC 來開發鴻蒙 PC 微信,設計同學能用鴻蒙 PC 來設計一些自己的軟件。這些現在還沒有,但如果是這些能落實下來,那未來鴻蒙系統就能覆蓋更多的市場了。
劉飛:今天非常感謝鴻蒙微信團隊的老師們。確實,今天聊下來知道大家遇到了很多困難,也感受到很多鴻蒙用戶對你們的期待是非常高的。我們也希望前面提到的半年之后能看到更多新的里程碑,大家能用上跟 iOS 和安卓相同體驗的,甚至體驗更好的鴻蒙版本。
感謝各位,也感謝大家,我們就聊到這兒。下期再見。拜拜。
小蔣:感謝大家!