設(shè)計+開發(fā)一個VisionOS空間應(yīng)用的全流程、工具操作及細(xì)節(jié),看他是如何做的?
作為一名VR/AR產(chǎn)品經(jīng)理/需求分析師/解決方案工程師,我像各位一樣,因蘋果AVP的到來而異常激動和焦灼,因其全新的設(shè)計思路和空間交互理念而激動,因沒有實踐機(jī)會的情況下不知如何快速構(gòu)建起我們的空間交互設(shè)計認(rèn)知與技能而焦灼,甚至一些開發(fā)者也會有如此的感受吧。
于是,在發(fā)現(xiàn)一些前期實踐者們分享的內(nèi)容中,不乏有些分享者梳理了一些不錯的經(jīng)驗,讓我們一起跟著熟悉一下。
Guillem Bruix提到,“我花了整整一個月份的時間學(xué)習(xí)如何為VisionOS這個新平臺設(shè)計和編程。”,“在 AppleVisionPro上使用增強(qiáng)現(xiàn)實3D地圖制作這款滑雪應(yīng)用程序,我將分享我設(shè)計和編碼時遵循的4個步驟,并提供一些技巧和建議,特別關(guān)注UX設(shè)計?!?/p>
圖片來源:作者Guillem Bruix的視頻介紹中
本期內(nèi)容就以Guillem Bruix在設(shè)計開發(fā)他的第一款visionOS應(yīng)用程序Neu Sky Resorts(“新滑雪勝地”,已上架蘋果AppStore可下載),來看看從創(chuàng)意想法、規(guī)劃設(shè)計、開發(fā)并落地的整個過程中會遇到哪些問題、需要注意什么、用到哪些工具、以及工作流是怎樣的等。
一、新時代·新機(jī)遇
VisionPro代表了計算技術(shù)的一個自然演進(jìn)過程。從桌面計算機(jī)到移動設(shè)備,再到現(xiàn)在的三維空間計算,計算平臺的演變反映了技術(shù)與日常生活融合的深化。最初,計算機(jī)應(yīng)用程序以二維形式存在于桌面上,隨后被嵌入到移動設(shè)備的屏幕中。Vision Pro的出現(xiàn)預(yù)示著應(yīng)用程序?qū)?strong>從二維屏幕轉(zhuǎn)移到三維空間,用戶可以在現(xiàn)實世界的環(huán)境中與之互動,完成從2D到3D的界面轉(zhuǎn)變。
圖源:蘋果官網(wǎng)
Guillem Bruix提到,“AVP的空間計算概念,似乎是計算演進(jìn)的下一個合乎邏輯的步驟(階段)。首先,計算機(jī)是被放在我們的辦公桌上,我們每天操作的內(nèi)容以2D形式呈現(xiàn)在屏幕內(nèi)。后來,APP應(yīng)用程序被放入到我們的手機(jī)、平板等移動設(shè)備的小屏幕上,手機(jī)可以輕松的放進(jìn)我們的口袋里,隨時查看。那么,現(xiàn)在這些應(yīng)用程序可以以3D形式漂浮在家中,辦公室或真實空間中的任何地方,多少屏幕都可以不受遮擋、同時呈現(xiàn)?!?/p>
Vision Pro強(qiáng)調(diào)了空間計算的概念,不再局限于特定的設(shè)備或屏幕,而是可以無縫地融入我們生活和工作的空間中。這種計算方式使得數(shù)字內(nèi)容和服務(wù)可以更加自然地與現(xiàn)實世界結(jié)合。用戶可以在家中、辦公室或任何其他場所與3D形式的應(yīng)用程序互動,這為教育、娛樂、設(shè)計、遠(yuǎn)程工作等多個領(lǐng)域帶來了新的應(yīng)用可能性。
Vision Pro的推出,用戶體驗被重新定義。交互方式將變得更加直觀和自然,用戶可以通過手勢、語音等多種方式與虛擬對象進(jìn)行交互,這將極大地提升用戶的沉浸感和滿意度。因此,蘋果的新產(chǎn)品往往會帶動開發(fā)者生態(tài)系統(tǒng)的創(chuàng)新。Vision Pro的推出可能會激發(fā)創(chuàng)作者創(chuàng)建新的應(yīng)用程序和服務(wù),從而推動整個行業(yè)的發(fā)展。
“作為一名UX設(shè)計師和獨立開發(fā)者,在這個一切似乎都要完成、但一切皆有可能的新世界中開始創(chuàng)作,對我來說是令人興奮的!”。
——Guillem Bruix憶當(dāng)年有感——
“2008 年,當(dāng) Apple發(fā)布AppStore 時,我還太年輕,不具備為iPhone開發(fā)應(yīng)用程序的知識。像iBeer或Virtual Lighter這樣的簡單獨立的應(yīng)用程序,因其新穎性和能夠展示iPhone交互功能的能力而變得如此受歡迎。雖然在功能方面,不一定是開創(chuàng)性的,但它們都抓住了平臺上早期應(yīng)用程序開發(fā)的機(jī)遇和倡導(dǎo)的創(chuàng)新創(chuàng)造?!?/p>
“感覺今天的我們,在VisionOS的新AppStore中,擁有與獨立開發(fā)者在2008年iPhone的AppStore中類似的機(jī)會。我有足夠的理由開始為VisionOS的設(shè)計和開發(fā)去提前挑戰(zhàn)。”
誠然,你或許也是這么想的吧。
二、你的靈感和想法很重要
隨著AI、XR技術(shù)的發(fā)展,許多傳統(tǒng)行業(yè)和職業(yè)面臨著被取代的風(fēng)險。在這種情況下,人類的靈感、想法、想象力和創(chuàng)造力變得尤為重要,因為它們可以幫助人類在競爭激烈的市場中保持競爭力,找到新的生存和發(fā)展之道。
靈感和創(chuàng)造力來源于對日常工作和生活的習(xí)慣性觀察與思考,那些習(xí)慣了思考并具備想象力的人,其靈感和創(chuàng)造力更容易迸發(fā)出來?!拔浵佨妶F(tuán)攻打屎殼郎打怪獸”、“蝸牛掉進(jìn)飯盒里會不會很高興”、“指尖下的流沙好漂亮”,“為何這家店的門頭字是別的顏色”、“如何把頭盔做成廚房用具造型是不是很特別”…,無論小孩子還是成年人,都在不斷地探索世界和思考這個世界上的方方面面、點點滴滴,多問幾個問題,多思考幾個方面,就容易產(chǎn)生很多的想法。靈感來源于日常的方方面面。
圖源:蘋果官網(wǎng)
“當(dāng)我看到Apple Vision Pro的介紹時,我最初的想法是:它看起來像滑雪護(hù)目鏡。然后,我開始想象自己戴著這個科技化的護(hù)目鏡滑雪,除了保護(hù)我的眼睛免受寒風(fēng)和陽光的傷害外,它還會為我提供哪些有用的信息。比如滑雪勝地地圖,我目前的速度,也許還有一些像電子游戲中那樣要避開的3D假障礙……”,Guillem Bruix的應(yīng)用創(chuàng)意來源于想象力和自我反問。
當(dāng)你看到AVP或者任何一個自然物時,你的大腦也同樣像這樣活躍著,那么你是有想象力的,靈感恐怕馬上會來。你只需要去進(jìn)行分析和篩選(請允許我裝一下“專家”:圍繞目標(biāo)(或物刺激)——頭腦風(fēng)暴——需求挖掘——需求分析——建立有用需求池…然后去驗證那些有用的“真需求”)。
“現(xiàn)在,是滑雪季節(jié),這可能是一個更頻繁地去滑雪的絕好借口。我必須去滑雪,因為我喜歡這個創(chuàng)意靈感、主意!我已經(jīng)有了我的應(yīng)用程序創(chuàng)意的主題,但這個想法的范圍將根據(jù)UX設(shè)計過程來定義?!薄酉聛硇枰龅木褪?strong>驗證或確認(rèn)需求:需求定義、需求邊界(范圍)的確定…,這也是Guillem Bruix一步步的操作的。
那么,具體是怎么做的?在設(shè)計和開發(fā)過程中又會遇到哪些問題且如何解決呢?繼續(xù)往下看。
三、UX設(shè)計
“制作用戶喜愛的VisonOS應(yīng)用程序意味著需要花時間設(shè)計用戶體驗(UX)。”——Guillem Bruix。
UX設(shè)計,即用戶體驗設(shè)計,是關(guān)注于優(yōu)化用戶與產(chǎn)品或服務(wù)之間交互過程的設(shè)計領(lǐng)域。它的核心目的是確保用戶在使用產(chǎn)品的過程中獲得滿意、愉悅且有效率的體驗。
以下是UX設(shè)計的一些基本概念和原則:
- 用戶為中心:將用戶的需求放在首位,通過研究用戶的行為、偏好和需求來指導(dǎo)設(shè)計過程。
- 易用性:確保產(chǎn)品的易用性,即用戶能夠輕松地使用產(chǎn)品并完成目標(biāo)任務(wù)。
- 功能性與美觀性的平衡:雖然UX設(shè)計強(qiáng)調(diào)功能和效用,但它也考慮產(chǎn)品的視覺和審美因素,以確保提供一個整體上令人滿意的用戶體驗。
- 跨學(xué)科融合:UX設(shè)計往往需要結(jié)合心理學(xué)、認(rèn)知科學(xué)、信息技術(shù)等多個學(xué)科的知識和方法。
- 多設(shè)備適應(yīng)性:隨著技術(shù)的發(fā)展,UX設(shè)計不僅局限于傳統(tǒng)的網(wǎng)站和應(yīng)用程序,還涉及到語音、虛擬現(xiàn)實等不同領(lǐng)域的應(yīng)用。
- 設(shè)計原則:包括一致性、簡潔性、可見性、約束性等,這些原則幫助設(shè)計師創(chuàng)建出既直觀又引人入勝的用戶體驗。
- 響應(yīng)式和自適應(yīng)設(shè)計:隨著移動設(shè)備的普及,UX設(shè)計需要確保產(chǎn)品在不同屏幕尺寸和分辨率下都能提供良好的用戶體驗。
- 價值體現(xiàn):不僅關(guān)注產(chǎn)品的功能性,還關(guān)注產(chǎn)品能否為用戶帶來實際的價值和滿足用戶需求。
- 實用性與高效性:應(yīng)注重實用性,讓用戶能夠高效地完成任務(wù),同時減少學(xué)習(xí)成本和操作難度。
總的來說,UX設(shè)計的目標(biāo)是創(chuàng)造出能夠滿足用戶需求、解決用戶問題,并在情感上給予用戶積極體驗的產(chǎn)品。為了成為一名優(yōu)秀的UX設(shè)計師,不僅需要掌握上述原則和概念,還需要不斷學(xué)習(xí)和實踐,以及對設(shè)計趨勢的敏感度和對用戶需求的深刻理解。
以用戶為中心,開始了解誰是用戶。“一些能夠買得起AppleVisionPro的人,且可能是那些經(jīng)常去滑雪的人”?!皩τ谶@些人來說,什么是重要的?為什么他們會使用VisionPro應(yīng)用程序而不是 iPhone 應(yīng)用程序或網(wǎng)站來查找他們正在尋找的內(nèi)容?他們有哪些問題或痛點?我怎樣才能為他們帶來更好的體驗?”等等諸如此類的問題,是Guillem Bruix圍繞目標(biāo)功能而做的分析。
“所有這些問題,都是我用Figma所做的用戶研究中試圖要回答的問題。我遵循了一種基于雙鉆石方法的設(shè)計思維,根據(jù)我的VisionOS需求進(jìn)行了調(diào)整。在使用Xcode開始編碼之前,我們需要清楚地了解我們想要構(gòu)建哪些功能,以及我們想要放棄或稍后構(gòu)建哪些功能。這就是為什么我個人喜歡雙鉆的原因,因為它很簡單,可以幫助我選擇和篩選功能?!?/p>
圖源:Guillem Bruix的分享文中,文章分享鏈接在末尾
Guillem Bruix將Figma文件的下載地址也以鏈接形式發(fā)了出來,感興趣下載的朋友可以到文末,點擊原文鏈接找到后下載。
No1. 用戶調(diào)研(需求挖掘與調(diào)研)
“我請我認(rèn)識的喜歡滑雪的人(包括我自己)幫助我用準(zhǔn)確的信息填寫一些可能感興趣的功能需求。”——Guillem Bruix分享中說。這只是最簡單的一種調(diào)研方式。
用戶調(diào)研(User Research)是一種通過與用戶互動來收集信息的過程,目的是更好地理解用戶的需求、行為、動機(jī)和體驗。幫助我們設(shè)計和改進(jìn)產(chǎn)品、服務(wù)或系統(tǒng),使其更加符合用戶的期待和需求。用戶調(diào)研的好處包括:提高用戶滿意度、降低風(fēng)險、提高效率、促進(jìn)創(chuàng)新等。
用戶調(diào)研通常包括以下幾個步驟:
- 確定目標(biāo):在開始用戶調(diào)研之前,明確你想要解決的問題或你想要了解的信息。
- 選擇方法:根據(jù)研究目標(biāo)選擇合適的用戶調(diào)研方法,如訪談、問卷調(diào)查、觀察、用戶測試等。
- 招募參與者:根據(jù)產(chǎn)品的目標(biāo)用戶群體,招募合適的調(diào)研參與者。
- 收集數(shù)據(jù):通過所選的調(diào)研方法與用戶互動,收集相關(guān)數(shù)據(jù)。
- 分析數(shù)據(jù):對收集到的數(shù)據(jù)進(jìn)行分析,提取有用的信息和洞察。
- 匯報發(fā)現(xiàn):將調(diào)研結(jié)果整理成報告,向團(tuán)隊成員和利益相關(guān)者分享。
- 采取行動:根據(jù)調(diào)研發(fā)現(xiàn)制定行動計劃,改進(jìn)產(chǎn)品設(shè)計或服務(wù)流程。
No2. 需求分析與需求范圍(邊界)定義
剛剛提到的“分析數(shù)據(jù)”便是對收集上來的需求進(jìn)行“真、偽需求”分析、找出基本需求和新穎需求等,至于需求的各種分類以及各種需求分析方法和原則在這里就不展開說了,網(wǎng)上一搜一大堆,按需自行了解吧。
“從我在前期發(fā)現(xiàn)的所有問題中,我必須收斂需求邊界范圍并選擇我優(yōu)先考慮的問題”,于是他采用了MVP(Minimum Viable Product,最小化可行產(chǎn)品)的設(shè)計理念去進(jìn)行需求分析,他認(rèn)為“這樣開始工作更有意義?!?。例如,他采納的一些問題如下:
- 哪些滑雪勝地離我最近? 我住在巴塞羅那,所以我決定首先關(guān)注加泰羅尼亞比利牛斯山脈的度假勝地。之后,我可以擴(kuò)展到包括更多國家/地區(qū)。
- 哪些滑雪勝地適合我或我的團(tuán)隊?我是和家人、孩子、伴侶、初學(xué)者朋友還是喜歡運動的同事一起旅行?我更喜歡具有挑戰(zhàn)性的黑色斜坡,還是一些適合初學(xué)者的綠色斜坡就足夠了?
- 天氣會是什么樣子?我旅行的前幾天會下雪,去的那天是晴天,還是會一直下雨,破壞雪和我的計劃?
- 要多少錢?
- 它離巴塞羅那或我的家鄉(xiāng)有多遠(yuǎn)?
- 為什么我使用AppleVisionPro而不是典型的滑雪網(wǎng)站?
有了這些問題方向后,他決定到此便停止MVP(Minimum Viable Product,最小化可行產(chǎn)品)的范圍。因為他認(rèn)為“當(dāng)前我們處于定義階段”,盡可能定義那些更加有用、有價值的問題。
當(dāng)然,他也刪除了一些問題:
- 我將在哪里睡覺或吃飯?吃住問題。
- 目前的雪況如何?雪況數(shù)據(jù)。
- 有多少個斜坡和升降機(jī)開放?度假村實時數(shù)據(jù)。
- 我想滑雪什么斜坡,我有多快?滑雪跟蹤功能。
- …
關(guān)于為什么如此決定一些問題并放棄另一些問題,他也給出了描述:“我想讓MVP保持簡單,并專注于3D對象,例如實現(xiàn)一種增強(qiáng)現(xiàn)實度假村地圖的功能,這對于AR頭戴式設(shè)備(AVP)來說非常方便”。
當(dāng)然,也與個人技能和偏好有關(guān)。他希望的是這個應(yīng)用程序以UX(用戶體驗)為重點,而不是以數(shù)據(jù)為重點。因為他在3D設(shè)計方面要比處理外部各種數(shù)據(jù)接口(API)更擅長,而且他也不想為那些實時數(shù)據(jù)付費,畢竟是個人的一次VisionOS應(yīng)用程序設(shè)計與開發(fā)的探索。
因此,他將此次的功能做了決策:決定專注于行程發(fā)現(xiàn),放棄一些有關(guān)雪的和滑行速度等數(shù)據(jù)的跟蹤。
No3. UI設(shè)計
到了開始設(shè)計UI的階段。那么,與移動應(yīng)用程序界面設(shè)計或網(wǎng)站UI設(shè)計相比,VisionOS應(yīng)用程序的設(shè)計優(yōu)勢和不同點主要體現(xiàn)在沉浸式虛擬空間或增強(qiáng)現(xiàn)實空間中的3D元素的交互與呈現(xiàn)方面。當(dāng)然,交互設(shè)計(手勢和眼睛跟蹤)和空間音頻也是其優(yōu)勢和不同點。
圖源:蘋果官網(wǎng)文檔
VisionOS應(yīng)用程序有3種類型的內(nèi)容:漂浮在3D空間中的2D窗口、體積或3D對象以及不同窗口和體積可以共存的完整空間。
Guillem Bruix提到,“要根據(jù)我們想要顯示的信息類型來選擇不同的呈現(xiàn)方式”,“例如,所有滑雪勝地的導(dǎo)航和數(shù)據(jù)都以類似于iPad應(yīng)用程序的儀表板形狀顯示在2D浮動窗口中是有意義的,但要遵循(或使用)VisionOS新的磨砂玻璃材質(zhì)和UI元素去設(shè)計。所有具有斜坡的度假村地圖,則非常適合以3D對象的方式進(jìn)行顯示,以起到沉浸式直觀欣賞山區(qū)起起伏伏完整地地形貌的目的。”
這里需要說明的是,適度和直觀性很重要。所有內(nèi)容均以3D立體形式展示,其效果有可能過猶不及。
對于2D窗口,Guillem Bruix遵循Apple的建議。“在觀看了空間設(shè)計原理和空間用戶界面設(shè)計WWDC視頻后,我下載了Apple的VisionOS的Figma模板,并開始在Figma中嘗試不同的可能的UI設(shè)計,以呈現(xiàn)那些在定義階段的確定下來的需求(問題)?!?/p>
3D設(shè)計
VisionOS為應(yīng)用開發(fā)者們提供了兩種模式:直通模式和沉浸模式。
圖源:蘋果官網(wǎng)文檔
直通模式,使用AppleVisionPro頭戴式設(shè)備的外部攝像頭(VST)來查看真實世界。在此模式下,應(yīng)用程序和窗口看起來好像懸浮在半空中。用戶可以使用手勢和眼動與界面進(jìn)行交互。
沉浸式模式,將用戶帶入一個完全3D的虛擬環(huán)境。此模式將用戶沉浸在具有3D虛擬對象的數(shù)字化虛擬場景中。
“對于我的Neu應(yīng)用程序,我需要創(chuàng)建加泰羅尼亞比利牛斯山脈10個滑雪勝地的3D地圖,包含所有斜坡和纜車以及山脈海拔的構(gòu)建…”,“我首先需要找到對應(yīng)的開源地圖數(shù)據(jù),然后在Blender中將它們一起制作出來,并導(dǎo)出為 Xcode的正確格式”,Guillem Bruix在制作過程中用到了以下幾方面的工具以及完成3D資產(chǎn)創(chuàng)建過程中的一些建議,大家可以參考。
3D地圖模型的制作過程:
- OpenTopography獲取每個度假村的3D高程網(wǎng)格數(shù)據(jù)。
- IGN(Instituto geográfico Nacional)來獲取航拍照片,后來我在Photopea中手動編輯了這些照片,以轉(zhuǎn)換為這種黑白外觀,以模擬雪景。
- OpenSkiMap獲取所有滑雪勝地的坡度和升降矢量。
- Figma將IGN的照片與OpenSkiMap的矢量混合。
- 輕松制作3D對象原型的樣條曲線:https://my.spline.design/valldenuriav2-224cb47b2edc8507289fef01fc735fe6/
- Blender 將所有內(nèi)容放在一個3D對象中并將其導(dǎo)出為GLB格式。
- 最后,我使用Apple的RealityConverter將GLB導(dǎo)出為USDz,以便在 RealityComposerPro和Xcode中導(dǎo)入。
完成3D資產(chǎn)創(chuàng)建過程的建議:
- 盡可能簡單:每個對象的網(wǎng)格和材質(zhì)都很少。避免組內(nèi)有多個組的復(fù)雜層次結(jié)構(gòu)。
- 注意測量:嘗試在Blender或3D軟件中將物體保持在1或2米之間。由于 RealityComposerPro 中的巨大尺寸,我多次無法看到對象。
- 在 3D 軟件中創(chuàng)建對象:使用 導(dǎo)出對象。GLB擴(kuò)展名,并在RealityConverter應(yīng)用程序中將它們轉(zhuǎn)換為USDz。不要從Blender導(dǎo)出美元并直接在RealityComposerPro中打開它們。這對我來說效果不是很好。
- 在RealityComposerPro中重新創(chuàng)建材質(zhì):您可能還需要在RealityComposerPro中導(dǎo)入紋理圖像。出于某種原因,RealityConverter附帶的USDz有警告和問題。
四、代碼編寫
“我們可以開始考慮如何在Xcode中進(jìn)行功能的實現(xiàn)”。代碼實現(xiàn)方面,Guillem Bruix也給出了自己的一些分析和建議。不妨繼續(xù)往下看。
他認(rèn)為,在空間計算時代初期,visionOS的編程對于創(chuàng)作者來說存在2個比較好的方面(優(yōu)勢)和1個糟糕的方面。
優(yōu)勢1:我們可以使用與編寫iPhone應(yīng)用程序相同的語言(Swift和SwiftUI)、相同的IDE(Xcode)和相同的分發(fā)平臺(App Store),這是Apple與Meta(競爭對手)相比較VisionPro具有的優(yōu)勢之一。
優(yōu)勢2:由于它是visionOS的第一個版本,我們不需要關(guān)心與舊visionOS版本的兼容性。
糟糕的是,在初期沒有很多可參考的文檔,只有蘋果的文檔。我們只能通過觀看與SwiftUI和RealityKit for visionOS相關(guān)的AppleWWDC23視頻來不斷的摸索前進(jìn)。
Guillem Bruix通過項目實踐,在學(xué)習(xí)有關(guān)視頻時給我們的建議是,可遵循以下順序:
- 開發(fā)你的第一個沉浸式應(yīng)用 —WWDC23 視頻
- 了解用于空間計算的SwiftUI —WWDC23 視頻
- 提升窗口化應(yīng)用以進(jìn)行空間計算 —WWDC23 視頻
- 使用RealityKit構(gòu)建空間體驗 —WWDC23 視頻
- 將SwiftUI提升到一個新的維度 —WWDC23 視頻
- 借助SwiftUI超越窗口 —WWDC23 視頻
- 認(rèn)識RealityComposerPro —WWDC23 視頻
- 使用RealityKit增強(qiáng)您的空間計算應(yīng)用程序 —WWDC23 視頻
- 改進(jìn)ARKit應(yīng)用程序以實現(xiàn)空間體驗 —WWDC視頻
- 在RealityComposerPro中探索材質(zhì) —WWDC視頻
- 在Xcode中使用RealityComposerPro 內(nèi)容 —WWDC視頻
- 了解用于空間計算的ARKit —WWDC視頻
“對于Neu應(yīng)用程序的編碼,我決定利用SwiftData以及由Swift宏提供支持的新觀察框架來持久化度假村數(shù)據(jù)?!?/p>
“側(cè)邊欄菜單使用了標(biāo)準(zhǔn)的NavigationSplitView。”
“所有天氣數(shù)據(jù)均來自Apple的WeatherKit?!?/p>
“AppleMaps用于2D地圖(2D窗口內(nèi)的地圖)。”
“最后,SwiftCharts用于扇形標(biāo)記圖,也稱為圓環(huán)圖,我用它來表示與斜率顏色相關(guān)的不同數(shù)字。每個3D地圖都添加為一個沉浸式空間。我想在下一個版本中更改的是使用ARKit將它們添加為獨立的3D體積,從而允許它們同時共存?!?/p>
圖片來源:作者Guillem Bruix的視頻介紹中
參考內(nèi)容:作者Guillem Bruix,Developing my first visionOS app: 4 steps I followed. | Medium。歡迎大家關(guān)注他,同時也謝謝他給我們做的精彩分享,讓我們能夠?qū)W到很多有用的知識。
本文由 @XR元培坊 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自蘋果官網(wǎng)截圖
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
- 目前還沒評論,等你發(fā)揮!