投身移動應用開發(fā)前先想想這20件事
在進入移動應用開發(fā)這個行業(yè)之前,你做過哪些準備?你僅僅是抱著一腔熱情嗎?
移動開發(fā)需要具體的設計考慮。這個所指的范圍非常廣,可以從“你已經(jīng)習慣了并覺得容易”到“困難”,所以,這里有一些開發(fā)者PauloFierro很久以前被告知的忠告。
?
那么,你想要從事移動開發(fā)?也許你想通過應用商店就可以獲得預想的上百萬的收入,或者僅僅只是在尋找一個新的挑戰(zhàn)。無論如何,當你想設計你自己的app時肯定需要考慮許多具體的問題,當然我不是指的編程這方面。
?在你開始之前,你需要弄清楚你想解決什么問題。你的用戶是誰?他們在哪?他們將如何使用它?如果他們在同一時刻使用會對你的應用程序產(chǎn)生什么影響?
?
當你想到這些問題的答案的時候你可以把它們寫下來,刻在墻上。當你面對一些困難的選擇的時候可以回顧這些答案,也許它們會給你指明正確的方向。
?
1、選擇你的平臺
?
選擇什么樣的平臺取決與你想做什么以及你的用戶是誰。這些平臺的最頂層是web。如果你想出售你的應用程序,那么你可能想要將它放在應用商店。如果你需要使用相機或者其他的設備的API,那么你可以使用本地的方法,或者使用一些封裝好了的框架比如AIR/PhoneGap/Titanium。
?
這里沒有明確的答案,你選擇什么樣的平臺取決于很多的事情,因此不妨回顧一下刻在墻上的那些話,也許它們會告訴你答案。
?
2、甭想快速暴富
?
很多人對比了當前的應用商店的熱潮和19世紀40年代末的加利福尼亞淘金熱,正如當初的淘金熱,有人成功有人失敗,更多的是失敗。我不建議人們只是為了賺錢而加入這行,那還不如到最近的賭場堵上幾千英鎊來的現(xiàn)實。
?
但是我們經(jīng)常聽到媒體上鼓吹一些具大的成功范例。我最喜歡的故事是加拿大的開發(fā)者MattRix花了幾個月的晚上,做出了一款游戲,最終超越憤怒的小鳥,排名前10位,這可不是一件容易的事。那款游戲叫做Trainyard,他將它開源了,并且共享了數(shù)據(jù)。再次強調(diào)這(指的致富)不是一件容易的事。
?
3、閱讀HIG
?
HumanInterfaceGuidelines(人性化界面指南)或者說HIG是一個所有開發(fā)平臺都具有的文檔,它告訴你怎么樣去創(chuàng)建一個良好的用戶界面,讓用戶在使用的時候感覺就像在家一樣自然舒適。每個平臺都是不同的,因此你需要考慮到每個細微的差別。
?
例如,iOS用戶習慣在左上角有一個返回按鈕,但對于Android來說,大多數(shù)機型都會有一個物理的返回按鈕,因此在應用程序上面再增加一個只能帶來不必要的冗余和混亂。
?
在黑莓平板上,用戶希望通過下拉頂部狀態(tài)欄來顯示設置選項。用戶往往不會感謝你提供了這些已知的人性化的行為,但是如果你沒有這樣做,他們一定會憤怒。因此閱讀HIG從而了解這些概念,但是請記住,這些都是簡單的指導方針,但不是規(guī)則,更加不是分類的清單。
?
4、讓功能具有趣味性
?
開發(fā)一個實用的應用程序并不意味著它一定會很無聊。我們在2009年開發(fā)的一個應用程序FlashontheBeach中,使用了一套標準的iOS組件,但是設計出來的外觀和體驗完全不同。我們希望讓這個應用具有自己獨特的個性,但是又不會讓用戶想要疏遠。這在當時不是很常見,因此還獲得了一個Gulltaggen獎。
?
我最喜歡的iPhone相機應用是Camera+,它的按鈕和標題看起來很普通,但是具有可愛的自定義字體風格。
?
Tweetbot是我最喜歡的Twitter客戶端,它結(jié)合了陰影和漸變的巧妙應用,使自定義提示框與應用的其他設計搭配得非常融洽,整個應用看起來非常漂亮,這就是對細節(jié)的注重。
?
在他的書Tapworthy里面,喬?!た死颂岬搅恕皌ap-worthiness”,我更喜歡“l(fā)ickability”這個詞,正是這種對細節(jié)的注重讓我感覺非常好,甚至想要舔我的手機。
?
因此我們的應用可以遵循那些準則,同時仍然具有趣味性?,F(xiàn)在在iOS5上通過使用新外觀的API使這件事變得更加容易。
?
5、挑戰(zhàn)慣例
?
這方面最明顯的例子就是“pulltorefresh”(下拉刷新)。你可能知道我具體在說什么。自從布里切爾在Tweetie2上介紹了這個詞,這個設計概念已經(jīng)飛速的傳播到了其他的手機操作系統(tǒng)。
?
這個概念是簡單的,你將一個列表下拉到中間某個位置,然后釋放,這時就會產(chǎn)生一些事件,例如刷新數(shù)據(jù),就好像你的Twitter信息。盡管當時沒有很直觀的產(chǎn)品,一旦你想到了它,它就是一個天才的、完美的“令人驚喜”的例子。
?
今天我們可以看到許多使用了“pulltorefresh”的應用,比如Gowalla、Facebook、Google+、Tweetbot、foursquare、oink以及Fribi等等,將來還會有越來越多的應用會使用它。
?
另外一個流行的模式是提高中間底部的工具欄按鈕。Oink、foursquare、Fribi以及其他的許多應用都采用了這種方法,讓人們關(guān)注應用程序的重點。
?
6、場景行為是不同的
?
當開發(fā)一個應用的時候,你只有30秒,也許是一分鐘的時間去獲得用戶的注意。你的應用必須讓用戶一眼就能看懂并上手。千萬不要使用復雜的界面,只需要給我們細節(jié),對不對?
?
嗯,是但又不是。有時候,我在沙發(fā)上,通過放在膝蓋上的平板看電視?;蜃谖业脑∈依餆o聊。統(tǒng)計說,不只是我!那么你的用戶在哪里?他們會在做什么?設計也應該相應的考慮這些。
?
7、內(nèi)容也應該不同
?
簡單是好的,但是簡單并不意味著愚蠢---我們需要專注于我們的應用程序的核心功能并編寫高效的相關(guān)的copy。
?
然而micro-copy非常難寫,超級難。
?
8、我的手指很粗
?
我的手指很肥因此它至少需要44像素的區(qū)域。如果不這樣做那么點擊會變得非常有難度。我們在FOTB2010這個應用里面就犯了這樣的錯誤。
?
這個后退按鈕有10像素高,但是具有一個巨大的觸摸區(qū)域從而使得它容易點擊。那么問題在哪里呢?它幾乎看不到。一定要避免這種情況!
?
9、獨立的解決方案
?
如果你將要為不同的設備開發(fā)一個應用,那么你需要大量的資源。通過將圖像放大去適應一個平板不是一個好的方法。
?
最簡單的方式是叫你的設計師一開始就創(chuàng)建各種規(guī)格的資源,這樣當你需要在iTunes上面使用一個512x512的圖標的時候就不會有問題了。
?
10、設計一個漂亮的圖標
?
俗話說得好,你只有一次機會讓用戶留下良好的第一印象,你的圖標是你的應用實現(xiàn)這一目標的基礎。我們可以在空白的畫布上去做一些偉大的事情,通過這個機會,采用有效和漂亮的方法去解決你的問題。我喜歡這樣。
?
因此,讓我們花些時間和精力去完善這些細節(jié)。去年,為了FlashontheBeach,我們開發(fā)了FOTB.me,這是我們第一次嘗試只針對移動設備開發(fā)的webapp。
?
當網(wǎng)站被添加到iOS的主屏幕時,你可以自定義圖標和啟動畫面。因此我們通過這個機會創(chuàng)建了一系列的圖標和啟動畫面,一套適用于舊的iPhone,一套適用于新的iPhone(它具有“視網(wǎng)膜”顯示屏),一套適用于橫豎屏的iPad。
?
但是,這只會被極少數(shù)人看到。但如果他們注意到了,我希望他們會感到驚訝甚至微笑。如果是這樣,那真是太棒了。
?
11、我的手機就是我的身份
?
這一切問題的原因是我的手機會透露很多我的信息。
?
你可以看到我安裝了很多的應用程序,但是它們都整齊地歸類在不同的文件夾,盡管我的辦公桌上一團糟。這說明了什么?我也不知道。
?
底線就是我無法容忍我漂亮的桌面屏幕上是一個丑陋的圖標————因為那會說明我是怎樣的一個人呢?
?
12、不要讓我去讀那些他媽的手冊(RTFM)
?
如果你認為人們不會這樣想,那你自己讀一下桌面軟件的說明書,那會比使用應用程序多花上兩三倍的時間。
?
當iPad出來的時候,有一個雜志應用(這里就不點名了),使用了大量的手勢導航。開始我還覺得很酷,這就像一個MinorityReport(電影,“少數(shù)派報告”)那樣的東西,很有趣。一個星期之后我就不知道該如何使用它了,幫助屏幕也隱藏了起來,因此唯一的方法就是重新安裝它。這可不是一個好的體驗。
?
如果你想讓使用一些瘋狂的基于手勢的導航,我們不會阻止你。但是如果你必須這樣做,請將幫助屏幕放在最近的地方,并且最好能讓你的應用值得我們花費這些時間。
?
13、不要偽裝
?
我不是那種模仿本地應用程序外觀和感受的webapp的粉絲。有一些UI框架會盡力讓它們看起來就像本地控制。但是當用戶從應用商店將它們下下來之后問題就產(chǎn)生了。
?
這些webapp本身就運行的比較慢,但是由于它們的外觀和感受與其他的應用程序相似,因此用戶會對它們產(chǎn)生錯誤的期望,從而將它們下載下來。它們做出了隱含的承諾但是卻沒有辦法達到。
?
我會避免它。
?
14、你的想法不是獨創(chuàng)的
?
NAS早在2001年就這么說過,“沒有什么想法是獨創(chuàng)的,太陽底下沒有什么是新的事物。重點不是你要做什么,而是你怎么實現(xiàn)它?!?
?
不幸的事實是,想法是多如牛毛,執(zhí)行就是一切。一個精心設計的產(chǎn)品在合適的時間加上一點點運氣就能走很遠。
?
15、為您自己打造
?
這樣你能保證至少有一個幸福的用戶。更重要的是,如果你為你自己打造,你會很清楚的知道你到底想要解決什么,怎樣才能有的放矢。
?
16、聽取用戶的建議
?
如果你很幸運,在某些方面你的用戶會支付你費用,所以有和他們溝通的途徑是非常重要的。使用類似于GetSatisfaction的服務和用戶交流,不管是反饋錯誤或提出新的功能建議。這里的關(guān)鍵是,它是公開透明的溝通。
?
Twitter就是這樣操作的,但是還可以改進,你可以停止重復你的一個好主意。
?
盡管我們聽取用戶的建議,并且他們有時候確實能提出一些偉大的想法,但是你也不必非要實現(xiàn)他們說的每件事,相信你自己的直覺。
?
17、接近你的用戶
?
分析非常重要的。它會讓我們從用戶的行為里面學到很多東西,并且會讓我們看到用戶是怎樣使用你的應用的。
?
對于FOTB.me我們使用了GoogleAnalytics,主要是針對Android,iPhone,iPad和PlayBook。我在Twitter上面看到有人說
?
@FOTBme I was hoping for this year when I heard web app, but on Opera/Symbian the site doesn't work at all...
?
(當我聽到webapp之后期待了一整年的FOTB.me,結(jié)果它在Opera/Symbian上面完全不能用)
?
—ThomasKr?ftner(@tkraftner)September11,2011
?
一開始我想,廢話!這能影響多少人呢?結(jié)果通過GoogleAnalytics我發(fā)現(xiàn)4,241個訪問者里面只有四個人受到影響。雖然不幸有0.09%,但是我們還是可以容忍這點。當然你也可能沒有這么幸運。
?
幾個小時后我們看到影響增大到了20個用戶,0.5%的比例,但是我們?nèi)匀豢梢越邮堋?
?
重點是,如果沒有這些統(tǒng)計資料,我們沒有辦法知道這個問題到底有多大或者多小。有了這些數(shù)據(jù)(得知問題并不大)可以讓我們睡個好覺。
?
18、原型!
?
這是一個偉大的工具讓你可以向其他人表明你的想法并且可以檢測技術(shù)上的可行性。我們傾向于寫一套典型的、小的函數(shù)去檢測解決一個問題的可能的方法。無論你做什么,首先在設備上實現(xiàn)你的原型。沒有什么比在設備上直接測試更具有說服力,即使是滑動瀏覽一系列的圖片。
?
這里有很多的工具可以讓你創(chuàng)建原型如Prototypes,BalsamiqandFieldTest,你甚至可以使用Keynote。
?
無論你選擇什么,將它放在設備上并展示給你的朋友,以一杯啤酒的代價讓他們給你反饋。但是當你完成了這些之后,扔掉這個原型。我是說真的,扔掉它!這的確很難舍得,但你要知道你寫的任何代碼,一旦做成了產(chǎn)品,永遠不會死。
?
無論用什么方式,你寫原型很快。但是你不會希望用接下來的幾年時間維護修改那段代碼。扔掉它。
?
19、開始
?
開始實現(xiàn)你的想法,因為是時候?qū)⑺龀鰜砹?。這很難但是也很令人激動,這些想法終于不再只是卡在你的腦海中了,將它們帶到現(xiàn)實中來!
?
如果從一開始就想把所有的事情做的很完美那很容易失敗,你不需要把它做的很完美,但是我們會盡力。
?
20、我們可以使世界變得更好
?
這是一個崇高的目標,但我就是這么想的。作為設計者和開發(fā)者我們有這個能力去創(chuàng)造一些不僅僅影響我們自己而且也會影響其他人生活的東西。
?
如果我們讓生活變得更加容易,更加簡單,哪怕只是一點點,同時解決了某個問題,那我們就做了好事,可以讓我們引以為豪的好事