開篇java
忽然有一天,橫空出現了三四種即時聊天工具,貌似是挑戰微信。結合我多年的編程經驗,我也想有個大想法,開發一款即時通信工具。個人目的固然不是挑戰誰,而是想對本身多年的編程經驗進行一次總結。雖然多年來,從各類語言之間切換過,可是像這樣先後端一我的編寫,完成一個獨立項目仍是很少的。爲了加大點難度,決定採用django 2.0 的restframework作爲後臺進行開發,即時通信採用消息隊列(MQTT)協議,客戶端暫時只開發Android端,並以公衆號或網頁的方式將編寫過程的文章編寫出來並推送。django
選型編程
MQTT:考慮到只有Windows服務器,而MQTT暫時只是作爲消息傳輸媒介,因此決定採用apollo。至於後期要在MQTT上作二期開發,這是後話。後端
服務端:前面也說過以Django的rest_framework進行接口編寫,以及admin進行簡單的界面以及數據添加管理,暫時也不考慮Web界面。服務器
客戶端:原生Android開發,且採用MVVM框架,以Room持久化庫,Lifecycle、Clean Architecture等最新技術進行嘗試,網絡則是以Rxjava 2和Retrofit進行訪問等。微信
主要功能網絡
一、用戶註冊、登陸框架
在沒有賬號的狀況下,進行註冊,而後進行登陸等功能。工具
二、添加好友、羣,查看好友、羣信息rest
經過查找功能,查找好友以及羣,並進行添加;查看好友、羣能夠相似微信a-z進行篩選
三、發起羣聊,建羣,解散羣,拉人入羣,踢出羣
相似微信建羣等功能
四、聊天功能
該功能是此應用的主要功能,基本上是以微信爲模板,能夠單人聊天,能夠羣聊,聊天能夠發送表情,圖片,拍攝照片、視頻,文件,位置,名片等。
五、掃一掃添加好友,加入羣
六、我的資料修改,圖像修改,密碼修改
七、其餘一些附助功能
文件上傳下載,拉取離線消息,鑑權等。
基本上是以微信、QQ等即時聊天工具爲藍圖,再結合具體開發而編寫出Android端的即時通信程序,最終結果是以上功能都實現且編寫出相關紀錄文檔。
補充說明
主要以總結過去經驗爲主,暫時只是列出大題綱,後續會對先後臺開發實現進行一些說明,同時能參照一些書籍規範一下開發文檔,制定模板等。爲了方便說明,後續文章將以正文和補充材料兩大類進行。
但願你們能繼續關注後期文章
請關注公衆號有更多精彩等你: