作者: 听任蔓草堙路
地址:http://www.jianshu.com/p/531efdf5cdc5
GitHub地址:https://github.com/Werb/Werb
第一
前言
前段时间,想要写一个练手的项目,所以决定开发一个第三方微博 App
分析 Sina WeiboSDK源码,发现官方Api请求在实现、代码风格上存在很多弊端
本项目中所有的请求,都是利用 RxJava + Retrofit 重新封装请求,并实现无网缓存
采用 MVP 设计模式,充分解耦,在代码阅读、后期维护上有很好的体验
由于新浪暂停对第三方微博的审核,所以未能通过应用审核,获取更多权限,来完成后续开发,当然也是不能直接运行的
所以想要运行项目的同学,可以替换成自己的新浪APP key,或者联系我给你添加测试账号
分享的目的是,我觉得项目中功能还是很不错的,希望可以给予大家一些参考
GitHub 项目地址 : https://github.com/Werb/Werb
第二
微博主界面
实现微博主页信息流浏览、可以在每条微博中,实现点赞,评论,转发功能
使用自定义 View 实现九宫格图片显示,同时点击浏览图片,支持左右滑动
支持下拉刷新,上滑加载,快速回到顶端
闪屏界面做了类似于 Twitter 闪屏界面的动画处理
其中对微博正文的文字处理,我觉得是比较有意思的地方,通过正则表达式匹配出 @ ,# ,url,做不同的颜色及点击处理
第三
微博详情界面
在主页点击微博,可以进入详情界面
实现了对该条微博的转发,评论功能,同时还可以对该微博下的评论进行回复,转发操作
利用 CoordinatorLayout 实现父布局与子布局嵌套滑动
由于微博接口限制,这里只能获取微博下的评论数据,转发和点赞是获取不到的,但在代码编写上三者几乎相同,只是请求的接口不同
第四
微博个人主页
显示用户的粉丝数,关注数,微博数
查看个人相册,个人收藏,好友列表(包括粉丝,关注,互粉)
由于微博接口限制,只能获取部分数据,忍不住吐槽一下,真是太坑了...
相册是通过个人界面中获取的微博信息,提取出图片参数,自己做处理的,新浪并没有提供获取相册列表的接口
第五
发微博界面
通过自定义View,实现emoji表情的添加,采用 ViewPager + GridView,具体请看代码实现
支持 TAG 话题添加
通过 TextWatcher 实现输入字符监听
定位和 @ 还没有实现
第六
消息界面
实现了微博 @ ,评论 @ ,收到的评论,发出的评论四大功能
点击消息图片可以快捷回复
点击整个 item 可以跳转到微博详情界面
第七
闲聊一下
这个项目我会继续做的,但由于接口的限制,进度应该会很缓慢,有好想法的同学可以联系我,我们来一起做
想学习 MVP + RxJava + Retrofit 的同学,可以看一下我的这个项目
实践!业余时间做的一款阅读类App (MVP + RxJava + Retrofit)(http://www.jianshu.com/p/be0f4a4863ae)
Github 地址在这里 : https://github.com/Werb/GankWithZhihu
单纯的使用 MVP + RxJava + Retrofit 构建一个项目,没有其他复杂的功能,很适合学习
欢迎 Star 和 Fork
文章中说过啦,因为新浪没有通过审核,所以想要登陆需要授权,有两种方法:1.去新浪申请应用,换成你自己的新浪App key,这种事比较推荐的,把申请好的app key,替换info/Constans.java 中的app key 。2. 我来给你添加测试账号,但是因为新浪规定,未审核的应用,至多只能添加15个测试账号。写这篇文章的原因,主要是我觉得其中一些功能的代码编写,还是具有一定的学习意义的,比如信息流界面加载,九宫格图片,自定义emoji,整体的MVP + RxJava + REtrofit 框架,嵌套布局的实现。加油~
END
Android订阅是探讨Android开发的公众号,分享最有价值的Android干货文章
欢迎关注我们,一起讨论技术,扫描和长按下方的二维码可快速关注我们