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