原創文章,轉載請註明:轉載自Keegan小鋼數據庫
並標明原文連接:http://keeganlee.me/post/practice/20160807安全
微信訂閱號:keeganlee_me服務器
寫於2016-08-07微信
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初版的功能需求,我想最簡化,只實現核心功能必需的,其餘功能,能不要就不要。最初時,我整理出的功能需求以下:
首先,註冊登陸我並無使用密碼的方式,而只使用短信驗證碼。主要是由於登陸密碼會引起一些麻煩的問題,好比如何安全傳輸?如何安全保存?2011年的CSDN、天涯、世紀佳緣等網站的「密碼外泄門」,和2014年的攜程「泄密門」,都證實了直接保存私密信息是不安全的。所以,我乾脆不使用登陸密碼了。並且,由於沒有登陸密碼了,相應的也不須要提供修改密碼和重置密碼的功能了。
接着,再考慮手機號 + 短信驗證碼的註冊登陸方式,其實也有問題:明顯依賴於短信平臺的穩定性和及時到達率。雖然有些平臺提供了免費的短信驗證碼服務,但這些平臺基本存在不穩定的狀況,常常會出現收不到短信或隔好久才收到短信的狀況。而穩定快速的短信平臺都是按條數收費的,這成本有點高。那麼,乾脆點,取消手機號註冊登陸的方式算了,只要有微信登陸就夠了。
另外,由於微信登陸後就能夠得到用戶的頭像和暱稱了,那麼,其實,修改頭像和修改暱稱的功能其實也能夠不須要了。
那麼,最後整理的功能需求能夠以下:
目前的進度就是完成了原型設計,並整理好了功能需求。對了,還有設計好了App Logo。接下來要作的就是根據功能需求設計REST API。
掃描如下二維碼便可關注訂閱號。