iOS程序員眼中的首次使用產品體驗
產品懂技術,就像流氓會武術。技術會點產品,就像會武術的人去耍流氓
一、前言
首先想說一下為什么寫這篇文章:
《啟示錄》這本書曾提到:如果開發的產品沒有市場價值,那么無論開發團隊多么優秀也無濟于事。那么同樣的,在我們程序員費盡周折抓取各種數據,嘗試不同的技術方案只為了讓冷啟動快0.1秒的同時,可能在產品層面稍微一個小技巧就能讓用戶感覺這1秒過得更快,那我們程序員進行代碼層級的優化之前是不是最好思考一下產品層面的優化呢?
有數據統計,App安裝前三天,平均流失77%的日活躍用戶。因為新用戶是沒有耐心的,他不知道你的產品能否給他們帶來便利,提高效率,產生價值,帶著這種懷疑的態度使用App過程中,可能一丁點的的不爽、彷徨就導致用戶卸載了App。就好比相親,如果外在的皮囊在第一時間讓對方感到不適,那么無論你的內在的靈魂多么有趣也是無濟于事(除非你是個會吹牛的程序員?)。換個角度來講,可能整個App的產品設計很棒,代碼設計和優化也做到了極致,但是因為用戶第一次使用感覺使用起來太復雜,跟預期相差太遠,就導致用戶還沒體驗到核心模塊就卸載了App。
你只有一次機會給別人留下好印象,同樣的,近年來手機、電腦、無人機等數碼產品也越來越重視開箱體驗,比如可以研究下錘子手機的包裝設計和內置配件的排列布局,也是通過這樣的第一視覺沖擊提供更好的用戶體驗。
除了給用戶更好的第一印象,也給用戶一個“強行裝逼”的機會,誘導發朋友圈也會帶來更好的傳播效果。
可能有人會覺得,“產品?工作的一部分就是優化以上所講的用戶體驗,程序?寫好代碼就行了”。然而在有些產品和設計上的原生樣式規則,程序員是應該比產品和設計師更清楚的。
比如有次設計師提了個需求:要求原生彈框的確定設置為加粗Medium的顏色,取消設置為普通regular顏色。當然,這個需求站在設計師的角度來講是合情合理的:90%的人(用戶)都是右撇子,產品本身具有引導和期望性質的button放在右邊,同時顏色上更醒目。
比如美團的推廣美團支付的這個彈框
但問題是美團的彈框是自定義的,對于原生的Alert彈框按鈕類型而言,有三個枚舉值:
- UIAlertActionStyleDefault:Apply the default style to the action’s button.
- UIAlertActionStyleCancel: Apply a style that indicates the action cancels the operation and leaves things unchanged.
- UIAlertActionStyleDestructive:Apply a style that indicates the action might change or delete data.
不同style對應的顏色
蘋果原生的 一些彈框,cancel性質的按鈕也都是加粗的
從代碼實現層面來講,無非是換一下按鈕枚舉值,但是違反了蘋果的官方規范可能后造成意想不到的問題,比如iOS11升級后,發現項目中有這樣一個問題。
如果不夠明顯的話可以與??修改bug后效果進行比較。
這是 UITableViewCell 對應的一個 UITableViewRowAction,其對應的style也有三個:
- UITableViewRowActionStyleDefault:Apply the default style to the button.
- UITableViewRowActionStyleDestructive:Equal to the default style.
- UITableViewRowActionStyleNormal:Apply a style that reflects standard non-destructive actions.
后來查明原因就是之前的代碼把刪除對應的style設置成了UITableViewRowActionStyleNormal,改為UITableViewRowActionStyleDestructive才得以修復該問題,因為執行刪除后,數據源及cell已進行了刪除更新操作,但是UITableViewRowAction對應的動畫效果卻是UITableViewRowActionStyleNormal,因此會造成上面的問題。
但是這個手誤是在iOS11 新增的交互動效上才暴露出來的,在之前的系統上是沒有問題的,因此我拒絕了那位設計師,確實可能會埋下一些隱患,除非整個App 的 Alert 風格都改為自定義。
二. 各種權限彈框的處理邏輯
在互聯網上半場,很多不精細的產品中存在這樣一個問題:用戶首次下載后咔咔咔三四個權限彈框接連彈出,這就好像你跟女神第一次見面,對方還沒說話,你就笑嘻嘻地問:“妹妹家有幾口?從哪里來又到哪里去?。靠梢约觽€微信么?要不要考慮做我女朋友???”
1. WLAN與蜂窩權限
iOS10以后,由于工信部的要求,在國行手機上用戶首次下載App,需要向用戶請求網絡權限,針對該彈框,有以下幾個問題:
- 開發者不能判斷該彈框的狀態,也不能主動觸發該權限的請求,在蘋果爸爸面前,依舊是“人為刀俎,我為魚肉”。
- 蘋果官方的bug:畢竟是臨時改需求,有時候第一次下載該彈框沒有彈出,導致App一直不能聯網,App對應的權限列表也沒有WLAN和蜂窩權限,目前在iOS11上測試多次,目測該bug已修復。
- 有的用戶習慣性拒絕,小手一抖就不允許訪問網絡了。
蘋果是爸爸,可用戶也是大爺啊,針對以上問題,常規的處理方式是這樣的:
在檢測到沒有網絡的前提下(無網絡訪問權限/手機確實沒有聯網),告知用戶可能是因為網絡權限問題導致的無網絡狀態,并向用戶提供解決方案:
- 給出設置路徑,讓用戶手動到達路徑并更改網絡權限
- 點擊按鈕直接跳轉到該 App 設置界面修改網絡權限
我個人一般是使用第二種,因為一般用戶手機里面都有很多App,手動查找太費勁了,但是微信卻是讓用戶手動去查找,這點我不太明白,如哪位大佬看透還望告之(QQ的大部分權限是直接跳轉的)
但這里還有一個硬傷:各種權限修改之后,再次進入 App,就會回到首頁,相當于進行了一次冷啟動。至于這個現象的原因,個人猜測:假如現在正在使用麥克風錄音,用戶卻進入設置界面關掉了麥克風權限。你讓蘋果爸爸怎么處理這個尷尬的局面?
對于特殊情況,比如該 App 沒有彈出網絡權限彈框,對應的設置界面也沒有網絡權限,一下是各種偏方:
- 多進行幾次打開、殺死App的操作,在這過程中有一定幾率會彈出網絡權限彈框
- 先進入設置界面隨便關掉一個App的網絡權限,然后再進入目標App設置界面,對應的網絡網絡權限就顯示出來了
簡單粗暴的重啟一定好使!!
即刻的無網絡處理方式
2. App中重要且緊急的權限獲取
比如導航類產品的地理位置權限、修圖軟件的相冊權限、時間管理類軟件的日歷權限。針對這種“缺了你不行”特征的App,除了網絡權限無法控制之外,其他所有權限最好先不要觸發,能延遲盡量要延遲,只留這一個權限選擇,最好在給出一定的提示:
美圖秀秀 & 餓了么
3. 其他重要不緊急的權限獲取
- 比如IM聊天軟件中麥克風權限,普通工具類App中相冊權限(比如針對換頭像這種功能)。用戶需要正常進行這些操作需要對應的權限,但是不應該在App 第一次啟動的時候就立刻去請求權限。
- 對于這種重要不緊急的權限,一般都采取懶加載的方式,也就是等到用戶探索到這個功能的時候,主動觸發去發送請求。在用戶暫時還不需要這個信息的時候,千萬別給他提供!就像平時的待人接物一樣,要給對方想要的,而不是你認為他想要的。
微博中用戶到分享界面后需要手動觸發權限獲取
MONO中的push權限獲取率肯定比其他直接彈出來的要高
三. 登錄相關的優化
1. 免登陸邏輯
登錄注冊功能本身就是對用戶的一個限制,在用戶還未體驗到你產品價值的時候,卻讓用戶提交個人信息進行注冊,這顯然是不合適的。
因此,除非是即時通訊類似的與賬號強關聯的App,其他App最好都要進行免登陸操作:先向用戶展示一部分基本的功能,當用戶觸發了與賬號強關聯的操作(比如評論、買單等),再去提示用戶進行登錄注冊操作
之前做過一個工具類App,用戶剛下載就要進行登錄注冊操作,統計數據顯示在注這部分流失掉的用戶為10%之多!
2. 登錄相關的優化
如果用戶之前在該手機登陸過,在不需要考慮安全前提下,可以給用戶提供更便捷的登錄方式,或者對用戶進行提示(諸多第三方登錄選擇,可能用戶隨便點了一個,下次就忘記了)
新浪微博 & 輕聽英語
該功能一般使用UDID來實現,關于這個有個小插曲,在 iOS 10.3 版本的 beta 2 – beta 5版本中,keychain 中的數據會因為 APP 的刪除而刪除,當時趕緊找其他替代方案,調研了知乎、領英之后,發現用的不是簡單的keyChain,而是 iOS9 推出的SFSafariViewController,這個可以將密碼、共享Cookie、iCloud Web表單數據、證書等存儲在系統里面,與 iCloud keyChain 進行綁定。最后代碼寫的差不多了,發現 10.3 beta 6 版本,keychain 又可以繼續使用(10.3正式版也是如此)。
在登錄注冊的整個過程中,盡可能地減少用戶的操作(最開始有信電話是這樣做的,后來滴滴改版也變成這樣;AppleID 新設備登錄需要的驗證碼也是這樣的):
- 比如用戶輸入11位的電話號碼后經過正則判斷有效后,直接觸發獲取驗證碼按鈕的操作,光標進入驗證碼輸入框。
- 輸入短信驗證碼后直接觸發登錄操作。
- 也就是在整個過程中,用戶只需要輸入電話號碼和驗證碼,不需要其他任何切換的操作。
其他的諸如格式自動檢測、小屏幕適配、用戶手感上的優化在此不再贅述。
四. 引導用戶了解核心功能的使用
1. 用戶下載之前
一般情況下,用戶通過社交媒體、產品運營活動或者App Store接觸到產品,通過這個首次接觸,會對產品建立一個初步認識,如果在這些途徑中,你所描述的產品核心價值成功打動了用戶,并進行下載操作。
廣告運營 & App Store 推廣圖 就精準地描述了產品的核心價值
2. 用戶下載之后初步使用
《用戶體驗要素》這本書提出:最底層的架構是用戶需求和網站目標一樣,推動新手引導設計的原因也有兩個:用戶需求和產品目標。對于新手引導來說,用戶需求是快速、愉悅地學習使用產品。產品目標是將新手用戶快速轉化為活躍度高、黏著度高的忠實用戶。
新手引導要維持這兩方面的平衡,根據各自產品特性進行不同的引導操作:
- 內容社區類產品,開始用戶是沒有數據的,因此要首先給用戶展示內容定制界面
- 工具、游戲類 App 就要引導用戶成功使用一次核心操作,在引導的過程中最好完成一次階段性流程就給予用戶一定的鼓勵
引導頁與App Store 推廣圖類似,在此不做討論
MONO的內容定制 & Things 新手引導
狼人殺的新手引導
在這個過程中最好對用戶行為進行更細化的統計并追蹤結果,根據各種統計數據分析用戶流失的原因,從而不斷優化引導的流程。
在第一次打開App或者用戶第一次登錄成功后,可能要下載一些歷史數據(比如微信登錄成功后要下載部分歷史消息、通訊錄數據),技術可以在這方面盡可能地做優化;設計層面也可以考慮增加一些動效,讓用戶在心理上感覺時間過得很快(如果亞馬遜網頁下載速度慢 1 秒鐘,1 年就有可能損失 16 億美元;如果谷歌提交搜索結果的時間延遲 0.4 秒,一天的搜索量就會減少 800 萬次;好吧,這個浮躁的快節奏世界? )。
當然,在用戶完成第一次使用App之后,運營方面也可以做一些諸如電話回訪、短信通知紅包下發、push推送活動信息等喚醒用戶操作。
五. 寫在最后
產品懂技術,就像流氓會武術。技術會點產品,就像會武術的人去耍流氓???。
雷軍曾經說過:如果寫代碼沒有寫詩的感覺,那就轉行做產品經理吧!雖然確實沒有寫詩的感覺,但是有時候把用戶的感覺納入進去,對每一個小的功能點都保持著敬畏感,把人作為中心點去考慮而非代碼,好吧,我編不下去了??……工頭喊我搬磚了。
感謝閱讀。
作者:si1ence
來源:http://www.jianshu.com/p/689ea60d3352
本文由 @si1ence 授權發布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自unsplash,基于CC0協議
- 目前還沒評論,等你發揮!