如何從程序開發(fā)角度做產(chǎn)品的用戶體驗(yàn)?
本篇文章從緩存、加載、數(shù)據(jù)上傳三個(gè)方面闡述如何如何從程序開發(fā)角度做產(chǎn)品的用戶體驗(yàn)(針對(duì)App)。
用戶體驗(yàn)指的是用戶在使用產(chǎn)品、服務(wù)、系統(tǒng)時(shí)的主觀感受。其中主觀感受就是用戶在使用產(chǎn)品、服務(wù)、系統(tǒng)時(shí)的感觸、意識(shí)和情緒。所以好的用戶體驗(yàn)涉及到整個(gè)產(chǎn)品的各個(gè)方面,包括程序開發(fā)的實(shí)現(xiàn)。
所以好的用戶體驗(yàn)設(shè)計(jì)師,不僅僅只關(guān)注界面架構(gòu)、界面布局、界面流程和美觀度,還要考慮程序的實(shí)現(xiàn)機(jī)制。通過(guò)科學(xué)合理的程序機(jī)制可以讓整個(gè)產(chǎn)品的用戶體驗(yàn)更好。
本篇文章從緩存、加載、數(shù)據(jù)上傳三個(gè)方面闡述如何如何從程序開發(fā)角度做產(chǎn)品的用戶體驗(yàn)(針對(duì)App)。
一.緩存
什么是緩存?
APP中顯示的數(shù)據(jù)除了從服務(wù)器即時(shí)加載之外,還可以從服務(wù)端提前獲取數(shù)據(jù)來(lái)源,加載到本地?cái)?shù)據(jù)庫(kù)。這一過(guò)程稱為緩存。
緩存機(jī)制可分為兩種類型
(1)臨時(shí)緩存
臨時(shí)緩存常用于一個(gè)功能頁(yè)面內(nèi),保存各欄目的緩存。同一個(gè)功能里會(huì)把子功能分為多個(gè)欄目進(jìn)行劃分,每個(gè)標(biāo)簽欄目下的內(nèi)容在本次使用中都可保存為臨時(shí)緩存,在該功能里切換欄目,不需要重新加載數(shù)據(jù),使用緩存顯示。
對(duì)于用戶來(lái)說(shuō),使用時(shí)達(dá)到了無(wú)縫切換瀏覽,對(duì)于服務(wù)器來(lái)說(shuō),在短時(shí)間內(nèi)數(shù)據(jù)很少會(huì)有更新,所以在一般情況下能滿足用戶的正常需求,并達(dá)到體驗(yàn)優(yōu)秀。
臨時(shí)緩存的清理機(jī)制是:退出該功能模塊就清除之前的緩存。也就是說(shuō)下次進(jìn)入該功能模塊,需要重新獲取一次數(shù)據(jù)。
很多時(shí)候我們都會(huì)用到臨時(shí)緩存,因?yàn)槟切┬畔⒄娴牟皇悄敲粗匾?,而且不需要?jīng)常反復(fù)查看,那對(duì)于那些我們經(jīng)常使用而且經(jīng)常需要反復(fù)查看的信息,建議采取固定緩存,保存在本地,方便下次翻閱時(shí)不需要再一次向服務(wù)器請(qǐng)求數(shù)據(jù)了。
(2)固定緩存
固定緩存又會(huì)細(xì)分為可手動(dòng)清理的緩存和不可手動(dòng)清理的緩存。
第一種是我們最常見(jiàn)的緩存,幾乎所有產(chǎn)品都采用這種緩存方式。平時(shí)用戶瀏覽文章、圖集加載的數(shù)據(jù)就以這種形式緩存在本地,下次看回這篇文章、圖集時(shí)就不需要加載了。用戶也可以手動(dòng)把這些緩存清理了,釋放空間。
而對(duì)于某些特殊場(chǎng)景,例如一些相對(duì)固定的數(shù)據(jù),我們不愿意一開始就打包進(jìn)App里,這樣會(huì)占太大容量,造成產(chǎn)品包很大,也不愿意每次進(jìn)入頁(yè)面都向服務(wù)器加載這些信息,那怎么辦?建議的解決方法就是我們可以只加載一次就永遠(yuǎn)存在本地了,這樣安裝包也不會(huì)大,以后也不用加載了。
為什么要設(shè)計(jì)緩存機(jī)制?
1.在向服務(wù)器請(qǐng)求新的數(shù)據(jù)時(shí)。
如果不做緩存機(jī)制的話,那么用戶看到的是等待加載頁(yè)面。如果做緩存機(jī)制的話,用戶可以對(duì)頁(yè)面進(jìn)行操作,等待新數(shù)據(jù)時(shí)可以查看舊數(shù)據(jù),更具有“可操作性”與“可用性”,從而減輕了從服務(wù)器獲取數(shù)據(jù)這一動(dòng)作的大小和時(shí)間長(zhǎng)短,增強(qiáng)了用戶體驗(yàn)。另一方面,如果內(nèi)容更新的間隔較長(zhǎng)或者用戶刷新的間隔較短,在沒(méi)有緩存的情況下,很多數(shù)據(jù)我們會(huì)多次重復(fù)的向服務(wù)器獲取,增加了成本。
2.沒(méi)有聯(lián)網(wǎng)或者在地鐵上網(wǎng)絡(luò)太差無(wú)法加載數(shù)據(jù)時(shí),如果留給用戶一個(gè)空白頁(yè)面,給用戶的感覺(jué)很不好。
并且很多功能在沒(méi)有聯(lián)網(wǎng)的情況下也有使用的可能性,比如:APP中的通訊錄,查看一些聊天記錄,通知信息,文章列表等。因?yàn)橛脩舸蜷_APP不一定是要看新信息,說(shuō)不定是回顧老信息(或許老信息里也有用戶之前沒(méi)看的),所以恰當(dāng)?shù)木彺婵梢詽M足更多的用戶場(chǎng)景。
如何清理緩存?
一般App都會(huì)在“設(shè)置”里提供一個(gè)清理緩存的功能,一鍵把空間釋放。除此之外,App最好要設(shè)計(jì)自動(dòng)清理機(jī)制,可以通過(guò)兩個(gè)維度來(lái)設(shè)計(jì)這個(gè)機(jī)制。
時(shí)間:通過(guò)設(shè)定一個(gè)固定的時(shí)間,或者根據(jù)用戶使用周期靈活設(shè)定時(shí)間來(lái)清理緩存。每個(gè)產(chǎn)品的場(chǎng)景不一,用戶使用頻率不一,設(shè)定這個(gè)機(jī)制的時(shí)候就需要結(jié)合實(shí)際情況考慮了。
容量:一般是設(shè)定一個(gè)容量上限,采用堆棧的設(shè)計(jì)原理進(jìn)行緩存清理,溢出堆棧的舊數(shù)據(jù)將自動(dòng)清除
二.加載
什么是加載?
用戶在客戶端的界面上進(jìn)行操作,客戶端發(fā)送請(qǐng)求到服務(wù)器,服務(wù)器處理請(qǐng)求,返回?cái)?shù)據(jù)給客戶端,并顯示給用戶。這一過(guò)程成為加載。區(qū)別于緩存,緩存是主動(dòng)的,加載為被動(dòng)的。
加載分為哪幾種類型?
1.全屏加載
這種加載比較簡(jiǎn)單,一般運(yùn)用在頁(yè)面內(nèi)容比較單一的情況下,所以直接一次性加載完所有數(shù)據(jù)后再顯示內(nèi)容。
2.分步加載
當(dāng)有文字和圖片時(shí),圖片會(huì)比文字加載的慢,這個(gè)時(shí)候往往文字先加載出來(lái),圖片在加載過(guò)程中使用占位符,直到圖片加載成功。當(dāng)加載的頁(yè)面內(nèi)容有固定的框架時(shí),可以先加載框架,再加載框架內(nèi)的內(nèi)容。通過(guò)先加載頁(yè)面框架,設(shè)計(jì)占位符等形式可以提前讓用戶知道整個(gè)界面的架構(gòu),提高產(chǎn)品體驗(yàn)。
3.下拉加載
用戶下拉時(shí),出現(xiàn)loading動(dòng)畫,對(duì)整個(gè)頁(yè)面的重新加載刷新?,F(xiàn)在很多的產(chǎn)品重新設(shè)計(jì)loading加載動(dòng)畫,使得加載過(guò)程更加具有情感化,人性化和品牌化。
4.上拉加載
用戶在瀏覽界面的過(guò)程中,對(duì)于未加載的信息,上拉過(guò)程中自動(dòng)加載。
5.預(yù)加載
當(dāng)用戶在停留一個(gè)界面時(shí)候,將對(duì)應(yīng)當(dāng)前界面通向下一界面的所有信息都加載出來(lái)。使用這個(gè)加載方式會(huì)使得使用過(guò)程中很快減少時(shí)間等待。但在非WiFi情況下會(huì)浪費(fèi)大量的流量。
6.智能加載
根據(jù)用戶的網(wǎng)絡(luò)情況,加載不同質(zhì)量的圖片內(nèi)容。例如在WiFi情況下,加載出來(lái)的圖片是高清,在非WiFi情況下加載出來(lái)的圖片是標(biāo)清的。
三.數(shù)據(jù)上傳
用戶操作的狀態(tài)和數(shù)據(jù)需要上傳到服務(wù)器,在上傳過(guò)程中,一般需要一個(gè)過(guò)程。在這個(gè)過(guò)程中,優(yōu)秀的設(shè)計(jì)方案可以給用戶很好的用戶體驗(yàn)。
對(duì)于數(shù)據(jù)后臺(tái)上傳的過(guò)程設(shè)計(jì)常見(jiàn)的優(yōu)秀方案有:
1.操作過(guò)程中,后臺(tái)同步上傳。
不在最后提交后統(tǒng)一提交服務(wù)端,這樣的話需要較長(zhǎng)時(shí)間,影響用戶體驗(yàn)。例如在微信發(fā)語(yǔ)音時(shí),在說(shuō)語(yǔ)音過(guò)程中,后臺(tái)已經(jīng)在同步提交數(shù)據(jù)了。這樣使得整個(gè)操作流程更順暢快速。
2.假數(shù)據(jù)顯示,后臺(tái)上傳前端不展示。
例如微信發(fā)朋友圈即使斷網(wǎng)情況下,當(dāng)用戶在點(diǎn)擊發(fā)送時(shí),朋友圈立刻就顯示數(shù)據(jù),給用戶反饋是動(dòng)態(tài)發(fā)送成功,其實(shí)是假數(shù)據(jù)顯示,在這個(gè)時(shí)候后臺(tái)還在上傳。斷網(wǎng)場(chǎng)景極少,朋友圈這個(gè)設(shè)計(jì)滿足絕大部分用戶的操作順暢,用戶體驗(yàn)良好。不為了極少數(shù)使用場(chǎng)景而做真數(shù)據(jù)展示給用戶,那樣的話給絕大部分用戶感覺(jué)加載過(guò)慢導(dǎo)致不好的體驗(yàn)。
上述緩存、加載、數(shù)據(jù)三類可以覆蓋做產(chǎn)品設(shè)計(jì)場(chǎng)景80%以上。這三類的也是設(shè)計(jì)師應(yīng)該了解并掌握的。
作者:UX,華為ITUX交互組組長(zhǎng) ?微信公眾號(hào):UEDC
本文由 @UX 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
強(qiáng)
感謝分享,有收獲
感謝分享,有收獲??
??