6 個輸入框 ,47 個設計點
“乍一看到某個問題,您會覺得很簡單,其實您並沒有理解其複雜性。當您把問題搞清楚之後,又會發現真的很複雜,於是您就拿出一套複雜的方案來。實際上,您的工作只做了一半,大多數人也都會到此為止……。但是真正偉大的人還會繼續向前,直至找到問題的關鍵和深層次原因,然後再拿出一個優雅的、堪稱的有效方案。” – 史蒂夫·喬布斯
這篇文字只是描述對於簡單的三個介面,我做每個設計決策的歷程。
設計任務是對以下注冊過程的優化,目標是降低註冊門檻,讓過程高效,平台為 iOS 。
設計分兩步走,分別是資訊架構設計和細節設計,細節再從預設狀態、填寫狀態、反饋狀態三個角度進行設計。
以下是過程描述:
一、資訊架構。
也就是整理資訊、規劃步驟,把需要多用户錄入的資訊全部列舉出來,然後設定到一個或多個步驟裏,形成整個註冊過程。
先列出需要的資訊有:[1]
1 通過驗證的手機 (也就是手機號、驗證碼)
2 密碼
3 暱稱
4 性別
5 生日
原來的密碼要填兩遍,手機輸入太痛苦,果斷去掉一遍。
星座本就是由生日推算,放在註冊環節徒增操作成本,果斷去掉。
技術及運營需求,全部為必要資訊 (也就是必填) 。
接下來就是組織這些資訊,可能的組織方式有:[2]
後選擇了這個:
具體是這樣:
為什麼呢?
從多用户操作流程考慮,我想讓入門這一下足夠簡單 [3],所以多用户看到的步只有一個要求,輸入手機號,關於這個目標,後續細節分析還有進一步的交代。第二步開始漸難,第三步相對難,從簡到繁。
那為什麼不每一步只完成一個任務,每一步都簡單呢? 這樣會使得整個流程變得很長 [4] 。後面適當的複雜我覺得是可以接受的,這裏動了一個邪惡的小心思,關於沉沒成本的原理 [5],大致就是對 “哥既然已經填了兩步了,就再填一步吧,反正只剩一步了” 這種心理的利用。
細心的人也許會問,為什麼中間一步是密碼和驗證碼,且後一步沒有返回按鈕呢? 其實這是一個技術上的約束造成 [6] 。先,對於我們系統來説,手機號一旦驗證 (驗證碼一旦正確提交),手機號就不能再被使用,而完成註冊還得搭上密碼,所以驗證碼和密碼得同一個動作提交給系統,不能分成兩步,驗證碼如果單獨作為一步先提交,也就是手機單獨被驗證,中間若發生非常規退出,密碼還沒填,下次再想註冊就會被提示手機已被佔用了。其次,在第二步填完驗證碼和密碼後,其實已經註冊成功啦,也就是説,多用户在第三步就把應用強制退出,下次回來也能夠憑手機號和密碼登入啦,當然登入完第三步的基本資料填寫還是會等着他,跟他説未完待續。這也就是為什麼第三步基本資料沒有返回修改密碼驗證碼的入口,看上去怪怪的,但遊戲規則就這樣,如果您有好辦法,記得告訴我。
於是,從多用户操作流程和系統約束雙線考慮,得到了這麼一個資訊架構。因為介面內容不多,無需框架,直接進入細節設計。
二、細節設計,註冊第 1 步 (手機號)
每一個介面都分別對預設、輸入和反饋三個狀態進行設計。個介面元素少,相對好處理。
預設狀態設計如下:
導航欄左側按鈕用 X,代表對註冊任務的取消 [+7],代表這個介面跟上一個介面沒有層級關係,當然個人認為這不是很重要,就算是放一個返回按鈕,多用户也完全能夠理解的。輸入框採用左邊固定標籤,輸入域在右邊的設計,
因為空間足夠,不需要整合輸入域和標籤,在輸入時去除標籤,這樣感覺更穩一些 [+8] 。標籤用淺色 (後面會跟視覺設計師探討),輸入正文用深色,以表示主次 [+9],我也想過標籤預設用深色,等輸入內容時,再相應變淺,但總覺得有些花哨,就放棄了。
提交按鈕用大按鈕的形式放在輸入框下方,標籤是 “獲取驗證碼”,沒有用 “下一步” 是想給多用户一個更清晰的預期 [+10],按鈕沒有放在導航欄右側,因為字太多,放不下了嘛,而且一個大按鈕也顯得比較清晰 [+11] 。
原本輸入框裏的提示文字 “請輸入手機號碼” 這句廢話被我廢了,同時也重寫了多用户許可協議的入口引導,也是怎麼簡單怎麼寫 [+12] 。
輸入狀態設計如下:
填寫就要撥出鍵盤,鍵盤要預設撥出嗎? 從操作效率考慮,自動撥出比較好,省一步點選嘛,不過我做了一個相反的決定,決定不讓鍵盤預設彈出,為的是整個介面眼看上去,足夠簡單。作為步,這時我覺得感官上的簡單比操作上的簡單更重要 [+13] 。因為是手機號碼是數字,所以當然要呼叫數字鍵盤 [+14] 。填寫的是電話號碼,用自動分段的顯示方式,如:138 0000 0000,方便多用户閲讀確認 [+15] 。
反饋狀態設計如下:
反饋的規則其實是從後面的介面往前做的,因為後面的輸入項多,能概括出更適用的規則,所以規則就後面再説吧。至於這個介面反饋的內容,就是對於輸入手機號的值進行判斷,正確直接通過,不做提示 (或者説介面的跳轉本身就是有效的反饋),若出錯,分 “是否為空”“是否格式正確”“是否已被佔用” 三種情況對應提示 [+16],行文稍微詼諧一些,作用也是放鬆情緒 [+17] 。
三、細節設計,註冊第 2 步 (驗證碼,密碼)
預設狀態設計如下:
依然很簡單,先告訴多用户簡訊驗證碼已經傳送到手機號 xxx,特意寫多 “簡訊” 兩個字想把事情説清楚,這個有些糾結,貌似以現在多用户們的 WordPress APP 使用經驗,把這兩個字去掉也是 ok 的 [+18] 。
在密碼下方有一行説明文字 “8-20 位,不能有空格,純數字的話要 9 位以上”,是密碼的輸入規則説明,用的是大系統的通行證密碼規則,大系統的規則是這麼説明的:
我做了兩件事情,精簡和口語化,特別是 “不能是 9 位以下純數字”,這句話是典型站在程序設計師的角度説的,而且拗口,所以改成了 “純數字的話要 9 位以上”,如果您剛好想用純數字做密碼,看,要 9 位以上哦 [+19] 。這也會被用在後面的錯誤反饋裏面 [+20] 。
輸入框的標籤和大按鈕依然延續之前的風格。按鈕標籤用 “註冊” 而不用 “下一步”,試圖營造一種這就註冊了的感覺,實際上也已經註冊了 [+21] 。
輸入狀態設計如下:
還是不預設撥出鍵盤,眼不見為淨。
驗證碼當然還是用數字鍵盤 [+22] 。
密碼用英文預設鍵盤 [+23],鍵盤多了一個設定,右下角的按鈕,用 “GO”,表示且執行 “提交”,問過研發的同學,儘管是英文鍵盤,依然可以顯示成中文 “前往” 的,但考慮到是英文鍵盤,“前往” 可能會讓人覺得這是中文鍵盤,還是 GO 吧 [+24] 。
因為密碼只輸入一次,手機的輸入又相對困難,為了更確認自己的密碼輸入,所以索性預設用明文顯示 [+25],我記得亞馬遜 kindle 和小米盒子設定密碼的時候也都是預設顯示,輸入麻煩嘛,如果您真的要在大庭廣眾下注冊,輸入框右邊有個 “隱藏” 按鈕可以切換 [+26] 。
反饋狀態設計如下:
這裏可以説説反饋的規則了。
規則一、出錯的標籤視覺區分對待 (變紅)[+27] 。
規則二、按下提交按鈕後再驗證並作出可能的反饋 [+28] 。
輸入域少,就兩三個,沒有定位的大問題,在輸入過程中,切換輸入域的過程中,所有的正確與否的干擾我都不希望出現。
規則三、徹底解決完一項輸入,再去下一項 [+29] 。
什麼意思呢? 多數做法是,提交時先針對某一類問題全域性檢查一遍,比如是否為空,等都不為空了,再對下一類問題檢查一遍,比如格式。這樣的結果就是多用户可能因為一類問題,填完一遍表單,又因為另一類問題,從頭到尾來多一遍,整個過程在多個輸入項之間來回切換。而我不想讓切換這個事情導致多用户焦點來回,於是,就做了這麼一個決定。先驗證個輸入域,比如這裏的 “驗證碼”,一定是驗證碼不為空且正確了,才開始提示下一項 “密碼”,也就是:
四、細節設計,註冊第 3 步 (基本資料)
預設狀態設計如下:
三個控制組件是輸入框、單選按鈕和時間選擇器。
暱稱作為比較靈活的輸入欄位,我們想給多用户大的自由,也就是 “隨便” 輸入 [+30],想來想去,實在想不出為什麼要限制字數什麼的,以後多用户自然會根據暱稱顯示的效果決定改成什麼名字。為什麼前面的 “隨便” 要加雙引號,因為不是真的隨便輸入,總不能讓您貼上一篇文章來當暱稱吧,服務器還要裝暱稱,load 暱稱出來還要頻寬,其實這裏默默地限制了 100 個漢字/200 個字元,當輸入溢位,輸入框就會輸入不了。但這一切,對於絕大多數多用户來説,是透明的 [+31] 。對了,原版本的提示文字 “輸入暱稱是為了……” 直接廢掉,您會閲讀這種文字嗎?
性別是單選,一般就是提供兩個選項 (也有 3 個的。。。),為了讓註冊過程有意思一點點,也好辨認一點點,用圖示代替了文字選項,其實這裏抄了忘記是哪個應用的 [+32] 。
生日是撥出時間選擇控制組件,貌似沒什麼好考慮的,有看過用輸入代替選擇的,確實是不用滾動那麼麻煩,但看上去複雜,就放棄了 [+33] 。
後這三個按鈕都是必填,原版本的設計是,為了高效,預設選擇了性別和生日,多用户直接填個暱稱,就能提交了,但這樣 “必填” 就沒意義了,因為將得到一堆無意義的性別和生日。於是預設全部不選 [+34] 。
按鈕標籤是 “完成”,因為這是後一步了 [+35] 。
輸入狀態設計如下:
暱稱是中文鍵盤,右下角按鈕用中文 “完成”,點選是關閉鍵盤 [+36] 。
性別單擊選擇,這裏有一個運營規則,性別以後不能再改了。於是在選擇後有這麼一個動態提示 “此後不可更改” 出現在右側。為什麼預設不顯示,預設顯示介面複雜度多一分,且可能沒人看 [+37] 。單擊後以動態的方式出現,從無到有且帶動作,多用户的眼神就能被吸引過去 [+38] 。
反饋狀態設計如下:
暱稱沒限制,性別和生日的控制組件又天然限制,所以沒有出錯提示,只有空值提示,依然採用標籤標紅,從上到下逐個解決的提示規則,提示設計為 [+39]:
因為是後一步,有一個提交的過程需要緩緩,於是需要一個提示 [+40],提示的組成元素用了我們系統的標準元素,就不做解釋,想説的是文字,不是 “註冊中”,而是多用户的暱稱,讓新多用户感受一絲關懷吧 [+41] 。然後,因為剛才的暱稱輸入是沒有限制的,而我們的標準控制組件有所限制,所以可能超量溢位,對於太長暱稱的多用户,只好省略號啦 [+42],根據我們對存量多用户的暱稱觀察,這裏被省略號的機率並不高。
四、其他補充
註冊流程還沒有走完,還差後一步,就是提交後到達哪裏 [+43] 。註冊介面原本設定的觸發時刻是 “次啓動應用撥出” 或者 “非登入狀態使用過程中撥出”,所以結論是在哪裏撥出,註冊後就回到哪裏,延續使用場景。
另外,漏講了一件事,所有視窗的轉場動畫 (進入方式)[+44] 。從簡處理,就是各種橫滑,遵循臨時視窗上下滑、層級之間左右滑的規律。也就是步的介面從螢幕下方向上覆蓋原介面滑出,第二、三步就從右邊滑進來推走原介面,後提交後,介面向螢幕下方滑出。
另另外,關於輸入時鍵盤遮擋的問題也考慮了 [+45],設計時刻意把內容往螢幕上半部分佈局,基本不會出現鍵盤遮擋現象。如果萬一真的遮擋了,在遮擋時是允許介面上下滑動的,滑動時鍵盤不隱藏,這一招也只對第二步填密碼或者按註冊按鈕有效,第三步的後兩個輸入項是單選,完成時控制組件早已消失,不可能遮擋。
另另另外,還有兩個註冊外部介面,但也作為流程的一部分被設計。先是步時的協議詳情,臨時視窗,點選從下方滑進就好 [+46] 。另外一個是簡訊驗證碼的內容,從簡設計為 “[WordPress APP 名稱] 驗證碼 22222,十分鐘有效”,十分鐘的 “十” 特意使用中文,避免跟前面的驗證碼阿拉伯數字混淆 [+47] 。
以上就是整個過程的全部設計點,設計的時候當然想過更多的解決方案,自己一邊發散一邊收斂,後出來原型再跟 PM 過一遍,再修改,終定稿。
終效果如何,還得持續觀察,這也不是問題的答案,我想説的只是,把細節一遍遍打磨,打磨到自然,正是設計的樂趣所在而已。