開發一款移動APP是一個相當漫長而復雜的過程,需要大量的準備、耐心和投入才能正確地執行。
到2021年,將會有大約3500億的移動APP下載量,這將創造約2000億美元的營收,因此如今移動APP的開發、營銷和銷售都在呈現指數級增長這個事實也就在情理之 中了。
事實上,目前在Google Play商店中有280萬款APP可供下載,在蘋果App Store裡有220萬款APP可供下載,而且這些數字還在不斷增長。 相對於桌面端而言,移動端的主導地位正在不斷加強,移動APP將會存在很長時間,尤其是在商業和科技領域更是如此。
因此,這些領域的創業公司的創始人都很想知道這個問題的答案:開發一款移動APP需要花多少時間和精力?
現有數據:開發一款移動APP需要3-5個月
儘管每年有100萬款新的移動APP會在主流應用商店上架,但關於開發一款新的移動APP究竟需要多長時間方面的數據卻非常少。 雖然你會發現很多網站聲稱開發一款移動應用所需的時間大概為3-4個月,但要找到證明這個信息的可靠數據卻並不容易。 不過,至少有兩個這方面的調查數據是值得一提的:
(1)在由Kinvey在2013年發起的一項調查中,Kinvey讓100名移動APP設計師指出,他們認為要開發出含有主要功能的Android或iOS的APP1.0版本需要多長時間(即一個 最小可行化產品,也就是MVP),通過對這100個參與調研的應用設計師的反饋的數據進行求和平均,Kinvey發現開發一款原生的移動APP需要大約18週的時間(即:4.5個 月),其中後端開發大概需要10週時間,前端開發大概需要8週時間。 針對這個調研結果,Kinvey還製作了一張經常被大家引用和分享的移動APP開發時間軸信息圖:
在下文中,我將描述後台和前端開發的本質,因此,如果上面的信息圖現在有點混亂,也請不要介意。
(2)第二個值得提及的這方面的研究是GoodFirms在2017年發布的一份報告。 GoodFirms在應用領域進行了多項調查,調研的主題包括開發一款移動APP需要的時間和費用方面的問題
和Kinvey採用的方法類似,GoodFirms調研了幾十家科技公司,要求參與調研的公司估計開發像Instagram、Tinder和Uber這樣的APP需要多長時間,然後對參與調研者給出的數據進行了求和 平均。
根據這個調研,GoodFirms的報告中展示了以下數據:
- 功能豐富的高度複雜的應用,如Instagram和Uber,需要花費4.5月-5.5個月的時間才能開發完成。
- 中等複雜的移動應用,如WhatsApp或QuizUp,需要大約4.6個月的時間才能開發完成。
- 用戶友好型但功能較少的應用,比如Tinder和Periscope,需要大約3.8月-4.1個月才能開發完成。
下面是 GoodFirms製作的相應的信息圖表:
總之,這兩項調研都表明,開發一款APP大約需要3-5個月的時間才能完成。 儘管開發不同的應用需要的時間會有一定的差別,但大概的時間範圍是肯定沒錯的。
現在讓我們來看看開發一款移動APP所涉及的四個關鍵階段,以便探索可能會影響完成一款APP開發所需要的時間的各種因素和決策。
移動APP開發的四個關鍵階段
儘管我們可以將APP開發看作是一個迭代過程,但將過程概念化是有幫助的,因為它涉及到許多定義階段。 我將一一描述APP開發的每一個階段,同時你要記住,每一個階段都不是與其它階段完全分開的。
階段1:調研和規劃
開發一款移動應用的第一階段需要回答兩個基本的問題:
- 為什麼我要開發這款APP? 這款APP為什麼需要存在? 它將如何為世界帶來價值? 人們真的想使用這款APP嗎? 哪些人會使用這款APP? 為什麼會使用?
- 市面上是否已經這種類型的APP了? 如果已經存在的話,我為什麼相信我開發的APP能戰勝其它競爭對手? 我的APP與其它現有同類APP的區別和優勢分別是什麼?
從本質上看,要想回答諸如“我想要我的APP做什麼?我的APP為什麼要存在?我的APP如何擊敗競爭對手?”這些問題,這就需要你對你的目標市場和目標客戶 群有深入的了解。
你需要對市場需求和客戶需求進行廣泛的研究,確保:
- 確認並證實一個能夠為你帶來盈利的客戶痛點;
- 計算目標市場規模;
- 驗證你的產品想法。
此外,你還必須研究你的競爭對手,包括他們的APP、客戶和商業策略。
很難準確地指出你需要花多長時間來收集和確認這些重要的信息,但是你很有可能需要花幾個星期的時間來調研和驗證想法。
階段2:功能和特性
在收集了足夠多有關理想客戶的需要和需求數據後,確定你打算提供的解決方案確實是有很大的市場需求的,接下來你必須決定應該要為你的APP開發哪些具體的功能和特性 。 很多移動APP開發者都會迷失在這個階段。
在這個階段,你要精確地確定你想讓你的APP以何種方式運行:
- 你希望你的APP能夠做些什麼?
- 它將執行哪些任務、功能和操作? (一對一聊天?與其他應用集成?等等)
- 它將如何處理數據? 它將從用戶那裡收集原始數據,還是利用現有的數據框架?
這時,你就需要創建故事板(storyboard)了,例如應用程序的用戶界面的可視化展示,顯示內容的屏幕和這些屏幕之間的聯繫和連接:
故事板有助於你發現可用性方面的問題,並改善用戶體驗。
在確定移動APP的功能和特性階段,你還要開髮用例,這些用例作為理想用戶與應用進行交互的模板。 正如Crew的團隊成員所說的那樣,你開發的功能越多,你的產品就會越複雜,開發應用所需的時間也就越長。
你在這個階段必須做的最重要的決策之一就是你的APP要支持多操作系統和設備,還是只支持一種操作系統和設備。 實際上,這通常意味著你必須決定你的APP是否有iOS、Android和Windows版本。
為什麼這個選擇從時間表的角度來看非常重要呢? 主要因為兩個原因:
- 為多個操作系統和設備開發一款APP需要更長的時間才能開發完成。
- 雖然隨著時間的推移,這一差別變得越來越不明顯,但開發一款安卓APP比開發一款iOS APP通常需要更多的時間(通常需要多花20-30%的時間)。
關於這一點,Valeriia Timokhina曾表示:“iOS通常是最開始推出應用的首選平台,因為只有少量的目標設備和操作系統需要適配。相對於一次性需要適配多個操作系統,一次只確保你 的應用在一個操作系統上完美地運行容易得多。此外,在市面上有超過12000個不同的Android設備,幾乎不可能將APP針對每一款Android設備都進行優化。因此,開發和測試Android APP 往往需要花費更多的時間,除非你限制支持的設備和支持的屏幕分辨率的數量。如果你想同時開發iOS和Android APP,那麼你開發APP所需要的時間和預算可能會翻倍。”
關於你應該如何同時開發麵向多個操作系統的應用,Cruxlab的工作人員指出:“傳統上,Android APP程序是用Java開發的,而iOS APP則是用Swift和objective-objective編寫的。儘管如此, 仍然存在大量其他可替代的替代工具,Xamarin、React Native和Ionic是其中的一些比較受歡迎的替代工具。”
在沒有深入技術細節之前,如果你想同時開發iOS和Android APP(也可能包括Windows應用),那麼你可以選擇下面兩種路徑中的一種:
- 使用兩種完全不同的編程語言來開發APP的兩個不同的版本;
- 使用跨平台的開發工具(React Native、Ionic等)同時開發APP的兩個版本,從而簡化流程。
這裡再強調一遍,雖然無法準確預測確定APP的核心功能特性所需要的時間,不過大概的時間範圍是肯定的:3-5週左右。
階段3:技術可行性、設計和開發
在確定了你想要APP做什麼以及期望它如何運行之後,你接下來必須要明確地確認將這些功能和特性開發出來並正常運行是能夠做到的。 在這個過程中,需要讓你的技術團隊參與確認,你想要給用戶帶來的功能和產品前端交互體驗是能夠在後端通過編程來實現的。 換句話說,你需要確保前端和後端系統之間的兼容性。 為此,你必須諮詢你的技術人員並與其合作。
前端系統包括一個軟件、應用程序或網站的可視化前端元素,它們可以被終端用戶直接查看和訪問。 相反,後端系統由一個網站、軟件或信息系統的核心計算邏輯組成,這些系統是可以供用戶通過前端應用程序或系統間接訪問的。
前端開發主要集中在開發的客戶端。 前端開發人員將參與分析代碼、設計和調試應用程序,同時確保提供一個無縫的用戶體驗。 你可以管理和控制人們在瀏覽器或應用中首先會看到的東西,作為前端開發者,你要負責網站的外觀、感覺和最終設計。
後端開髮指的是服務器端的開發,你主要關注的點是網站是如何工作的。 這種類型的web開發通常由三個部分組成:一台服務器、一個應用和一個數據庫。 後台開發人員編寫的代碼是將數據庫信息傳到瀏覽器或應用中。 任何你無法輕易看到的東西,比如數據庫和服務器,都是後台開發人員的工作。
從技術上講,前端流程包括緩存、同步、線框圖、UI設計、UI開發等。 數據存儲、用戶管理、服務器端邏輯、數據集成和版本控制等都屬於後端開發。 由於後端流程負責計算、業務邏輯、數據庫交互和性能等方面的操作,讓應用運行的大部分代碼都是後端代碼。
後端工程師要與前端設計人員保持持續的溝通,這一點至關重要。 否則你就有可能陷入這樣一種危險的境地:後端工程師無法開發前端設計人員想要的東西。
如果你想與後端基礎架構一起來開發前端移動APP,那麼最重要的是你要對所要開發的功能進行優先級排序。 讓你的後端工程師先開發,這樣你的前端工程師才可以開發功能代碼。 如果後端沒有很好地定義,也沒有相應的功能,那麼前端工程師的工作效率就會低很多。
開發APP的一個關鍵部分在於需要能成功地訪問你的應用運行的核心數據。 你是會使用公共API密匙,還是會開發自己的抽象層?
API的全稱是Application Programming Interface(應用程序接口),它代表了一種獨特的代碼,允許應用與應用之間(開發者)相互訪問。 一些全球知名的應用都有開放的API,比如Dropbox、Facebook、Instagram、Skype、Twitter和Uber,開發人員可以利用這些API來開發自己的應用。
例如,流行的基於滑動的交友應用Tinder就使用了Facebook的API:Tinder用戶通過他們的Facebook主頁登錄Tinder,正因如此,Tinder就沒有必要從零開始打造自己的用戶群。
確定前端和後端兼容性需要涉及各種不同的UX(用戶體驗)和UI(用戶界面)設計流程,包括線框圖:
作為UX設計的一部分,線框圖是一個頁面或應用界面的二維圖,主要展示的是內容的空間分配和優先級,可用的功能以及預期的行為。
線框圖主要是灰色的,主要幫助:
- 在APP的信息架構與它的視覺設計之間搭起一座橋樑。
- 闡明在用戶界面上所顯示的信息的一致方法。
- 確定交互界面中的預期功能。
- 通過確定給一個特定項目分配多少空間以及將該項目在屏幕上的位置,並進而來進行內容的優先級排序。
下面是Facebook的線框圖的例子:
在產品開發和優化週期的不同階段都可以製作線框圖。 例如,有些人會選擇在功能和特性階段早期製作線框圖,將線框圖與故事板和其它基本視覺表現的使用聯繫起來。 另一些人則在設計和開發階段製作線框圖,把它與對前端和後端兼容性的調查聯繫起來。
正如 Sheila Olson 所言,線框圖和故事板可以作為你用來支撐APP的後台架構的嚮導——API、數據圖、服務器、數據集成和推送通知服務。
對於那些在設計和開發階段製作線框圖的人來說,大概的順序是這樣的:
線框圖→ 低保真原型→高保真模型→代碼
一旦完成了線框圖的製作設計後,就可以創建應用的圖形用戶界面(GUI)了,這個界面是用來創建添加特定字體、顏色、主題和圖標的地方。
正如 Aim Consulting 的人所言,一旦設計元素完成之後,設計結果就能提供一個清晰的視覺方向,讓你的工程師了解預想的最終產品以及APP中的交互感覺、移動和流動應該是怎樣的。
你可以通過利用專門為這個目的設計的軟件平台來開發你的新APP(例如:應用程序開發程序,其中很多都是拖放界面)。 然而,我們建議你與一個專業的應用開發代理商合作,因為代理商在幫助企業家成功地執行他們的想法方面擁有豐富的經驗。
總而言之,進行技術可行性評估,確定前端設計元素,並編寫後端架構,這可能需要1-2個月的時間才能完成。
階段4:測試與改進
開發一款APP的最後一個階段(除了實際發布和相關的營銷活動之外)是測試和改進階段。
現在,從某種層面上說,測試是開發階段的一部分,因為你的程序員和Alpha測試工程師在開發過程中會不斷地嘗試打破你的APP,以便在其發布之前發現並糾正代碼中存在的 錯誤。
Alpha測試是你的公司內部的進行的,因為你的開發人員(無論是員工還是外包)將會在你的APP發佈到真實的終端用戶手里之前對應用進行標準化的診斷。
Beta測試的目的是在實驗室外測試你的APP:當真正的用戶有機會按照他們自己喜歡的方使用APP而不是按照你設想的方式使用APP時,這時會發生什麼呢? Beta測試的關鍵是要弄清楚當日常用戶將你的應用下載到他們的手機上並按照他們喜歡的方式使用應用時,你的應用是否能支撐住。
Alpha測試需要發現主要的bug和小故障,而Beta測試需要能夠發現APP在真實用戶的真實使用環境中可能會出現的問題。
Alpha測試(開發階段)和Beta階段(測試階段)對於打造一款可靠的應用都是必不可少的組成部分。
一旦你在你自己的開發團隊中對應用完成了Alpha測試後,你就應該將APP開放給特定的公眾進行Beta測試。
你如何才能為即將發布的應用找到合格的Beta測試者呢? 你可以通過一些基於Web的服務和平台來找到測試者,包括BetaFamily、BetaList、ErliBird、PreApps、TestElf、Reddit和UserTesting等。
如果你已經完成了一輪或幾輪Alpha測試,那麼你的Beta測試階段需要花的時間應該不會超過3-4週。
結語
在上面的時間基礎上,我們還為APP開發的四個階段分別還留有了一定的時間緩衝,因此我們最終計算出,開發完成一款應用所需的最終時間大概在4-5個月。 因此,我們會發現,開發一款移動APP是一個相當漫長而復雜的過程,需要大量的準備、耐心和投入才能正確地執行。
下面是我為大家的APP開發之旅提供的最後兩點建議:
(1)在製定APP開發時間表上,要保持適當的靈活性,要做好延遲的準備。 很多無法預見的情況都會造成時間的拖延,如iOS新版發布、第三方集成發生的變化、質量測試過程中出現的意想不到的問題等。 在完成開發的過程中,要給自己留出一個緩衝時間,而不是一個嚴格的最後期限。 你最不想看到的就是將APP發佈到應用商店後,發現這款應用崩潰了或者出現其它更糟糕的情況。 你只有一次給用戶留下第一印象的機會,你肯定不想成為那些在被用戶下載後就被立即棄之不用的APP。
(2)確保你能夠在APP發布後依然可以隨時與開發團隊溝通。 如果你正在與外部供應商合作開發你的APP,確保你在APP發布後通過託管服務協議或類似的合作夥伴關係來繼續與開發團隊溝通,移動APP並不是那種“一旦開發完成便終身無憂 ”的產品。
原文鏈接: https://medium.com/swlh/how-long-does-it-take-to-develop-a-mobile-app-77574df9d18d
譯者:達達。 由36氪編譯組出品。
編輯:郝鵬程、王雅琪
譯文地址:http://36kr.com/p/5117575.html
題圖來自StockSnap.io,基於 CC0 協議