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