天天看點

我想做個程式員:一位程式設計小白的App開發故事

Ben Philabaum是雷克薩斯負責數字項目的一名員工,盡管每天都和開發者一起工作,但卻是一個實實在在的程式設計小白,不會任何程式設計語言,甚至在開發自己的App之前,連Xcode是什麼都不知道。然而,他在不到3周的時間裡,卻成功地開發出了自己的第一款App——Photo Date。除了程式設計,從idea、設計到成功上架App Store的一切工作都是Ben一人獨立完成。低成本、高效率,一款簡單卻又非常實用的檢視照片拍攝日期的應用就這樣誕生了。下面就讓我們一起聽Ben講述自己的開發曆程吧。

圖:Ben Philabaum

9年前,對于大多數人而言,手機還是個奢侈品,當時我第一次購買手機,它笨拙得像個磚塊,運作着Windows Mobile系統,還有一個手寫筆。讓我印象最為深刻的是,将它裝在褲子上的口袋裡時,會鼓起很大一塊,當時感覺很帥也很霸氣。

一直以來,我都有一個願望,那就是開發出一款屬于自己的App,但遺憾的是這個願望從未實作,甚至我連想都不敢想。直到上個月,當我在不到3周的時間裡,從想法到應用成功上架App Store,這個夢想終于成為了現實。

第一步:敢想敢做

做一個真正屬于自己的App?這個App是什麼?實作什麼樣的功能?針對什麼樣的人群?在過去,這些問題我從來都沒有想過,也不知道從何想起。做應用開始的第一步就是思考做個什麼樣的應用,完美的?史詩級的?當我終于想到我要做什麼時,卻發現已有人捷足先登。是以我就必須另辟蹊徑,不求獨一無二,隻求能讓人覺得耳目一新。

圖:Photo Date

但即使想法再天花亂墜,不能實作又有何用?是以當許多人跟我講他們那些超級複雜、讓人聞之一振的idea時,我隻能非常無奈地微笑并點點頭。而這也正是為什麼我會決定做一個非常簡單的App的原因。

我的工作是在雷克薩斯做數字項目,其中有一個是做iPad應用的,也正因為此,我對App還是有一定的了解的,盡管我不知道任何iOS程式設計語言,甚至在開始我的iPhone App項目之前,我都不知道Xcode是什麼。

簡單,簡單!

在開始App開發之前,我必須要确定idea。不複雜,或許也不讓人興奮,但卻非常本質。我冥思苦想,卻一直沒有好的想法,直到有一天,當我在我的iPhone上滾動浏覽相片時,突然靈光一現。“當拍攝這些照片時,我看不到它的日期!”既然都能看到拍攝的地理位置,為什麼看不到時間呢?

于是,我在谷歌上輸入“how to see iPhone photo date”(如何檢視iPhone照片日期),在搜尋結果的第一頁,我看到大概有5個人在尋找該問題解決方法的論壇文章。這就表明不止我一人有這樣的疑問,其他人同樣也有。那麼如果我做這樣一個App,那一定會有使用者群。

由此可見,如果想保證App在釋出之後能有一定的市場,明晰使用者需求是非常重要的一點。盡管對于我的第一款App,我并沒有太多的要求,隻是想着以通過App Store審查為目标,盡可能地低成本、高效率。

其實說到底,要想讓應用成為現實,想法是什麼無關緊要,隻是不要心比天高,命卻比紙薄。總想着将應用做得多麼完美,甚至可以完全颠覆Instagram,這自然是不可能的事情。作為App開發新手,需要做的就是兩個字兒——簡單!

如何建立一個開發者了解的實體模型?

有兩種方法:

  • 免費的選擇——Skitch

下載下傳Skitch,通過其矩形、直線、文本等工具建立一個實體模型,下圖是我畫的一個例子,說實話,感覺相當蹩腳。

  • 20美元的選擇(可能免費)——Keynote + Keynotopia

如果此前你已經有了Keynote,那麼這個選擇就是免費的。唉,可惜我沒有,是以我不得不花上20美元進行購買,當然,你也可以直接下載下傳使用免費的iPhone模型模闆。

在Keynote視窗中建立App,在另一個視窗中打開模闆。然後選擇需要的物件,複制并粘貼。每一格就是App的一個界面,通過複制粘貼,就能讓你的App設計非常完美,且毫無後顧之憂。

如果你的應用界面上包含具有描述功能的注釋,那将會是非常有幫助的。比如說,如上圖所示,在螢幕界面上,使用者可以通過他們的錄影機扭轉向下滾動,在下方自動顯示照片拍攝日期。

  • 超級免費的選擇——畫在紙上。

開發部分:毫無壓力地尋找開發者

我認為最讓人感覺害怕的就是這個部分,作為一個程式設計小白,我不能說自己親自動手敲代碼,我隻能另外雇傭一個開發者,但對于大多數和我有着同樣情況的人而言,不知道自己究竟要什麼,又害怕雇傭錯人,以至于他們必須要多花錢,或者做出的App無法正常使用,亦或者開發者自己需要時間考慮,還有可能一不小心碰到了騙子等等。

圖:我是如何雇傭開發者的

我的工作讓我每天都要和許多開發者一起工作,但我還在為我的應用能否找到合适的開發者而犯愁,我不可能雇傭我的開發者同僚,因為他們的價錢實在太昂貴了。

  • 尋找開發者:如何去蕪存菁?

在freelancer.com上釋出了一個以“非常簡單的iPhone項目”為題的項目。當公開釋出一個項目時,你必須要從開發者角度考慮,如果你看到這個項目,你會思考什麼?是以,項目命題必須要恰當,隻有這樣,開發者才會care。

如果你吹得天花亂墜,比如“革命性的idea”,一看标題,開發者都不知道你講的是什麼。而“擁有明确的指導方針、合理的時間安排的一個非常讓人興奮的項目”,這一定會引起開發者的注意,因為這個标題很明确地表示,做這個App規劃設計均已OK,隻剩程式設計工作,并且時間上的要求也比較合理,不會說一天之内必須搞定。我的項目标題為“一個非常簡單的iPhone App”,更是吸引人,簡單意味着容易,容易也就意味着錢非常好賺,開發者何樂而不為呢。

當然,公開招聘開發者的同時也會産生一個非常常見的問題,那就是,如果你在freelancer、elance或odesk類的網站上釋出一個項目,你可能會收到許多開發者投标。我自己收到了23份,但誰有那麼多的時間來一一檢視呢,如何縮小雇傭範圍,去蕪存菁?

有一個小技巧,可以讓你快速去除80%的開發者投标。因為在不同類型的網站上,許多人會抱着試一試的心态,不斷地向每個項目投标。在你釋出項目之後的短短三分鐘内,你就有可能會收到500字的回複。

是以,我在我的項目中如此描述道:“請在你的投标中寫上2+2的答案,讓我知道你已經認真地讀完了項目内容。”

它好像真的起作用了,在我收到的23份投标中,有許多人并沒有做到這一點要求,于是我也就無情地摒棄了他們的投标,盡管看他們的個人資料,有一小部分人的條件還是相當不錯的,但即使如此,我還是放棄了他們,因為如果連我的基本要求都不能滿足,那在後面的開發工作中,又如何能滿足我更加“苛刻”的要求呢。

測試App

在開發者完成App開發程式設計工作之後,就到了測試階段,首先,進行準備工作。

在手機上進行測試:

  • 前提——将手機的UDID寫入應用,才能進行正常測試。
  • 獲得一個IPA,是App的壓縮檔案,在電腦上進入testflightapp.com,注冊一個賬戶并登入,然後上傳該IPA。
  • 在手機上登入testflightapp.com,安裝測試App,打開App,界面顯示一個App建構,下載下傳然後進行測試。

圖:測試App使用截圖

測試方法推薦——發動朋友,一起來測試,不告訴朋友具體的使用方法,讓他們自己摸索,這能極大地幫助改善App。比如我有一個朋友嘗試着在照片之間猛擊左/右,但卻沒有反應,于是後來我和我的開發者一起将該項功能加入了App。

送出到App Store

在向App Store送出應用之前,要確定自己擁有所有送出上傳的應用截圖,因為蘋果不會在通過應用之後還允許你進行截圖修改,隻有等到送出新版本時才可以增加新的截圖,這是我唯一搞砸了的并且需要時刻謹記的事情。

圖:應用截圖

點選連結,可檢視我向App Store送出應用的詳細過程記錄。

我的經驗教訓

  • 從你能想到的最簡單的idea開始。能否做到讓App簡單卻對人們非常實用,這一點至關重要。
  • 當與一個你不認識的開發者一起工作時,務必要提供非常詳細的說明。
  • 通過一些小技巧可以對開發應征人進行篩選。
  • 發動朋友一起來測試你的App最有效。