投身移動開發必須知道的20件事

      移動開發須要具體的設計考慮。這個所指的範圍很是廣,能夠從「你已經習慣了並以爲容易」到「困難」(These can vary greatly from what you’re used to and it’s easy to trip up),因此,這裏有一些開發者 Paulo Fierro 好久之前被告知的忠告。 web

  那麼,你想要從事移動開發?也許你想經過應用商店就能夠得到預想的上百萬的收入,或者僅僅只是在尋找一個新的挑戰。不管如何,當你想設計你本身的 app 時確定須要考慮許多具體的問題,固然我不是指的編程這方面。 編程

  在你開始以前,你須要弄清楚你想解決什麼問題。你的用戶是誰?他們在哪?他們將如何使用它?若是他們在同一時刻使用會對你的應用程序產生什麼影響? app

  當你想到這些問題的答案的時候你能夠把它們寫下來,刻在牆上。當你面對一些困難的選擇的時候能夠回顧這些答案,也許它們會給你指明正確的方向。 框架

  一、選擇你的平臺 webapp

  選擇什麼樣的平臺取決與你想作什麼以及你的用戶是誰。這些平臺的最頂層是 web。若是你想出售你的應用程序,那麼你可能想要將它放在應用商店。若是你須要使用相機或者其餘的設備的 API,那麼你可使用本地的方法,或者使用一些封裝好了的框架好比 AIR/PhoneGap/Titanium。 ide

  這裏沒有明確的答案,你選擇什麼樣的平臺取決於不少的事情,所以不妨回顧一下刻在牆上的那些話,也許它們會告訴你答案。 函數

  二、甭想快速暴富 工具

  不少人對比了當前的應用商店的熱潮和 19 世紀 40 年代末的加利福尼亞淘金熱,正如當初的淘金熱,有人成功有人失敗,更多的是失敗。我不建議人們只是爲了賺錢而加入這行,那還不如到最近的賭場堵上幾千英鎊來的現實。 測試

  可是咱們常常聽到媒體上鼓吹一些具大的成功範例。我最喜歡的故事是加拿大的開發者 Matt Rix 花了幾個月的晚上,作出了一款遊戲,最終超越憤怒的小鳥,排名前 10 位,這可不是一件容易的事。那款遊戲叫作 Trainyard ,他將它開源了,而且共享了數據。 字體

  兩個月前,Flurry,一個移動應用分析公司發佈報告稱,目前蘋果應用商店裏面有超過 50 萬應用程序,同時安卓電子市場裏面也有將近 35 萬。

  再次強調這(指的致富)不是一件容易的事。

  三、閱讀 HIG

  Human Interface Guidelines(人性化界面指南)或者說 HIG 是一個全部開發平臺都具備的文檔,它告訴你怎麼樣去建立一個良好的用戶界面,讓用戶在使用的時候感受就像在家同樣天然溫馨。每一個平臺都是不一樣的,所以你須要考慮到每一個細微的差異。

  例如,iOS 用戶習慣在左上角有一個返回按鈕,但對於 Android 來講,大多數機型都會有一個物理的返回按鈕,所以在應用程序上面再增長一個只能帶來沒必要要的冗餘和混亂。

  在黑莓平板上,用戶但願經過下拉頂部狀態欄來顯示設置選項。用戶每每不會感謝你提供了這些已知的人性化的行爲,可是若是你沒有這樣作,他們必定會憤怒。

  所以閱讀 HIG 從而瞭解這些概念,可是請記住,這些都是簡單的指導方針,但不是規則,更加不是分類的清單。

  四、讓功能具備趣味性

  開發一個實用的應用程序並不意味着它必定會很無聊。咱們在 2009 年開發的一個應用程序 Flash on the Beach 中,使用了一套標準的 iOS 組件,可是設計出來的外觀和體驗徹底不一樣。咱們但願讓這個應用具備本身獨特的個性,可是又不會讓用戶想要疏遠。這在當時不是很常見,所以還得到了一個 Gulltaggen 獎。

  我最喜歡的 iPhone 相機應用是 Camera+,它的按鈕和標題看起來很普通,可是具備可愛的自定義字體風格。

  Tweetbot 是我最喜歡的 Twitter 客戶端,它結合了陰影和漸變的巧妙應用,使自定義提示框與應用的其餘設計搭配得很是融洽,整個應用看起來很是漂亮,這就是對細節的注重。

  在他的書 Tapworthy 裏面,喬希·克拉克提到了「tap-worthiness」,我更喜歡「lickability」這個詞,正是這種對細節的注重讓我感受很是好,甚至想要舔個人手機。

  所以咱們的應用能夠遵循那些準則,同時仍然具備趣味性。如今在 iOS5 上經過使用新外觀的 API 使這件事變得更加容易。

  五、挑戰慣例

  這方面最明顯的例子就是「pull to refresh」(下拉刷新)。你可能知道我具體在說什麼。自從布里切爾在 Tweetie 2 上介紹了這個詞,這個設計概念已經飛速的傳播到了其餘的手機操做系統。

  這個概念是簡單的,你將一個列表下拉到中間某個位置,而後釋放,這時就會產生一些事件,例如刷新數據,就好像你的 Twitter 信息。儘管當時沒有很直觀的產品,一旦你想到了它,它就是一個天才的、完美的「使人驚喜」的例子(Although not immediately obvious at first, once you get it, it’s genius and is a perfect example of ‘surprise and delight’)。

  今天咱們能夠看到許多使用了「pull to refresh」的應用,好比 Gowalla, Facebook, Google+, Tweetbot, foursquare, oink, Fribi 等等,未來還會有愈來愈多的應用會使用它。

  另一個流行的模式是提升中間底部的工具欄按鈕。Oink, foursquare, Fribi 以及其餘的許多應用都採用了這種方法,讓人們關注應用程序的重點。

  六、場景行爲是不一樣的

  當開發一個應用的時候,你只有 30 秒,也許是一分鐘的時間去得到用戶的注意。你的應用必須讓用戶一眼就能看懂並上手。千萬不要使用複雜的界面,只須要給咱們細節,對不對?

  嗯,是但又不是(Well, yes. And no)。有時候,我在沙發上,經過放在膝蓋上的平板看電視。或坐在個人浴室裏無聊。統計說,其不僅是我!

  那麼你的用戶在哪裏?他們會在作什麼?設計也應該相應的考慮這些。

  七、內容也應該不一樣

  簡單是好的,可是簡單並不意味着愚蠢————咱們須要專一於咱們的應用程序的核心功能並編寫高效的相關的 copy。

  然而 micro-copy 很是難寫,超級難。

  八、個人手指很粗

  個人手指很肥所以它至少須要 44 像素的區域。若是不這樣作那麼點擊會變得很是有難度。咱們在 FOTB2010 這個應用裏面就犯了這樣的錯誤。

  這個後退按鈕有 10 像素高,可是具備一個巨大的觸摸區域從而使得它容易點擊。那麼問題在哪裏呢?它幾乎看不到。必定要避免這種狀況!

  九、獨立的解決方案

  若是你將要爲不一樣的設備開發一個應用,那麼你須要大量的資源。經過將圖像放大去適應一個平板不是一個好的方法。

  最簡單的方式是叫你的設計師一開始就建立各類規格的資源,這樣當你須要在 iTunes 上面使用一個 512×512的圖標的時候就不會有問題了。

  十、設計一個漂亮的圖標

  俗話說得好,你只有一次機會讓用戶留下良好的第一印象,你的圖標是你的應用實現這一目標的基礎。

  咱們能夠在空白的畫布上去作一些偉大的事情,經過這個機會,採用有效和漂亮的方法去解決你的問題。

  我喜歡這樣。

  所以,讓咱們花些時間和精力去完善這些細節。去年,爲了 Flash on the Beach,咱們開發了 FOTB.me,這是咱們第一次嘗試只針對移動設備開發的 webapp。

  當網站被添加到 iOS 的主屏幕時,你能夠自定義圖標和啓動畫面。所以咱們經過這個機會建立了一系列的圖標和啓動畫面,一套適用於舊的 iPhone,一套適用於新的 iPhone(它具備「視網膜」屏幕),一套適用於橫豎屏的 iPad。

  可是,這隻會被極少數人看到。但若是他們注意到了,我但願他們會感到驚訝甚至微笑。若是是這樣,那真是太棒了。

  十一、個人手機就是個人身份

  這一切問題的緣由是個人手機會透露不少個人信息。

  你能夠看到我安裝了不少的應用程序,可是它們都整齊地歸類在不一樣的文件夾,儘管個人辦公桌上一團糟。這說明了什麼?我也不知道。

  底線就是我沒法容忍我漂亮的桌面屏幕上是一個醜陋的圖標————由於那會說明我是怎樣的一我的呢?

  十二、不要讓我去讀那些他-媽的手冊(RTFM)

  拜託!想一想小孩。

  若是你認爲人們不會這樣想,那你本身讀一下桌面軟件的說明書,那會比使用應用程序多花上兩三倍的時間。

  當 iPad 出來的時候,有一個雜誌應用(這裏就不點名了),使用了大量的手勢導航。開始我還以爲很酷,這就像一個 Minority Report(電影,「少數派報告」)那樣的東西,頗有趣。

  一個星期以後我就不知道該如何使用它了,幫助屏幕也隱藏了起來,所以惟一的方法就是從新安裝它。這可不是一個好的體驗。

  若是你想讓使用一些瘋狂的基於手勢的導航,咱們不會阻止你。可是若是你必須這樣作,請將幫助屏幕放在最近的地方,而且最好能讓你的應用值得咱們花費這些時間。

  1三、不要假裝

  我不是那種模仿本地應用程序外觀和感覺的 webapp 的粉絲。有一些 UI 框架會盡力讓它們看起來就像本地控制。可是當用戶從應用商店將它們下下來以後問題就產生了。

  這些 webapp 自己就運行的比較慢,可是因爲它們的外觀和感覺與其餘的應用程序類似,所以用戶會對它們產生錯誤的指望,從而將它們下載下來。它們作出了隱含的承諾可是卻沒有辦法達到。

  我會避免它。

  1四、你的想法不是首創的

  NAS 早在 2001 年就這麼說過,「沒有什麼想法是首創的,太陽底下沒有什麼是新的事物。重點不是你要作什麼,而是你怎麼實現它。」「沒有什麼想法是首創的」,

  不幸的事實是,想法是多如牛毛,執行就是一切。一個精心設計的產品在合適的時間加上一點點運氣就能走很遠。

  1五、爲您本身打造

  這樣你能保證至少有一個幸福的用戶。更重要的是,若是你爲你本身打造,你會很清楚的知道你到底想要解決什麼,怎樣纔能有的放矢。

  1六、聽取用戶的建議

  若是你很幸運,在某些方面你的用戶會支付你費用,因此有和他們溝通的途徑是很是重要的。使用相似於 GetSatisfaction 的服務和用戶交流,無論是反饋錯誤或提出新的功能建議。這裏的關鍵是,它是公開透明的溝通。

  Twitter 就是這樣操做的,可是還能夠改進,你能夠中止重複你的一個好主意(Twitter works too but can be a lot more work and you may end up repeating yourself a good deal)。

  儘管咱們聽取用戶的建議,而且他們有時候確實能提出一些偉大的想法,可是你也沒必要非要實現他們說的每件事,相信你本身的直覺。

  1七、潛近你的用戶

  分析很是重要的。它會讓咱們從用戶的行爲裏面學到不少東西,而且會讓咱們看到用戶是怎樣使用你的應用的。

  對於 FOTB.me 咱們使用了 Google Analytics,主要是針對 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,結果它在 Opera/Symbian 上面徹底不能用)

  — Thomas Kr?ftner (@tkraftner) September 11, 2011

  一開始我想,廢話!這能影響多少人呢?結果經過 Google Analytics 我發現4,241個訪問者裏面只有四我的受到影響。雖然不幸有0.09%,可是咱們仍是能夠容忍這點。固然你也可能沒有這麼幸運。

  幾個小時後咱們看到影響增大到了 20 個用戶,0.5% 的比例,可是咱們仍然能夠接受。

  重點是,若是沒有這些統計資料,咱們沒有辦法知道這個問題到底有多大或者多小。有了這些數據(得知問題並不大)可讓咱們睡個好覺。

  1八、原型!

  這是一個偉大的工具讓你能夠向其餘人代表你的想法而且能夠檢測技術上的可行性。咱們傾向於寫一套典型的、小的函數去檢測解決一個問題的可能的方法。不管你作什麼,首先在設備上實現你的原型。沒有什麼比在設備上直接測試更具備說服力,即便是滑動瀏覽一系列的圖片(Nothing beats testing on the device itself, even if it means a series of images you can swipe through)。

  這裏有不少的工具可讓你建立原型如 Prototypes, Balsamiq and FieldTest,你甚至可使用 Keynote。

  不管你選擇什麼,將它放在設備上並展現給你的朋友,以一杯啤酒的代價讓他們給你反饋。可是當你完成了這些以後,扔掉這個原型(Whatever you choose, get it on a device and show a friend over a beer to get their feedback. But once you’re done, throw the prototype away)。

  我是說真的,扔掉它!這的確很難捨得,但你要知道你寫的任何代碼,一旦作成了產品,永遠不會死(I mean it, throw it away! This takes discipline, but know that any code you write – once it makes it into production – will never die)。

  不管用什麼方式,你寫原型很快。可是你不會但願用接下來的幾年時間維護修改那段代碼。扔掉它(You write prototypes fast, in whatever way works. Hack it up! But you do not want to spend the next few years supporting that code. Throw it away)。

  1九、開始

  開始實現你的想法,由於是時候將它作出來了。這很難可是也很使人激動,這些想法終於再也不只是卡在你的腦海中了,將它們帶到現實中來!

  若是從一開始就想把全部的事情作的很完美那很容易失敗,你不須要把它作的很完美,可是咱們會盡力。

  20、咱們可使世界變得更好

  這是一個崇高的目標,但我就是這麼想的。做爲設計者和開發者咱們有這個能力去創造一些不只僅影響咱們本身並且也會影響其餘人生活的東西。

  若是咱們讓生活變得更加容易,更加簡單,哪怕只是一點點,同時解決了某個問題,那咱們就作了好事,可讓咱們引覺得豪的好事。

相關文章
相關標籤/搜索