原文:http://www.techug.com/post/how-to-develop-weixin.html

開發像微信這樣的APP的難點和重點

文章有點長,但是看完肯定有巨大收穫,特別是針對想從事互聯網行業想開發一個自己APP的人,這是我從自己多年外包和自己開發產品累計研發成本過千萬的情況下得出的經驗。

先說結論

騰訊開發微信花的成本應該超過10個億,真的技術難度很大,如果交給一個全棧工程師去做,可能要做1萬年。下面詳細的講解和分析爲什麼成本這麼高,都高在哪裏。

本人之前就是做APP軟件外包行業的,前後外包的APP開發上線過上百款,涉及領域從電商,教育,金融,物聯網,醫療都有。去年開始轉型,開始真正的開發了一款屬於自己公司的互聯網產品,期間真正的體驗了一把給自己做產品跟做外包的巨大差別,也能足夠說明爲什麼騰訊開發微信成本如此之高。

騰訊的微信開發成本高,大致可以分爲這幾種原因,以下會一一詳細說明:

  1. 功能的反覆修改造成成本龐大,研發的過程中可能會不斷的推翻之前的想法。
  2. 不同手機不同操作系統版本號,手機型號兼容性問題調試
  3. 龐大用戶基數情況下的高併發問題的處理
  4. 有些功能不是你想開發就開發(比如消息推送),還要跟第三方手機廠商洽談才能做,簡單來說可能要給第三方廠商錢。

1. 功能的反覆修改造成成本龐大,研發的過程中可能會不斷的推翻之前的想法。

我以前做外包公司的時候,大部分客戶APP項目的開發成本都在50萬以內,以二三十萬之間的價格比較多,以最基本的註冊登錄功能爲例。一般這種二三十萬開發的註冊登錄安卓,IOS,加上後臺的開發總耗時一般在2到3個工作日(3個工程師一起協同辦公的情況下),包括寫代碼和調試bug的時間。遇到繁瑣或者客戶要求比較高的,可能反覆改動下來總耗時一般不超過一週。

而我們真正在給自己做一個APP作爲自己的互聯網產品去運營的時候,我們光一個註冊登錄,就改了不下100次,前後總耗時保守估計超過50個工作日,花在光一個註冊登錄上的工程師的工資成本保守估計超過10萬。

那麼是什麼原因造成了我們給自己做APP產品的時候,要改100次以上,前後耗時要50個工作日,同時光一個簡單的註冊登錄工資成本要花十幾萬呢?

給大家簡單看一下注冊登錄頁面,說說這裏面的門道。

乍一看之下我們的註冊登錄頁面功能,支持手機短信註冊登錄,郵件註冊登錄,微信授權登錄,國際短信註冊,彷彿也沒什麼複雜的。

但是其實這裏面的門道非常非常複雜,我挑幾個典型事情說一下。

現在APP很流行做QQ或者微信的授權登錄,因爲做了授權登錄後,用戶可以更低成本的跳過註冊流程直接使用你APP的服務,這樣提高了APP用戶的使用率。

但是這麼做,是不是絕對的是好事呢?

這麼做或許對用戶來說是好事,但是對APP平臺方來說不一定是什麼好事。這麼做會導致一個很蛋疼的問題,就是你獲取不到用戶資料(用戶的手機號),微信授權登錄的時候,微信並不會把用戶的手機號或者是微信號給你,只會給你一個用戶的微信暱稱。這個東西並不能聯繫到用戶本人。

那麼用戶的手機號有多重要呢?拿到用戶的手機號,可以很大程度上提高用戶留存率!你們應該經常收到探探,王者榮耀,淘寶之類APP的短信,這些短信都是通過各種方式召回喚醒你這個暫時流失的老用戶,或者是提醒你出了什麼新功能新活動鼓勵你去消費。

你只要一段時間不上線,探探就會給你發最近2小時又有幾個美女小姐姐喜歡了你,讓你過來看看。而王者榮耀會給你發什麼諸葛亮新皮膚上線了之類的短信,召回和喚醒用戶讓用戶去玩。

如果沒有用戶手機號,那就無法發送短信的,那就根本就做不到這一點。這是一種重要的提高用戶活躍度和留存率的方式。

哪怕就是不爲了提高用戶的留存,如果用戶反饋了什麼問題和bug亟待解決,你也無法通過手機聯繫到用戶去幫他解決問題。因爲微信授權登陸你是什麼有效的用戶資料都拿不到的。

我們開始先是把微信授權登錄按鈕做的很大很顯眼,後來就發現超過90%的用戶都是用微信授權登錄,不用手機號或郵箱註冊。於是我們覺得這樣很操蛋,不行,要想辦法把微信的按鈕搞的不是那麼顯眼。那麼這個按鈕到底放到哪裏也很講究,太小了用戶找不到的話,可能也會導致註冊率降低,很多人嫌麻煩可能就不註冊了。太大了呢,就全是微信授權登錄的。

那麼就要不斷的去嘗試到底放在什麼位置剛好,既希望用戶通過手機號或郵箱來註冊,同時希望他忽略微信。但是如果他一定要找微信又能找得到。

可能這麼一個東西就夠你調整五六次反覆去嘗試。

同時很多人可能做了微信授權登錄又讓用戶首次的時候必須要強制綁定手機,這種機制也可能會引發用戶反感,繁瑣的流程可能會導致用戶放棄註冊或卸載APP。那麼如何去設計註冊登錄提高註冊率,每個細節都成了一個很值得琢磨和嘗試的問題。

同時又比如說短信註冊這塊,你的APP支持不支持國際短信可能難度又差了N倍。如果你有海外用戶的話,那麼可能你還需要國際短信註冊。同時又可能有些短信通道發送短信速度過慢,或者特定條件下無法發送出去,到達率低等。那麼這時候還要設計一套機制來保證短信的發送率和到達率。

比如一般的短信通道是不接召回短信的,那麼你還要有路子搞到能發召回短信的通道。以我們自己的產品爲例,光短信通道就對接了3家,在不同的條件下用不同的通道來發送短信,搞這麼複雜的目的是爲了保證短信的發送速度和到達率以及其他的一些特殊情況。

光一個註冊流程諸如此類的細節問題就不低於十幾種。每種解決起來背後都要經過大量的嘗試和成本。每一個文案,每一個按鈕擺放的位置,顏色,都是經過大量的實驗得出的結果,而不是拍腦袋得出的。

那麼這麼做有什麼用呢?

我之前跟很多其他運營APP的公司聊過,很多人的下載到註冊率只能達到70到80%,低的只有60%,我們一開始的下載和註冊率也只能達到75%到80%之間。而經過一系列長期的優化,現在可以達到95%左右的下載到註冊率。穩步提升了15%左右的註冊率。

這意味着,如果同樣的100萬人下載我的APP,原來只有75到80萬會註冊成功去嘗試我後續的APP服務,並可能長期留下來成爲我的用戶。而現在100萬用戶裏會多出來15萬人嘗試併成爲我的用戶。

你說我這時間和精力花得值不值?

雖然回過頭來在看,如果我們在研發的過程中想法不出現偏差,直接是像素級抄襲別人的東西那成本肯定低得多,因爲不同自己思考爲什麼,也不存在反覆推翻自己的過程。好比我原來註冊登錄花了十幾萬,那如果是有現成的抄襲的話可能2萬成本就能搞定。但是你要想清楚,每個產品的特點都不是不一樣的,不同APP的用戶特性也決定了註冊登錄頁面設計成什麼樣子才合適,別人的不一定適合你。

Ps:有興趣的人可以研究下知乎的註冊登錄頁面,也是暗藏玄機,任何大公司的APP產品,可以說註冊登錄頁面幾乎每年都在優化。其目的都是不斷的嘗試進一步提高產品的下載到註冊率。你們多下載幾個大公司的APP就知道了。

我們作爲一個小公司,光一個註冊登錄都做了十幾萬,而一個大公司可能光琢磨一個註冊登錄反覆修改下來成本花上百萬也正常。而我們之前做外包項目呢?一個註冊登錄撐死跟客戶收個5000塊,一般兩三天搞完。這些細節有成本有預算去考慮嗎?

而且這還只是一個註冊登錄,一個用戶體驗稱得上好的軟件既要平衡用戶體驗又要把用戶引導像你需要的程度,那就需要每個功能都反覆斟酌嘗試。用戶體驗要好這六個大字,花多少錢都不爲過,所以這也就是我前面說的,大公司的APP可能每個功能都是改過幾百次上千次的。

別人都說,大繁至簡,但是在這裏我想說一句,大簡也至繁。

2.不同手機不同操作系統版本號,手機型號兼容性問題調試

微信作爲一個國民級應用,在不同手機上的兼容性是做的很好的。但是這不代表這件事簡單,大家肯定經常發現各類APP在手機上出現閃退,卡死,黑屏的情況。一般越是小公司做的東西越可能會這樣。

IOS還好,國內光主流的安卓機型就有幾百款,如果你要你的軟件在每款手機上都能完美運行,不出現太多的閃退。那光把測試機型買齊就要上百萬。買齊了後任何一個功能都要在不同品牌,不同操作系統版本號的手機上去測試。

又可能你的APP在華爲P8上不會閃退,但是可能華爲P9就會閃退,甚至可能打都打不開。也就是說不光是跨廠商,即使是同一個廠商生產的不同機型都可能會出現不同的問題。但是用戶可不管你那麼多,你APP如果頻繁閃退,面臨的必然是被卸載的結局。

還有一點很重要的要告訴大家的是,相對於買齊各類手機來測試的硬件成本來說,這個成本只是九牛一毛,真正高昂的是測試人員和你測出來後還要修復bug的程序員的工資成本。你不可能測出來bug不修吧?

一般大公司的產品,背後可能光測試人員都幾十個人,每年發工資幾百萬甚至上千萬。

小的APP開發商無法很好的做到這點,一般也就搞個十幾臺手機測試就了不起了,有些甚至只在自己一個人的手機上測試一下。所以也就導致了閃退頻發。並不是你把功能代碼寫完了,就萬事大吉了。各種兼容性問題如果要解決好,絕對是夠你喝一壺。

3.龐大用戶基數情況下的高併發問題的處理

這個問題前面的人說的都很多了,我就不說太多。簡單來說同樣一個功能,你1萬日活和1億日活的時候,會導致功能實現方式和成本上根本的變化。

微信在例如搜索等功能的研發成本上,並不是簡單的一個付出了多少人員工資成本的問題。微信作爲騰訊系的核心產品,裏面用到的技術並不一定僅僅來自於微信團隊自身的積累。騰訊在開發其他產品上的技術完全可以支援和嫁接過來,那麼之前研發別的產品上的技術研發成本在微信裏相當於是不需要走彎路了。

但是不是每個公司都有技術可以拿過來嫁接的,別人有不代表你有。

完全不可同日語。當然很多小公司一般根本不會遇到這個問題,所以也不需要考慮。

4.有些功能不是你想開發就開發(比如消息推送),還要跟第三方手機廠商洽談才能做,簡單來說可能要給第三方廠商錢。

大家應該都知道APP下拉框的消息推送功能。而消息推送要做好絕對是一個很坑爹的東西。基本小公司的消息推送都不是自己做,而是用環信和騰訊的一些第三方的系統來對接實現。當然你會看到騰訊和環信這些公司的官網上,會寫着一些5分鐘,三行代碼對接之類的話。

不懂的人很容易誤以爲APP的消息推送功能實現起來真的只要3行代碼五分鐘搞定。因爲這些第三方的公司只是相當於發送推送信息的通道,但是你APP具體的推送機制,在什麼情況下推送還是要你自己來設計的。而設計這個東西對很多APP來說就非常複雜了。

以知乎爲例吧,有人給你點讚了推送,有人關注你了推送,有人私信你了推送等等等等。這裏可能就分爲十幾種到幾十種情況,並且還不是來了消息就推送這麼簡單,因爲如果來一條信息你就推送一條。那麼遇到晚上用戶睡覺了你還一直推送可能就會導致用戶關閉推送功能甚至是卸載APP。同樣哪怕是白天,過於頻繁的推送也可能會導致用戶反感,那麼這時候設計一套合理的推送機制就很有挑戰。

既既要用戶能收到你的推送來提高APP的打開使用率,又要不導致用戶反感是非常難的。這時候可能還要設計當多種推送條件都達成的時候,只推送其中部分消息。你也要考慮,你想以推送的形式告訴用戶的東西是很多的,但是又不可能個個都推。那麼這時候還要深入考慮如何去取捨。

En…….最後你以爲你把機制搞清楚了就萬事大吉了?

這只是個開始,這麼說吧,你後續還會遇到一系列更操蛋的問題。比如你會發現IOS的推送還好,用戶基本都能收到。但是安卓的用戶卻老是根本收不到你的推送。這是爲什麼呢?

因爲不同的安卓手機廠商可能在系統上就限定死了你必須要用他提供的推送接口,否則是推不過來的,你的程序在後臺運行的時候會被系統本身殺死而導致你的推送信息發不過去。那麼這時候你又要針對不同的系統去開發不同的推送功能。

最最蛋疼的是,有些廠商比如OPPO,你想做都做不了。我們之前就發現我們用戶裏面很活躍的一款機型OPPO R9,發現在OPPO R9這款機型上,大部分APP一安裝,默認就是禁止推送的狀態。只有小部分的例如微信,QQ,微博,知乎這樣的APP的推送是默認開啓的。而哪怕是百度貼吧,快手這樣的大公司的APP的消息推送默認也是被禁止的狀態。

從這點看知乎還是很牛逼的,能做到跟微信QQ微博一樣讓OPPO默認開啓他的推送。至於這是怎麼做到的,我暫時還不清楚,但是在官方並沒有明確的文檔來告訴你怎麼搞。

我懷疑可能是這個事情要給OPPO錢,或者要去找他們談纔可以。而小公司在這點上根本是無能爲力的。

對於有些人說註冊登錄是小功能,應該好好把時間用在做產品上的我做個解釋。

註冊登錄不是小功能,是最最基本的功能,你你APP的門檻。如果連最基本的註冊登錄都做不好?怎麼保證其他的功能可以做得好?又何來產品體驗好只說?

對於一個互聯網公司來說,每一分錢都是應該花在刀口上的,現在這個年代獲取一個用戶的平均成本已經相較於移動互聯網剛起來那會比如2012年上升了幾百倍。獲取任何一個用戶都來之不易,很多APP現在獲取一個用戶的成本早已高到了十幾元甚至幾百元一個下載,如果控制不好下載到註冊的轉化率。會導致你大量推廣的錢白白浪費,因爲在註冊這步就有大量的用戶流失,那相應的APP的留存率和日活躍肯定也會隨之被拉低。

同樣的我想說一句,現在是2018年,人不能活在過去。2012年那會你隨便做個什麼東西可能都能獲得大量用戶和大量好評,因爲那會稀奇還什麼都沒有。你的用戶體驗再查,UI界面再難看,功能在不好用,可能用戶都可以接受。因爲那會大家都差不多這水平,都很差。

但是現在已經2017年了,大部分APP的用戶體驗相較於2012年那早已不可同日語,BAT這類大公司投入的天量研發投入已經把整個市場的門檻和平均水平大大提高。用戶對你的要求和預期早已不是2012年那樣了。

現在你再把一些2012年做的東西拿到2017年來看,那可能是一坨大便。那麼越是後期去創業,市場和用戶對你的要求也越高,因爲基本需求已被滿足,蛋糕也被分得差不多了。那麼現在殺出來的,一定更有可能是各種細節都能優化的非常好的,只有細節的堆砌才能決定所謂的用戶體驗好。

用戶體驗好 這五個大字,豈是那麼容易得來的?不優化打磨產品各種細節,你的日活和留存率從哪裏來?指望天數掉餡餅?

相關文章