高仿微信-微信EM开发流程--(1)项目介绍

来源:互联网 发布:js上传多张图片 编辑:程序博客网 时间:2024/04/30 05:35

最近在仿照微信页面和功能开发一个项目,大致功能都已实现,整个项目走下来,遇上过不少坑,特此来记录总结一下。首先,先讲一下整个项目的大致架构。

(1)登录注册功能微信的登录注册界面没有花哨的动画和布局,就是简简单单的一个普通的界面,实现起来也比较简单,但是其中也有一些值得提一下的东西。

a.真正的微信欢迎页大家都很熟悉,是一张地球图片,每次启动时都会显示几秒,用于后台线程执行,这实现起来也很简单,新开线程去执行登录和一些加载操作,线程开始时,显示地球图片,然后在线程执行完之后,跳转到主活动。主要还是对handler的使用。

b.微信的登录界面功能还真挺复杂,大致分为手机号登录,微信号/QQ/邮箱登录,密码登录,验证码登录,四个界面,还有底部弹出框Popupwindow,中间还掺杂一个加载条。

c.如果账号已经登录过,则直接显示地球欢迎页,然后直接跳转到主活动,如果没有登录,则显示登录界面,如果输入过手机号,点击了下一步,但没有登录,那么就显示登录界面,具体的流程,可以参照真正微信去看看。

(2)主活动页面


主活动和大多数App模式一样,采用ViewPager+Fragment模式,去实现滑动翻页功能,底部四个tab,我们一般是采用RadioGroup,但是这次因为还有右上方小红点的存在,所以直接使用RelativeLayout,在里面嵌套布局。

(3)消息页面MessageFragment,总体实现了和微信大致的功能,实时接收消息,消息提示,消息已读,单/群聊的收发。

(4)通讯录CallFragment,总体是一个ListView,右边是一个自定义快速检索栏SideBar,上方是ListView的HeaderView实现的,实现了按拼音首字母排序和快速检索。

(5)发现FindFragment,这里主要是对微信功能的一个展示,其中朋友圈里的功能比较复杂,以后会详解,其他的功能大多都已实现,布局都还比较简单。

(6)我 ProfileFragment,这里是对用户个人信息的一个展示,包括对个人信息的查看,添加,修改,布局不复杂,但是二级,三级页面比较多,所以工作量比较大。

总体来说,大致实现了以下功能:

1、登录

2、单/群聊消息的收发

3、添加/删除好友

4、发起/退出群聊

5、二维码的生成与扫描

6、发表/评论朋友圈

7、用户个人信息的展示,修改

而项目也有几大难点:

1.环信即时通讯的集成

2.图片的三级缓存和加载

3.聊天页面的开发

4.朋友圈的发表与评论

5.自定义控件的开发

6.okHttp的使用

7.同步异步线程的灵活使用


同时,为了项目更加真实,我自己搭了一个服务器,很简单,主要也是为了保存用户信息和朋友圈内容和评论内容,服务器项目是使用spring-boot框架搭建的,开发IDE是idea,需要的话可以去我的github上clone下来,贴出地址:https://github.com/pgg-pgg/MyWeChatEMServer

App项目我也上传到github上了,地址是https://github.com/pgg-pgg/MyWeChat

原创粉丝点击