App項目實戰之路(一):概述篇

原創文章,轉載請註明:轉載自Keegan小鋼數據庫

並標明原文連接:http://keeganlee.me/post/practice/20160807安全

微信訂閱號:keeganlee_me服務器

寫於2016-08-07微信


App項目實戰之路(一):概述篇架構

App項目實戰之路(二):API篇app

App項目實戰之路(三):原型篇工具

App項目實戰之路(四):UI篇post


我計劃作一款App產品,包括Android和iOS,作完打算將Android和iOS客戶端的代碼開源,並將上架到應用寶和AppStore,以後還會不斷迭代。而在作這款產品的過程當中,我會盡可能將一些相關的思考、決策、心得總結等整理成文分享出來。這個週期將會比較長,所以,文章我將以連載的方式發佈。學習

項目簡介

產品定位爲垂直於程序猿的社交App。前期的社交性會偏弱,功能上會有點相似於微博。但我打算將發佈內容分爲兩類:問答分享問答相似於StackOverflow的技術問答,程序猿能夠發佈技術問題,其餘程序猿能夠提供解答。分享則能夠發佈程序猿平時的生活趣事、學習筆記和技術文章等。用戶關係則打算採用和微博同樣的單向關注關係。另外,對每一個用戶會增長技術棧標籤的設置。程序猿能夠查看到與本身同技術棧的其餘程序猿發佈的內容,即便沒有關注關係。字體

整個項目會涉及到原型設計、UI設計、API設計、移動端開發、服務端開發、服務器選型、應用上架,我打算所有本身一我的搞定,至少堅持到完成初版的上架以後,纔再考慮是否邀請其餘人加入一塊兒搞。

原型設計我採用墨刀,一款在線的原型設計平臺,上手很是簡單。網站還提供了視頻講解的新手教程,很是方便。

UI設計我打算採用Sketch,一款專爲UI設計而生的工具。據聞能夠智能標記字體大小、顏色、間距等。也自帶了很是方便的切片工具,能夠輕鬆將一個圖標導出爲適配Android和iOS的各類尺寸。不過,目前還沒上手。另外,目前也正在學習色彩搭配相關的設計知識。

API我打算採用RESTFul架構,分別用POST、PUT、GET、DELETE方法對資源作CURD操做。使用RESTFul的難點在於如何定義好各類資源的表述,即URI的定義。

移動端開發則打算初版只用原生實現,可能Android和iOS同步開發,即開發完Android的一個頁面後,就開發iOS的同個頁面。另外,iOS開發打算用Swift,儘可能不用OC。

服務端開發打算用Spring Boot,數據庫可能選用MongoDB。

服務器選型則還沒想好,但應該也是在AWS和阿里雲之間選一個。

應用上架,iOS上App Store是必須的了;而Android目前只考慮應用寶,其餘市場上不上,到時再決定,這個能夠不急。

功能需求整理

App初版的功能需求,我想最簡化,只實現核心功能必需的,其餘功能,能不要就不要。最初時,我整理出的功能需求以下:

  1. 手機號 + 短信驗證碼註冊
  2. 手機號 + 短信驗證碼登陸
  3. 微信登陸
  4. 上傳圖片
  5. 修改頭像
  6. 修改暱稱
  7. 設置用戶技術棧標籤
  8. 獲取同棧之猿的內容列表
  9. 獲取關注之猿的內容列表
  10. 獲取同棧的用戶列表(未有關注之猿時獲取)
  11. 發佈問題
  12. 發佈分享
  13. 關注某條內容
  14. 取消關注內容
  15. 獲取內容的評論列表
  16. 添加評論
  17. 回覆評論
  18. 點贊評論
  19. 關注某用戶
  20. 取消關注某用戶
  21. 獲取某人詳細資料
  22. 獲取某人的發佈內容
  23. 獲取某人關注的人
  24. 獲取某人的粉絲列表
  25. 獲取個人消息
  26. 提交意見反饋
  27. 退出登陸

首先,註冊登陸我並無使用密碼的方式,而只使用短信驗證碼。主要是由於登陸密碼會引起一些麻煩的問題,好比如何安全傳輸?如何安全保存?2011年的CSDN、天涯、世紀佳緣等網站的「密碼外泄門」,和2014年的攜程「泄密門」,都證實了直接保存私密信息是不安全的。所以,我乾脆不使用登陸密碼了。並且,由於沒有登陸密碼了,相應的也不須要提供修改密碼和重置密碼的功能了。

接着,再考慮手機號 + 短信驗證碼的註冊登陸方式,其實也有問題:明顯依賴於短信平臺的穩定性和及時到達率。雖然有些平臺提供了免費的短信驗證碼服務,但這些平臺基本存在不穩定的狀況,常常會出現收不到短信或隔好久才收到短信的狀況。而穩定快速的短信平臺都是按條數收費的,這成本有點高。那麼,乾脆點,取消手機號註冊登陸的方式算了,只要有微信登陸就夠了。

另外,由於微信登陸後就能夠得到用戶的頭像和暱稱了,那麼,其實,修改頭像和修改暱稱的功能其實也能夠不須要了。

那麼,最後整理的功能需求能夠以下:

  1. 微信登陸
  2. 設置用戶技術棧標籤
  3. 獲取同棧之猿的內容列表
  4. 獲取關注之猿的內容列表
  5. 獲取同棧的用戶列表(未有關注之猿時獲取)
  6. 發佈問題
  7. 發佈分享
  8. 關注某條內容
  9. 取消關注內容
  10. 獲取內容的評論列表
  11. 添加評論
  12. 回覆評論
  13. 點贊評論
  14. 關注某用戶
  15. 取消關注某用戶
  16. 獲取某人詳細資料
  17. 獲取某人的發佈內容
  18. 獲取某人關注的人
  19. 獲取某人的粉絲列表
  20. 獲取個人消息
  21. 提交意見反饋
  22. 退出登陸

寫在最後

目前的進度就是完成了原型設計,並整理好了功能需求。對了,還有設計好了App Logo。接下來要作的就是根據功能需求設計REST API。


掃描如下二維碼便可關注訂閱號。

相關文章
相關標籤/搜索