優(yōu)化移動(dòng)應(yīng)用性能的開(kāi)發(fā)者指南
譯文【51CTO.com快譯】
如今,隨著智能手機(jī)的普及,各種安裝在手機(jī)上的應(yīng)用程序,讓人們的日常生活與各項(xiàng)活動(dòng)變得越來(lái)越輕松。從為自己的出行預(yù)訂出租車(chē),到在心儀的餐廳處訂購(gòu)餐食,移動(dòng)應(yīng)用已經(jīng)給我們帶來(lái)了前所未有的便捷與高效。我們很難想象自己是否能夠堅(jiān)持在一天之內(nèi),完全不去觸碰手機(jī),或開(kāi)啟任何一款移動(dòng)應(yīng)用。
移動(dòng)應(yīng)用的優(yōu)化勢(shì)在必行
由于人們時(shí)常需要用到各種移動(dòng)應(yīng)用,而且期望它們能夠?qū)崿F(xiàn)過(guò)去無(wú)法快速完成的功能,因此應(yīng)用的整體性能是至關(guān)重要的。一直以來(lái),各個(gè)領(lǐng)域的開(kāi)發(fā)人員都持續(xù)著眼于,各類(lèi)應(yīng)用在運(yùn)行性能和響應(yīng)效率上的不斷優(yōu)化與提升。
試想一下,一個(gè)用戶(hù)興沖沖地拿起手機(jī),進(jìn)入某個(gè)訂餐應(yīng)用,將“炸雞+啤酒”放入購(gòu)物車(chē)后,卻發(fā)現(xiàn)該應(yīng)用需要長(zhǎng)時(shí)間等待才能完成支付動(dòng)作,甚至根本無(wú)法下單。那么,他還會(huì)下次使用這款應(yīng)用嗎?他還會(huì)將這款應(yīng)用保留在手機(jī)里嗎?可見(jiàn),用戶(hù)對(duì)于移動(dòng)應(yīng)用的使用體驗(yàn),會(huì)直接與用戶(hù)留存率(user retention)掛鉤。
此外,除了提供基本功能,簡(jiǎn)單易用的導(dǎo)航欄和協(xié)調(diào)友好的界面,也能夠流暢地連接用戶(hù)與后端服務(wù)提供商,讓用戶(hù)及時(shí)獲取他們所需的信息與結(jié)果??梢?jiàn),移動(dòng)應(yīng)用同時(shí)也起到了良好的橋梁作用。
那么,有哪些因素會(huì)影響到我們對(duì)移動(dòng)應(yīng)用的優(yōu)化呢?總的說(shuō)來(lái),有如下三個(gè)方面值得開(kāi)發(fā)人員密切注意:
1.用戶(hù)期望
一直以來(lái),我們都需要認(rèn)識(shí)到:開(kāi)發(fā)移動(dòng)應(yīng)用,并不是單純地“秀技術(shù)”,而必須充分考慮到服務(wù)的客戶(hù)。不過(guò),正所謂:知易行難,在整個(gè)開(kāi)發(fā)的過(guò)程中,我們的確需要將用戶(hù),視為影響開(kāi)發(fā)進(jìn)程的主要因素。例如:在使用移動(dòng)應(yīng)用時(shí),人們往往希望其用戶(hù)界面不但容易上手,而且穩(wěn)定無(wú)閃退。這就是我們做移動(dòng)應(yīng)用開(kāi)發(fā)的“初心”。
2.適應(yīng)性
移動(dòng)應(yīng)用的本質(zhì)是方便用戶(hù)能夠利用碎片化的時(shí)間,隨時(shí)隨地與服務(wù)提供商交互,并獲取相應(yīng)的服務(wù)。不過(guò),手機(jī)所處的移動(dòng)蜂窩網(wǎng)絡(luò)畢竟不如Wi-Fi或有線(xiàn)網(wǎng)絡(luò)那么可靠。不同區(qū)域覆蓋的范圍與頻段也不盡相同。因此,作為開(kāi)發(fā)人員,我們必須確保自己的應(yīng)用能夠適應(yīng)不同的網(wǎng)絡(luò)類(lèi)型與狀態(tài),特別是在失去網(wǎng)絡(luò)連接時(shí)候,也能夠緩存用戶(hù)的數(shù)據(jù),讓他們能夠持續(xù)使用該應(yīng)用,以完成移動(dòng)端本地的各項(xiàng)操作。
3.避免用戶(hù)流失
正如前文所述,如果用戶(hù)在使用您的移動(dòng)應(yīng)用時(shí),不滿(mǎn)意他們的體驗(yàn),那么他們是不會(huì)成為“回頭客”的。因此在開(kāi)發(fā)時(shí),與用戶(hù)保持溝通,并及時(shí)通過(guò)測(cè)試和試用的方式,從用戶(hù)處獲取反饋,要比單純地從論壇社區(qū)中獲得“一面之詞”,更為直接和全面。
那么,我們到底該如何優(yōu)化移動(dòng)應(yīng)用的性能,以發(fā)揮移動(dòng)應(yīng)用的業(yè)務(wù)平臺(tái)作用,并讓用戶(hù)只需幾次觸按,即可獲得需要的服務(wù)?
1.專(zhuān)注于用戶(hù)界面
用戶(hù)界面的優(yōu)劣,實(shí)際上與該應(yīng)用在移動(dòng)終端屏幕上的顯示效果關(guān)系不大。它主要取決于用戶(hù)在使用時(shí)的方便程度。前面我們提到了與用戶(hù)溝通,獲悉他們對(duì)于待開(kāi)發(fā)應(yīng)用的期望,特別是界面中導(dǎo)航欄、菜單條、以及單手操作時(shí)的按鈕布局。
試想一下:當(dāng)用戶(hù)甚至都無(wú)法輕松地找到某個(gè)按鈕或功能時(shí),他還會(huì)為您的設(shè)計(jì)與開(kāi)發(fā)“點(diǎn)贊”嗎?可見(jiàn),專(zhuān)注于用戶(hù)界面并使其易用,是移動(dòng)應(yīng)用開(kāi)發(fā)人員和優(yōu)化人員的首要任務(wù)。
2.提高應(yīng)用的可用性
正如前文所述,大多數(shù)移動(dòng)應(yīng)用的使用場(chǎng)景發(fā)生在用戶(hù)行動(dòng)過(guò)程中。因此,移動(dòng)網(wǎng)絡(luò)的可用性往往無(wú)法得到充分的保證。試想一下,在用戶(hù)處于網(wǎng)絡(luò)覆蓋較差的區(qū)域中使用著您開(kāi)發(fā)的應(yīng)用,并且碰到了一定的阻礙。而此時(shí)他的手機(jī)上正好有能夠?qū)崿F(xiàn)相似功能的應(yīng)用(如另一個(gè)電商平臺(tái))。那么只要那款應(yīng)用的離線(xiàn)性能比您開(kāi)發(fā)的要優(yōu)秀一點(diǎn)。該用戶(hù)肯定會(huì)毫不猶豫地切換過(guò)去,盡管對(duì)方可能在服務(wù)價(jià)位上略高一些。
因此,作為開(kāi)發(fā)人員,您不但需要確保自己開(kāi)發(fā)的移動(dòng)應(yīng)用能夠流暢地運(yùn)行在3G、4G、以及5G網(wǎng)絡(luò)中,而且能夠在網(wǎng)絡(luò)不佳時(shí),持續(xù)提供本地的緩存服務(wù)。
3.使用分析工具進(jìn)行監(jiān)控
保持在與用戶(hù)交互時(shí)的一致性檢查是非常重要的。由于用戶(hù)所使用的移動(dòng)設(shè)備在品牌、系統(tǒng)(如iOS或Android)、以及類(lèi)型上的不同,您所開(kāi)發(fā)出的應(yīng)用可能在顯示效果上有所差異,甚至?xí)o(wú)法正常地運(yùn)行或被使用。此時(shí),您需要采用某種恰當(dāng)?shù)姆治龉ぞ撸ㄟ^(guò)監(jiān)控和跟蹤應(yīng)用的各項(xiàng)服務(wù)和出現(xiàn)的功能性故障,以發(fā)掘出那些直接、或間接影響程序正常顯示、運(yùn)行、甚至是崩潰的深層原因。在此基礎(chǔ)上,整個(gè)團(tuán)隊(duì)可以通過(guò)代碼的調(diào)試,來(lái)及時(shí)修改程序,進(jìn)而在應(yīng)用發(fā)布之前解決掉此類(lèi)兼容性問(wèn)題。
4.測(cè)試與試用
對(duì)于完成了開(kāi)發(fā)任務(wù)的移動(dòng)應(yīng)用而言,我們需要進(jìn)行功能與性能方面的測(cè)試與試用,方可交付或分發(fā)給最終用戶(hù)。
由于移動(dòng)設(shè)備帶來(lái)了更多的不定因素,因此,我們需要采用更加嚴(yán)格的標(biāo)準(zhǔn),來(lái)進(jìn)行測(cè)試,以便在最困難或“最差”的環(huán)境中,評(píng)估目標(biāo)應(yīng)用的可用性和可控性。當(dāng)然,您也可以根據(jù)DevOps的思想,將此類(lèi)測(cè)試“左移”到開(kāi)發(fā)迭代的階段,并持續(xù)開(kāi)展藍(lán)綠測(cè)試。
5.檢查應(yīng)用的運(yùn)行效率
在用戶(hù)的智能手機(jī)上,各種應(yīng)用的不同版本往往會(huì)同時(shí)運(yùn)行。因此,開(kāi)發(fā)人員需要通過(guò)運(yùn)行效率的檢查,以保證它能夠與其他各種應(yīng)用工具和設(shè)備相兼容。此外,我們還需要考慮應(yīng)用在長(zhǎng)時(shí)間運(yùn)行時(shí),用到的移動(dòng)設(shè)備內(nèi)存是否會(huì)及時(shí)釋放,以及對(duì)于手機(jī)電池的消耗等方面的問(wèn)題。
總結(jié)
上述五點(diǎn)建議,看似稀松平常,卻往往是我們作為開(kāi)發(fā)人員容易忽略的用戶(hù)關(guān)注點(diǎn)。希望您和團(tuán)隊(duì)成員在開(kāi)發(fā)復(fù)雜的移動(dòng)應(yīng)用時(shí),能夠時(shí)常踐行上述建議,開(kāi)發(fā)和優(yōu)化出獨(dú)立于移動(dòng)設(shè)備,且能夠讓用戶(hù)滿(mǎn)意的軟件產(chǎn)品。
原標(biāo)題:A Developer's Guide to Optimizing Mobile App Performance 作者: Aman T
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】