齊京
摘 要:通過開發(fā)iPhone卡通書項(xiàng)目,將iPhone手機(jī)軟件開發(fā)的相關(guān)技能貫穿其中,一方面針對(duì)“蘋果”移動(dòng)終端的開發(fā)技術(shù)和能力積累相關(guān)經(jīng)驗(yàn),另一方面培養(yǎng)創(chuàng)新思維,強(qiáng)調(diào)創(chuàng)新精神在iPhone手機(jī)軟件中至關(guān)重要的作用。iPhone開發(fā)者面對(duì)的是不斷更新的用戶需求,沒有創(chuàng)新思維,只能淪為iPhone手機(jī)軟件開發(fā)機(jī)器,遲早會(huì)被淘汰。本文介紹了開發(fā)iPhone卡通書應(yīng)用程序的過程和一些體會(huì)。
關(guān)鍵詞:卡通書用戶體驗(yàn)移動(dòng)終端設(shè)備
中圖分類號(hào):F416.63 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2012)06(a)-0021-02
1 工程背景
iPhone手機(jī)軟件開發(fā)代表了未來開發(fā)領(lǐng)域的新方向,是當(dāng)下軟件開發(fā)領(lǐng)域炙手可熱的話題,特別是年輕人對(duì)開發(fā)和使用“蘋果”產(chǎn)品給予了極大的關(guān)注。據(jù)艾瑞網(wǎng)2011年6月iOS應(yīng)用數(shù)據(jù)報(bào)告數(shù)據(jù)顯示,全球共銷售iOS設(shè)備(包括iPhone、iPad和iPod touch)總數(shù)已達(dá)2億部。智能手機(jī)作為下一代互聯(lián)網(wǎng)的終端接入設(shè)備已經(jīng)成為大勢所趨,移動(dòng)互聯(lián)網(wǎng)應(yīng)用將會(huì)比現(xiàn)在的互聯(lián)網(wǎng)應(yīng)用更加普及和豐富多彩,給用戶提供更加便捷的服務(wù)?!碧O果”公司的App Store銷售模式,更是在軟件銷售渠道上進(jìn)行了偉大的變革,極大地縮短了從iPhone手機(jī)軟件開發(fā)人員到軟件最終用戶的銷售環(huán)節(jié),為iPhone手機(jī)軟件開發(fā)人員和用戶及”蘋果”公司都帶來了利益,使得大批軟件開發(fā)人員紛紛投身其中,更為學(xué)校的教學(xué)提供了素材?;谶@一市場現(xiàn)狀,我們選用面向iPhone的“卡通書”項(xiàng)目?!翱ㄍ〞奔瘖蕵沸院蛯?shí)用性于一身,卡通書的屏幕顯示卡通畫、漫畫,伴隨聲音講解或字幕顯示,通過手指在屏幕上滑動(dòng)來翻頁。卡通書的內(nèi)容可以通過服務(wù)器不斷更新。同時(shí)滿足幼兒教育、休閑娛樂等多種層次的需求,真正做到寓教于樂、老少咸宜,使得iPhone這一集合了照相、個(gè)人數(shù)碼助理、媒體播放以及無線通信設(shè)備等多姿多彩的商務(wù)、娛樂功能更加豐富。
2 技術(shù)要求
2.1 項(xiàng)目準(zhǔn)備
特別要強(qiáng)調(diào)的是,基于“蘋果”產(chǎn)品的軟件和“蘋果”產(chǎn)品本身一樣,有其獨(dú)特的風(fēng)格和魅力,這一切來源于“蘋果”公司個(gè)性鮮明的文化精髓和創(chuàng)新精神。因此在iPhone或與“蘋果”有關(guān)的項(xiàng)目中,倡導(dǎo)創(chuàng)新精神,貫徹這一文化精髓的重要性與掌握技術(shù)同樣重要。這種重要性從項(xiàng)目組成立之初,直至項(xiàng)目完成都不應(yīng)有所變化。
2.2 軟件環(huán)境的安裝和配置
iPhone項(xiàng)目主要運(yùn)行于Mac OS系統(tǒng),區(qū)別于多數(shù)基于Windows環(huán)境的應(yīng)用程序。所以這一任務(wù)首先要安裝Mac OS系統(tǒng)環(huán)境,然后安裝iPhone SDK。也可以采用其他開發(fā)框架,本案例主要針對(duì)“蘋果”的典型環(huán)境做設(shè)計(jì)。
2.3 卡通書的設(shè)計(jì)和開發(fā)
在分析基于iPhone的成功休閑娛樂項(xiàng)目的基礎(chǔ)上,完成對(duì)《卡通書》項(xiàng)目的策劃和創(chuàng)意,完成總體結(jié)構(gòu)和功能細(xì)節(jié)設(shè)計(jì)。在熟悉iPhone開發(fā)環(huán)境的基礎(chǔ)上,掌握iPhone應(yīng)用程序各組成部分的功能作用,明確iPhone生命周期的各個(gè)狀態(tài)及其變化關(guān)系對(duì)手機(jī)應(yīng)用程序的影響,運(yùn)用合適的iPhone資源完成手機(jī)應(yīng)用程序的開發(fā)。
2.4 卡通書的項(xiàng)目測試
對(duì)于iPhone項(xiàng)目來說,通常采用黑盒測試的方法。除常規(guī)黑盒測試之外,iPhone項(xiàng)目比較注重基于經(jīng)驗(yàn)的現(xiàn)場測試,還有一些測試準(zhǔn)則和性能評(píng)測的內(nèi)容,都是移動(dòng)終端項(xiàng)目通常要考慮的。
3 解決方案
3.1 卡通書的設(shè)計(jì)和開發(fā)
3.1.1 項(xiàng)目架構(gòu)
本案例包括后臺(tái)服務(wù)器、web服務(wù)器、無線網(wǎng)絡(luò)、iPhone卡通書客戶端幾個(gè)部分。后臺(tái)服務(wù)器采用Tomcat,網(wǎng)絡(luò)通信采用Apache HTTP協(xié)議客戶端,中間Web服務(wù)器采用Servlet響應(yīng)客戶端請(qǐng)求,iPhone客戶端采用Objective-C編程語言進(jìn)行開發(fā)。如圖1所示??蛻舳藢?shí)現(xiàn)卡通書的功能,服務(wù)端主要用于內(nèi)容更新和升級(jí)。服務(wù)端的開發(fā)主要用到Java技術(shù),本案例中不涉及。
3.1.2 工作流程
iPhone的項(xiàng)目有其獨(dú)特的工作流程和測試方式。完整工作流程如(圖2)所示。
3.1.3 界面設(shè)計(jì)
卡通書是支持圖片格式的手機(jī)終端軟件。它借助便攜式移動(dòng)通信設(shè)備,專為閱讀圖片設(shè)計(jì)。它使用手機(jī)屏幕顯示圖片并播放聲音,采用動(dòng)畫翻頁技術(shù),并可以從互聯(lián)網(wǎng)上下載數(shù)字化圖片集??ㄍ〞銛y、容易使用、大容量的特點(diǎn)非常適合現(xiàn)代生活,數(shù)字版權(quán)貿(mào)易和互聯(lián)網(wǎng)技術(shù)的發(fā)展,使卡通書的用戶可以方便閱讀更多的圖書,為卡通書的流行奠定了基礎(chǔ)??ㄍ〞倪壿嫻δ懿⒉粡?fù)雜,界面流程、功能相對(duì)比較清晰。在起始界面主屏幕中點(diǎn)擊“卡通”圖標(biāo),進(jìn)入卡通書列表。在列表中選擇感興趣的卡通書,經(jīng)過一個(gè)等待畫面,就會(huì)進(jìn)入程序運(yùn)行的瀏覽界面,界面變化流程如圖3(a)、(b)、(c)所示。應(yīng)用程序運(yùn)行后,一屏接一屏都是卡通圖片,每張圖片都配有聲音。從右向左滑動(dòng),向右翻片,從左向右滑動(dòng),向左翻片。全屏有一個(gè)大的按鈕,設(shè)置成為透明的,手觸屏幕任何地方都可以翻頁。翻頁具有動(dòng)畫效果。
3.1.4注重未來的程序性能
(1)有效地使用內(nèi)存。由于iPhone OS的虛存模型并不包含磁盤交換區(qū)空間,所以應(yīng)用程序在更大程度上受限于可供使用的內(nèi)存。對(duì)內(nèi)存的大量使用會(huì)嚴(yán)重降低系統(tǒng)的性能,可能導(dǎo)致應(yīng)用程序被終止。因此,在設(shè)計(jì)階段就應(yīng)該把減少應(yīng)用程序的內(nèi)存開銷放在較高優(yōu)先級(jí)上。應(yīng)用程序的可用內(nèi)存和相對(duì)性能之間有直接的聯(lián)系??捎脙?nèi)存越少,系統(tǒng)在處理未來的內(nèi)存請(qǐng)求時(shí)就越可能出問題。如果發(fā)生這種情況,系統(tǒng)總是先把代碼頁和其它非易失性資源從內(nèi)存中移除。但是,這可能只是暫時(shí)的修復(fù),特別是當(dāng)系統(tǒng)在短時(shí)間后又再次需要那些資源的時(shí)候。相反,需要盡可能使內(nèi)存開銷最小化,并及時(shí)清除使用的內(nèi)存。合理使用內(nèi)存。iPhone應(yīng)用程序使用委托內(nèi)存模式,因此,必須顯式保持和釋放內(nèi)存,減少自動(dòng)釋放對(duì)象的使用。通過autorelease方法釋放的對(duì)象會(huì)留在內(nèi)存中,直到顯式清理自動(dòng)釋放池或者程序再次回到事件循環(huán)。在任何可能的時(shí)候,應(yīng)避免使用autorelease方法,而是通過release方法立即收回對(duì)象占用的空間。如果必須創(chuàng)建一定數(shù)量的自動(dòng)釋放對(duì)象,則一定記住創(chuàng)建局部的自動(dòng)釋放池,以便在返回事件循環(huán)之前定期對(duì)其進(jìn)行清理,回收那些對(duì)象的內(nèi)存。
(2)減少電力消耗。移動(dòng)設(shè)備的電力消耗一直是個(gè)問題。iPhone OS的電能管理系統(tǒng)保持電能的方法是關(guān)閉當(dāng)前未被使用的硬件功能。此外,要避免CPU密集型和高圖形幀率的操作。優(yōu)化目標(biāo)應(yīng)該是以盡可能有效的方式完成大多數(shù)的工作。應(yīng)該總是采用Instruments和Shark工具對(duì)應(yīng)用程序的算法進(jìn)行優(yōu)化。但是,很重要的一點(diǎn)是要知道,即使最優(yōu)化的算法也可能對(duì)設(shè)備的電池壽命造成負(fù)面影響。
3.1.5 忠實(shí)貫徹“蘋果”的產(chǎn)品設(shè)計(jì)思想
“蘋果”的產(chǎn)品強(qiáng)調(diào)“體驗(yàn)第一,產(chǎn)品第二”的思想。IT產(chǎn)業(yè)的生命周期相對(duì)較短,人才、技術(shù)和產(chǎn)品的更新迅速。微軟模式是技術(shù)不斷升級(jí),IBM的模式是服務(wù)不斷升級(jí),而“蘋果”采用的是用戶體驗(yàn)升級(jí)的模式,在設(shè)計(jì)中不斷強(qiáng)調(diào)更簡潔的設(shè)計(jì)、更友好的用戶界面、更方便的使用場景、更為高雅的外觀和更為舒適尊貴的持有感。當(dāng)產(chǎn)品能夠調(diào)動(dòng)消費(fèi)者的情感時(shí),對(duì)于產(chǎn)品的需求自然而然地產(chǎn)生,基于情感的多樣性和復(fù)雜性,這種需求成為具有唯一性的需求,這種產(chǎn)品也就成為了最具差異化、個(gè)性化的產(chǎn)品。因此,在項(xiàng)目設(shè)計(jì)過程中,要強(qiáng)調(diào)設(shè)計(jì)的思想,強(qiáng)調(diào)每做一件事首先要考慮使用者,強(qiáng)調(diào)一再追求最佳效果,強(qiáng)調(diào)用戶體驗(yàn)。研究用戶體驗(yàn)和升級(jí)用戶體驗(yàn),首先要對(duì)現(xiàn)有體驗(yàn)充分進(jìn)行分析,以此為基礎(chǔ)逐步培養(yǎng)對(duì)于用戶的洞察力??梢酝ㄟ^研究分析類似的成功項(xiàng)目(如iPhone的工具軟件、游戲等)獲得經(jīng)驗(yàn)和靈感,甚至可以對(duì)美術(shù)、攝影等其他類別藝術(shù)作品展開討論,形成盡可能貼近“蘋果”文化的項(xiàng)目文化氛圍,貫徹“蘋果”產(chǎn)品“在我們優(yōu)美的產(chǎn)品中,沒有任何技術(shù)的痕跡”的理念,最終形成我們自己的產(chǎn)品。
3.2 卡通書項(xiàng)目測試
常規(guī)黑盒測試內(nèi)容在本案例中不做介紹,以下內(nèi)容是針對(duì)iPhone項(xiàng)目的測試要求、準(zhǔn)則和性能評(píng)測需要考慮的問題。
(1)測試要求:①根據(jù)測試規(guī)范和要求,完成測試報(bào)告。②在測試過程中,迅速、準(zhǔn)確、全面地找出問題,并對(duì)各種問題產(chǎn)生原因做出判斷。③準(zhǔn)確、詳實(shí)地描述bug產(chǎn)生的過程、bug的現(xiàn)象,并對(duì)bug的嚴(yán)重程度做判別。④結(jié)合市場運(yùn)營對(duì)所評(píng)測軟件給出自己的看法和反饋。
(2)測試準(zhǔn)則:①頁面顯示正常,無亂碼,無圖片錯(cuò)亂。②圖片與手機(jī)屏幕適配正常,無浮出。③聲音播放正常,與圖片銜接正常,先后次序合適。④手機(jī)頁面跳轉(zhuǎn)正常,延誤時(shí)間在正常允許范圍內(nèi)。
⑤后臺(tái)數(shù)據(jù)記錄正常。⑥多次連接、斷開、長時(shí)間在線測試均正常。
(3)性能評(píng)測。在應(yīng)用程序開發(fā)過程的每一步,都應(yīng)該考慮所做的設(shè)計(jì)對(duì)應(yīng)用程序總體性能的影響。由于iPhone設(shè)備的移動(dòng)本質(zhì),iPhone應(yīng)用程序的操作環(huán)境受到更多的限制。所以對(duì)于iPhone軟件的測試,除常規(guī)黑盒測試內(nèi)容之外,還需考慮如下幾點(diǎn)內(nèi)容:①關(guān)閉屏幕鎖定。如果iPhone OS在特定時(shí)間段中沒有接收到觸摸事件,就要關(guān)閉屏幕,并禁用觸摸傳感器。以這種方式鎖定屏幕是省電的重要方法。因此,除非確實(shí)需要在應(yīng)用程序中避免無意的行為,否則應(yīng)該總是打開屏幕鎖定功能。將共享的UIApplication對(duì)象的idleTimerDisabled屬性設(shè)置為YES,就可以禁止屏幕鎖定。② 國際化應(yīng)用程序。理想情況下,iPhone應(yīng)用程序顯示給用戶的文本、圖像、和其它內(nèi)容都應(yīng)該本地化為多種語言。如,警告對(duì)話框中顯示的文本就應(yīng)該以用戶偏好的語言顯示。為工程準(zhǔn)備特定語言的本地化內(nèi)容的過程就稱為國際化。③代碼的優(yōu)化。和iPhone OS一起推出的還有幾個(gè)應(yīng)用程序的優(yōu)化工具。它們中的大部分都運(yùn)行在Mac OS X上,適合于調(diào)整運(yùn)行在仿真器上的代碼的某些方面。如,可以通過仿真器來消除內(nèi)存泄露,確??偟膬?nèi)存開銷盡可能小。借助這些工具,還可以排除代碼中可能由低效算法或已知瓶頸引起的計(jì)算熱點(diǎn)。在仿真器上進(jìn)行代碼優(yōu)化之后,還應(yīng)該在設(shè)備上用Instruments程序進(jìn)行進(jìn)一步優(yōu)化。在實(shí)際設(shè)備上運(yùn)行代碼是對(duì)其進(jìn)行完全優(yōu)化的唯一方式。因?yàn)榉抡嫫鬟\(yùn)行在Mac OS X上,而運(yùn)行Mac OS X的系統(tǒng)具有更快的CPU和更多的可用內(nèi)存,所以其性能通常比實(shí)際設(shè)備的性能好很多。在實(shí)際設(shè)備上用Instruments跟蹤代碼可能會(huì)發(fā)現(xiàn)額外的性能瓶頸,需要進(jìn)一步進(jìn)行優(yōu)化。
4 結(jié)語
讓設(shè)計(jì)插上翅膀,讓產(chǎn)品成為現(xiàn)實(shí)。通過這個(gè)項(xiàng)目使我感受到蘋果的產(chǎn)品不只是產(chǎn)品,而是一種文化。我覺得這種文化就是讓我們把創(chuàng)新、設(shè)計(jì)和學(xué)習(xí)結(jié)合起來,鼓舞我們有更積極向上的生活態(tài)度,為我們的社會(huì)做出更好的產(chǎn)品。