獨立開發者|社交應用獨立開發紀實

7 評論 7269 瀏覽 21 收藏 16 分鐘

以下就是我13年大二暑假做的項目,第一個獨自設計開發的Android應用--CoY。

想起當年的生活也是挺苦的。那是廣州最熱的時候,每天待在宿舍里除了敲代碼外就是做設計。還記得有一天晚上熱得要命,開著風扇也睡不著,12點躺在床上渾身大汗,洗了個澡到了2點還是睡不著,4點再洗了個澡,6點被熱醒后又洗了個澡后就起床干活了,那天我真的哭了,因為這生活真的太苦了,關鍵是自己逼自己。

這個應用的誕生是有一個挺可悲的故事的。曾經在校道上我碰見了一個非常清純的妹子,每次都是單身一人和我在校道上擦肩而過(肯定沒有擦肩orz但想不到其他詞了),我一直在心里問這妹子這么漂亮肯定有男朋友吧,如果沒有的話我就應該勇敢點搭訕…結果就這樣過了一年多…就在我大二生日那天,我突然發現這妹子牽著一個男生的手…而且這男生比她還矮…好吧…這外貌…hehe…當時我就真的懵逼了,莫名的怒火涌上大腦,媽的早知道我就該早點搭訕了,估計也輪不到這兔崽子。就是因為不知道女神有沒有男朋友,所以一直沒敢向前,呵呵,我一定要解決這個問題。

苦思了一周后,結果我沒有想著看看如何搭訕泡妞的書,卻決定要做一個應用出來。嗯,之前買了好多關于Android的開發書,這個應用就用Java開發好了,查了下單詞,暗戀英文叫Crush on You,縮寫coy也有怕羞的意思,這英文鐵定是以后APP的名字了。

到了5月份我開始看數據庫優化和安卓開發的書籍,大一已經有做網站開發的經驗,因此5月末的時候我已經用PHP和MVC架構把后臺搭建的差不多了,包括建立了與客戶端交互的接口以及如何各種調用數據庫的命令。數據庫是最重要的,一個產品的核心可以認為就是數據的結構和邏輯。這個應用的核心我認為有兩個,連接和問答。

連接:

之前看過一部叫《六度人脈》的書,主要講只要你通過6個人就能認識全世界的任何一個人;也有一本書叫《大連接》,主要講美國60%的情侶都是在校園,工作地方等通過熟人介紹認識的,而且你和你未來老婆之間其實只隔了1-2個同學或朋友(意思是你的朋友的朋友或者你朋友的朋友的朋友可能就是你未來老婆)那么如果要知道女神有沒有男朋友,肯定不是讓她回答(她不好意思我也多不好意思…),而是讓她的朋友告訴你,這么一來我的朋友或者我朋友的朋友就能告訴我女神有沒有男朋友了,是不是感覺好簡單?

那么我怎樣才能把這些人聚集進我的APP里呢?我又怎么讓這些人加現實中的朋友為應用里的好友呢?從0開始建立關系是非常不明智的,這時候我想到了微博和人人網,大學生基本都會有自己的微博和人人網,自己關注的人除了大號外就是自己的朋友,關注我的人除了朋友外就是對我感興趣的人或僵尸粉,這么說相互關注的人八九不離十都是認識的朋友。微博的用戶量比人人網多很多,而且微博的OAuth2.0技術已經很成熟了,還可以通過微博授權獲取用戶的相互關注列表,所以當時選擇了微博為基礎。

使用微博OAuth2.0還有一個好處是如果手機里有微博客戶端,可以通過微博的sdk直接調用微博授權,可以免去用戶在CoY填寫微博賬戶和密碼,減少了用戶對此隱私性的煩惱,而且一鍵登錄微博注冊CoY節省了用戶的輸入成本。

通過CoY用戶間的微博相互關注列表做交叉對比就可以知道哪些用戶間是有關系的,將用戶在微博的關系轉化成CoY的關系,從而大大降低了用戶在CoY增添好友的難度,這樣可以起到一個很好的破冰作用。

Artboard 2副本

由于微博的關系是動態的,所以用戶登錄時每天會拉取三次互相關注列表來動態更新CoY中的好友關系,這樣也保障了不斷多的用戶進來時每位用戶都能智能發現老朋友入駐CoY。

一鍵登錄微博授權和智能發現增加好友是CoY的最重要的用戶體驗和核心所在。

問答:

怎么問這妹子是不是有男朋友?

  • 我不知道她叫什么名字;
  • 用文字我也不知道怎么形容她;
  • 我更不知道她微博微信是多少

我怎么來告訴別人她就是我要找的人呢?

好吧,只能光明正大的拍一張她的照片然后放上CoY問其他人了。這是我最糾結的功能,因為我是一個非常注重隱私的人,但沒有它這應用是絕對完成不了的。

我思考了好久,平時我們也是通過眼睛和手指指問朋友這人是誰以及了解她的信息,我們從朋友那獲取信息理論上是沒有侵犯到她的隱私權,所以理論上通過照片問別人這人叫什么名字和一些簡單的信息也不算是侵犯她的隱私的。

在做這功能時也咨詢了在校的法律系學生和外面的律師朋友,確保這應用不會因為隱私權的問題影響到我。為了保守起見,我對于用戶輸入環節做了苛刻的限制,用戶不能通過輸入文字來問問題(因為輸入文字可以產生無窮無盡的問題),用戶只能上傳照片并通過系統的固定問題去問問題,用戶得到的反饋也只有這妹子有沒有男朋友的答案yes和no的比例以及回復的用戶(這措施也對于CoY的商業模式產生了很大的影響)。很多用戶可能會擔心身邊朋友知道自己喜歡誰,為了讓廣大用戶安心地發照片,我還特意開發了一個匿名模式,就是誰也不知道是誰發的照片。

系統固定的問題只有5個:

  • 你是否知道他\她是不是單身(知道,分享出去問問別人)
  • 她\他是不是有男\女朋友?(是,不是)
  • 你確定嗎?(是,不是)
  • 你和她\他的關系是什么?(朋友,陌生人)

根據4的回答會產生問題5.你和她\他的關系很要好嗎?(一般、很要好)

在這里會對回答進行篩選。如果問題3回答了“不是”系統不會錄入該數據;由于附近的人也可能看到過這妹子是不是跟一個男的在一起,所以陌生人的答案也不能忽視,如果問題4回答了“陌生人”,系統會根據生成問題和回答問題時的地理坐標進行距離判斷,如果超過2公里的也不錄入系統中,這樣最基礎地保障了陌生人數據的良好性。系統也會給陌生人、普通朋友、好朋友不同的權重,用戶通過不同的權重的回答從而可以判斷這妹子是不是有男朋友,以及可以套一下該妹子的朋友近乎(可能也就是你的朋友),私下問問相關妹子的信息,從而對妹子更多了解,也從陌生人往“這是我介紹的朋友”方向發展,增加成功率。

Artboard 4

設計

以上就是CoY的兩大核心,接下來我需要圍繞這兩點進行設計。當時開始流行扁平化設計,剛好我對擬物設計感到非常頭疼,決定從0開始學習android4.0設計規范,一定要做出一款最符合Android設計規范的Android應用來。

當時也非常流行漢堡菜單,漢堡菜單可以提供一個很好的沉浸式體驗,把大部分功能隱藏在界面之外,所以我也采用了該導航設計,以下為該應用的信息架構和部分視覺圖。

5_CoY

Artboard 2

我是一個非常重視用戶的使用流程的設計師,我會盡量去壓縮流程的讓用戶用最短的路徑去完成最多的事情。

未登錄時用戶可以查看附近兩公里內用戶發布的圖片,當用戶選擇回答問題時自動定位到登錄頁面進行登錄。

  • 一鍵登錄微博注冊相關信息并找到好友。
  • 三步回答問題。
  • 三步發起問題,拍照\選擇照片-裁圖-選擇是否匿名發布
  • 一步查看答案。

還有首頁展示的圖片會根據手機分辨率進行縮放,保證圖片不會被拉伸變形。此外還做了一個細節設計,當查看回答問題的小伙伴時,向上滾動時背景會逐漸模糊,類似于Yahoo天氣的滾動動效。

0d338744ebf81a4c4364e1e7d52a6059252da64d

開發:

一定要學會用google搜東西,嗯,搜技術帖還是用google吧,學會在Stack Overflow看解決方法,在Github上查找第三方開發者提供的庫,例如漢堡菜單這些有現成的安卓庫不需要自己開發,只要學會看懂和怎么改代碼就好。

當時github上有一個網絡連接庫比原生的性能要高很多,為了提高網絡下載和上傳的速度提升用戶體驗,這個庫也被我放在CoY里使用,定位這些使用百度地圖提供的SDK,微博登錄使用官方提供的demo和API,這樣能大大降低開發成本。

設計數據庫占用了我大量時間,當時主要在啃一本叫《高性能Mysql》的書,在里面可以學到很多關于數據庫優化的方法,例如利用trigger和事務等方法減少連接數據庫次數,選擇更有效的索引和如何更優地聯表查詢等等方法減少查詢時間。通過后臺的優化從而提高整個應用的響應速度,提高用戶體驗。

最后由于為了省錢選擇了百度的BAE作為服務器,結果大部分數據庫的優化工作都白做了orz,當時心有點疼。但還好,整個app從上線到下線服務器那邊也基本沒怎么花錢,降低了開發成本。

13年時普遍網民還停留在2G時代,平均每秒30KB左右,為了讓用戶最快看到圖片和上傳圖片,我對比了壓縮圖片的比例和質量,在不影響體驗的情況下選擇將每張照片的等比例壓縮率控制在30%,每張照片大小大約為20kb-30kb,由于一張圖片幾乎占了一屏,通過lazyload(就是滑屏到某個位置時才去拉取照片)的方法去加載圖片,用戶基本不會感覺到加載圖片的環節,讓整個用戶體驗上升。

滾動模糊的實現方式也困擾了我好久,由于每次通過y軸判斷用戶滾動距離而去渲染模糊效果會嚴重影響GPU,導致整個應用卡頓到無法使用。最后我采取了渲染一次圖片模糊效果并疊放在清晰圖片上面,用戶在滑屏時,控制模糊照片和清晰照片的Alpha(透明度)來達到逐漸模糊的效果。

總結一下,設計決定用戶體驗,產品性能是影響用戶體驗的關鍵因素之一。

后話:

上線后有些用戶問我幾時有iOS版本當時讓我小激動了好久,但因為不懂運營,CoY上線幾個月后就下線了(下線前被我拿去各種比賽,還好獲得了一些還不錯的成績),所以說團隊很重要,單槍匹馬做產品是很難成功的。這個概念有點超前,但不明白大家包括一些天使投資人為什么都覺得這個就是陌陌,也讓我心疼了好久。

獨立開發應用也讓我對交互設計和用戶體驗有了更深一步的了解,畢竟體驗是要靠技術和設計換來的,兩者不可缺一,只有真的懂兩者(無論是個人還是團隊)才能做出好的用戶體驗。

獨立開發很苦,別人在玩的時候你還在默默地干活;別人睡覺了你還在苦逼地找資料看書,但獨立開發給我帶來的好處有太多太多,我不用求人家來幫我干活,自己的想法自己做主;一說自己是獨立開者也會有點小驕傲;獨立開發可以對整個項目會有更全局的理解,每次的解決問題都會考慮到更多因素,由于思考比別人多也會比其他人走得更遠。即使現在工作崗位是一名交互設計師,但我也不會放棄獨立開發這條路,畢竟這條路也可以走很遠很遠:)

 

作者:薛志榮(微信公眾號:薛志榮),百度交互設計師,一年級生,目前負責手機百度相關交互設計。

本文由 @薛志榮 ?原創發布于人人都是產品經理。未經許可,禁止轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 能夠有全棧開發的想法和執行已經不錯了
    這樣的經驗很難得

    回復
  2. 炸克格勃的Facebook也是為了泡妞而做

    回復
    1. 哈哈哈哈哈哈

      來自北京 回復
  3. 我覺得挺牛逼的

    來自上海 回復
    1. 謝謝

      來自北京 回復
  4. 無語,這也叫全棧工程師?別侮辱全棧這兩個字好吧…我知道做個東西出來確實不容易,但全棧又豈是你說的這么簡單,這樣的經歷拿去企業,可以入職,但職位不高。撤了,最后丟個炸彈,如何商業化??

    回復
    1. 標題是woshipm改的,不是我寫的

      來自北京 回復