项目整体以Material Desigh和ViewPager与Fragment结合。使用第三方推送平台为通讯基础。采用MVP架构。结构分类为主APP(Activity,Fragment),表情library,语言library,网络library。主要功能涉及登录注册,搜索群与人,,群聊单聊(语音,图片,文件,表情),好友添加,群组创建,个人信息等IM应用核心功能。并在后台使用Jersey RESTful + Hibernate + MySQL + Tomcat结构实现服务端架构。是一款包含主流IM功能的一款应用,同时结构封装性好。结构层次清晰。注释详细。便于扩展与移植到自己项目作为已有应用的新模块。
推送服务 选择个推作为通讯基础
对象存储 阿里OSS 实现对发送图片、语音、头像等文件的存储。方便以后读取。
ext {//依赖库的版本
//版本相关
versionCode = 1
versionName = '1.0.0'
//相关依赖库
supportVersion = '25.3.1'
butterknifeVersion = '8.8.1'
//一些MD封装布局与Handle封装工具
geniusVersion = '2.0.0'
//Glide图片工具
glideVersion = '3.7.0'
//圆形图片
circleimageviewVersion = '2.1.0'
//图片剪切
ucropVersion = '2.2.0-native'
//动态权限辅助工具
easyPMVersion = "0.3.0"
//操作云数据库
ossVersion = '2.3.0'
//Gson转换工具
gsonVersion = '2.8.0'
//retrofit2
retrofitVersion = '2.1.0'
//个推的SDK
getuiVersion = '2.9.3.0'
//dbflow数据库辅助工具
dbflowVersion = "4.0.0-beta7"
//空气面板(处理布局变换与软键盘的收缩)
airpanelVersion = "1.1.0"
//Lame 录音 MP3 转码器
lameVersion = "1.0.0"
}
网络框架-Retrofit
注解框架-Butterknife
图片框架-Glide
安卓数据库框架-Dbflow
数据存储平台-OSS
Jersey-轻量WebService框架
Hibernate-Java数据库操作框架
MySQL-数据库
Gson-数据解析框架
Tomcat-服务器
作为个人了手项目。项目是其他项目灵感所创,在此基础上进行优化扩展,同时后期会实现扩展功能。使其具备一个更接近主流IM应用。项目中的难点与扩展点都会后续在我的博客中写出。同时关于项目中的第三方SDK请大家自己申请,因为毕竟免费容量有限,如果大家喜欢,后期我会上传服务端代码到云服务器中。同时,地图,视频播放组件,分享,地图,天气,运动,多渠道打包发布,广告接入,友盟统计等在我github中其他小项目中都以实现,想自己扩展项目可以将我其他项目的代码直接拷贝到这个项目中就可以使用。由于是练手项目难免会有一些小问题,但是整体上比较完善。后期有进行优化。