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