开篇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端的即时通信程序,最终结果是以上功能都实现且编写出相关纪录文档。
补充说明
主要以总结过去经验为主,暂时只是列出大题纲,后续会对先后台开发实现进行一些说明,同时能参照一些书籍规范一下开发文档,制定模板等。为了方便说明,后续文章将以正文和补充材料两大类进行。
但愿你们能继续关注后期文章
请关注公众号有更多精彩等你: