本文僅從個(gè)人作為一個(gè)三流跑偏程序員的角度思考,而且對待產(chǎn)品的認(rèn)知和思維也比較初級,實(shí)現(xiàn)方式也比較草根,沒法與真正的大型項(xiàng)目相提并論,其中有些觀點(diǎn)也可能是錯(cuò)誤的,希望不要對他人產(chǎn)生誤導(dǎo)。
或許標(biāo)題換成“如何一個(gè)人從0到1實(shí)現(xiàn)一款app產(chǎn)品“更合適些,關(guān)于這個(gè)問題,我之前也有在知乎上回答過,今天從新梳理下,因?yàn)槊總€(gè)人都有自己的答案,一個(gè)人的不同階段,也有不同的答案。
其實(shí)完成這樣一個(gè)任務(wù)并不難,只需要毅力與時(shí)間,但對于如何成功完成我至今沒有答案,還在摸索中。
下圖是我回憶自己開發(fā)過程中大概涉及到的解決方式,條條大路通羅馬,每個(gè)人都需要選擇適合自己的,僅作參考。
當(dāng)我頭腦中有了一個(gè)想法并想實(shí)現(xiàn)它的時(shí)候,流程如下
1.簡單的調(diào)研。
前提條件是你沒有優(yōu)秀的技術(shù)團(tuán)隊(duì),沒有流量資源,沒有雄厚的資金支持等先天優(yōu)勢。
那么如何驗(yàn)證自己的想法是否靠譜呢,可以借助很多方式,如果你的產(chǎn)品沒有自己的流量來源而是要和一眾產(chǎn)品廝殺,可以試試如下方式。
微信指數(shù)小程序,搜索下關(guān)鍵字微信指數(shù),如果指數(shù)達(dá)到了你的心理預(yù)期,則需求存在。
各大應(yīng)用平臺關(guān)鍵字搜索同類產(chǎn)品,這里也許有人會(huì)說,我的想法獨(dú)一無二,目前市面上還沒有同類產(chǎn)品,那我覺得該恭喜你,如果你的產(chǎn)品邏輯ok,何不按照自己的思路實(shí)現(xiàn)出來交給市場驗(yàn)證。但絕大部分想法都會(huì)有同類產(chǎn)品已經(jīng)出現(xiàn),除非你是世界上少數(shù)的聰明人。
如果同類產(chǎn)品非常多,說明大方向沒錯(cuò),但是很多人已經(jīng)走在了你的前邊,這時(shí)就要考慮要么你的產(chǎn)品足夠優(yōu)秀,可以脫引而出,但對于一個(gè)人來說難度較大,要么你的產(chǎn)品有自己的唯一不可替代性。畢竟一個(gè)很殘酷的事實(shí)是,關(guān)鍵詞搜索流量的相當(dāng)大比例只給了第一頁。
如果同類產(chǎn)品非常少,但是評價(jià)很少,說明用戶量不大,需要慎重,如果評論很多,則需求存在。而且評價(jià)還有一個(gè)非常重要的用處,可以分析自身和競品的缺陷與優(yōu)勢,取長補(bǔ)短,幫助自己完善想法。
2.初步構(gòu)思。
經(jīng)過初步的驗(yàn)證,想法ok,便可以構(gòu)思產(chǎn)品,我習(xí)慣用思維導(dǎo)圖來梳理和完善邏輯,發(fā)現(xiàn)問題。
構(gòu)思產(chǎn)品的初步模型,確定UI,能設(shè)計(jì)流程圖最好,借助墨刀,Axure RP 等,或者采用你喜歡的方式,我其實(shí)是沒有做設(shè)計(jì)流程圖這一步的,能力有限,而且不太喜歡在這上花太多時(shí)間。
3.技術(shù)選型。
我之前一年采用的方式一直是服務(wù)器用nodejs,客戶端用react native,這樣的原因是開發(fā)語言學(xué)習(xí)上不需要花太多的時(shí)間。客戶端使用rn沒有使用原生的原因也是因?yàn)閞n就可以滿足我的產(chǎn)品需求而且性能還不錯(cuò),節(jié)省時(shí)間成本。但不得不承認(rèn)我在rn上花了很多時(shí)間去填坑,這也是我在下一款產(chǎn)品中改用flutter的原因。
對于app前端跨平臺語言的選擇上,需要考慮,性能是否ok,與原生的交互,使用的人數(shù),文檔的完善度,社區(qū)活躍度,學(xué)習(xí)成本,綜合考慮選擇適合自己的就好。
4.開始編寫
app端涉及的包括UI,數(shù)據(jù)存儲,網(wǎng)絡(luò),推送,異常捕獲,數(shù)據(jù)統(tǒng)計(jì),云控系統(tǒng),版本控制,當(dāng)然有些產(chǎn)品還需要某一方面極強(qiáng)的專業(yè)性。我的原則是能用三方的盡量用三方,把時(shí)間節(jié)省出來,而且我不認(rèn)為自己實(shí)現(xiàn)的會(huì)比市場上驗(yàn)證的三方更好。但我不會(huì)因?yàn)闀r(shí)間問題而去省去其中某一部分,尤其是數(shù)據(jù)統(tǒng)計(jì),看似可以忽略卻對產(chǎn)品后續(xù)至關(guān)重要。
服務(wù)器端我不敢提及太多,因?yàn)榉?wù)器端我基本都是自學(xué)的,很初級,緊緊停留在能用的階段,說實(shí)話,我希望有一天我的技術(shù)支撐不了我的產(chǎn)品,那說明用戶已經(jīng)達(dá)到了一個(gè)量級,那時(shí)我會(huì)去尋找優(yōu)秀的人幫助。
編寫過程中,首先保證穩(wěn)定性,可擴(kuò)展性,如同武俠片中,我更喜歡穩(wěn)扎穩(wěn)打,簡單有效而不是眼花繚亂的招式,我可以在實(shí)現(xiàn)方式上偷懶,但是我不會(huì)在功能邏輯上偷懶,盡量在設(shè)計(jì)功能上做到最大化的動(dòng)態(tài)控制,這里忽略了安全性,原因是我對安全性方面理解還不是很透徹。
語言本身只是一種工具,更重要的是思路,有了思路后要做的就是使用相應(yīng)的語言實(shí)現(xiàn)方式,畢竟語言都是給人用的,不存在會(huì)與不會(huì)的問題,學(xué)習(xí)時(shí)間長短確實(shí)是有差別的。
對于遇到難題,可以解決但需要花時(shí)間的問題,假如有其他方式解決,我會(huì)選擇退而求其次,有些也可以從設(shè)計(jì)上作出讓步,這也是我喜歡一個(gè)人編程的原因之一。
第一個(gè)版本上線時(shí)間節(jié)點(diǎn)很重要,盡量只完成核心功能,這樣做好處是縮短開發(fā)周期??梢员M快讓市場去驗(yàn)證,而且用戶反饋可以讓你及時(shí)作出調(diào)整,還能調(diào)動(dòng)你的積極性。至今仍然謹(jǐn)記曾經(jīng)一位老大說過“小步快跑”。
我覺得這比把一個(gè)產(chǎn)品做的自己覺得完美再上線更好。而且開發(fā)周期越長,人的耐心會(huì)越小,很容易出現(xiàn)半途而廢。打磨產(chǎn)品本就是一個(gè)漫長且磨人心智的過程,如果能獲得用戶反饋,無論認(rèn)可或者批評都會(huì)給人很大動(dòng)力。
現(xiàn)階段,我基本不會(huì)去提前做技術(shù)儲備,基本都是遇到了問題才會(huì)去找網(wǎng)上找實(shí)現(xiàn)方式,而且選擇的大都是簡單初級的方式,這確實(shí)比較low。
5.產(chǎn)品完成,部署服務(wù)器,申請域名,準(zhǔn)備上線。
蘋果審核涉及到技術(shù)網(wǎng)址,隱私政策,而且誰都希望自己都app最起碼有個(gè)下載頁,對于提高產(chǎn)品都逼格是有幫助的,所以最好申請個(gè)心儀的域名。還有就是小程序需要支持https的域名。服務(wù)器的選擇,我使用的是阿里云,還是一樣選擇適合自己的。
關(guān)于服務(wù)器的運(yùn)維是需要了解學(xué)習(xí)一下的,即使有人可以幫忙,最好也還是自己來維護(hù)會(huì)比較方便及時(shí)。
很高興,終于到了提交這一步,目前安卓渠道原則上都需要軟著,正常申請周期3-5個(gè)月,涉及支付等敏感功能等還需要公司資質(zhì),這些最好也都提前了解下。
提交平臺,app store的提交流程相比android會(huì)麻煩些,應(yīng)用寶,百度對軟著要求比較嚴(yán)格,應(yīng)用寶第一次審核通過后,后續(xù)版本審核會(huì)比較快,有時(shí)甚至幾十分鐘過審,一般也在幾小時(shí)以內(nèi),百度,阿里聯(lián)盟一般在一天以內(nèi),小米平臺拒絕盒子類app審核,應(yīng)用截圖有改動(dòng)必須及時(shí)更換。如果能申請某個(gè)平臺的首發(fā)對初始流量獲取也幫助很大。android平臺眾多,其他渠道我了解不多。
6.產(chǎn)品上線,剛剛開始
當(dāng)app過審,用戶開始下載使用,服務(wù)器一條條日志輸出,一個(gè)產(chǎn)品的生命才剛剛開始,當(dāng)我看到后臺一條條日志輸出時(shí),覺得那就像流動(dòng)的血液。至此也就是完成了從0到1的過程,后邊是從1到100,我覺得相比于從0到1,從1到100才是給我們最大到挑戰(zhàn),這也是我一直在摸索和學(xué)習(xí)到階段。
aso可以幫助更好獲得流量,如果你的產(chǎn)品關(guān)鍵字優(yōu)化到第一頁會(huì)有可觀的流量。
切勿重技術(shù)輕運(yùn)營,沒有孰輕孰重。
盡可能找到好的流量獲取入口,有效的引流。
7.有時(shí)也許可以改變一種方式
驗(yàn)證一個(gè)想法沒有必要非得依賴app,畢竟開發(fā)周期比較長,可以嘗試使用小程序去驗(yàn)證,周期會(huì)縮短,甚至有些想法完全可以通過社群等簡單方式去論證,當(dāng)可行后再開始也許更合適。
以上是我總結(jié)自身的一點(diǎn)點(diǎn)經(jīng)驗(yàn),希望可以對你有所幫助,最近我在思考一個(gè)人如何高效的運(yùn)營自己的app,這其實(shí)是我遇到的一個(gè)問題,我沒有辦法把有限的時(shí)間同時(shí)分配給產(chǎn)品的運(yùn)營和技術(shù)開發(fā),所以希望可以找到行之有效的方式。
初步構(gòu)思是實(shí)現(xiàn)一個(gè)運(yùn)營機(jī)器人,它包括基礎(chǔ)的客服功能,建立與客戶的聯(lián)系,接近人的認(rèn)知功能,比如可以在用戶作出一個(gè)動(dòng)作后給出近似人的反饋,用戶畫像功能,分析用戶從而發(fā)現(xiàn)問題反饋給開發(fā)者,智能的內(nèi)容維護(hù)系統(tǒng),給予用戶優(yōu)質(zhì)的內(nèi)容提供。這可能會(huì)涉及到機(jī)器學(xué)習(xí),但就像之前我提到不會(huì)提前做技術(shù)儲備,只有當(dāng)我需要時(shí),我才會(huì)去跟進(jìn)。
總之,我希望的是讓產(chǎn)品有它的生命,它會(huì)成長,會(huì)進(jìn)化,甚至不需要我的干預(yù),我所做的就是創(chuàng)造出初級的它,而它的成長過程中我需要做的就是服務(wù)于它。