转载

业余时间写了一个第三方微博(不使用官方SDK)

业余时间写了一个第三方微博(不使用官方SDK)

作者: 听任蔓草堙路

地址: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,做不同的颜色及点击处理

业余时间写了一个第三方微博(不使用官方SDK)

第三

微博详情界面

  • 在主页点击微博,可以进入详情界面

  • 实现了对该条微博的转发,评论功能,同时还可以对该微博下的评论进行回复,转发操作

  • 利用 CoordinatorLayout 实现父布局与子布局嵌套滑动

  • 由于微博接口限制,这里只能获取微博下的评论数据,转发和点赞是获取不到的,但在代码编写上三者几乎相同,只是请求的接口不同

业余时间写了一个第三方微博(不使用官方SDK)

第四

微博个人主页

  • 显示用户的粉丝数,关注数,微博数

  • 查看个人相册,个人收藏,好友列表(包括粉丝,关注,互粉)

  • 由于微博接口限制,只能获取部分数据,忍不住吐槽一下,真是太坑了...

  • 相册是通过个人界面中获取的微博信息,提取出图片参数,自己做处理的,新浪并没有提供获取相册列表的接口

业余时间写了一个第三方微博(不使用官方SDK)

业余时间写了一个第三方微博(不使用官方SDK)

第五

发微博界面

  • 通过自定义View,实现emoji表情的添加,采用 ViewPager + GridView,具体请看代码实现

  • 支持 TAG 话题添加

  • 通过 TextWatcher 实现输入字符监听

  • 定位和 @ 还没有实现

业余时间写了一个第三方微博(不使用官方SDK)

第六

消息界面

  • 实现了微博 @ ,评论 @ ,收到的评论,发出的评论四大功能

  • 点击消息图片可以快捷回复

  • 点击整个 item 可以跳转到微博详情界面

业余时间写了一个第三方微博(不使用官方SDK)

第七

闲聊一下

  • 这个项目我会继续做的,但由于接口的限制,进度应该会很缓慢,有好想法的同学可以联系我,我们来一起做

  • 想学习 MVP + RxJava + Retrofit 的同学,可以看一下我的这个项目

  • 实践!业余时间做的一款阅读类App (MVP + RxJava + Retrofit)(http://www.jianshu.com/p/be0f4a4863ae)

  • Github 地址在这里 : https://github.com/Werb/GankWithZhihu

  • 单纯的使用 MVP + RxJava + Retrofit 构建一个项目,没有其他复杂的功能,很适合学习

  • 欢迎 StarFork

文章中说过啦,因为新浪没有通过审核,所以想要登陆需要授权,有两种方法:1.去新浪申请应用,换成你自己的新浪App key,这种事比较推荐的,把申请好的app key,替换info/Constans.java 中的app key 。2. 我来给你添加测试账号,但是因为新浪规定,未审核的应用,至多只能添加15个测试账号。写这篇文章的原因,主要是我觉得其中一些功能的代码编写,还是具有一定的学习意义的,比如信息流界面加载,九宫格图片,自定义emoji,整体的MVP + RxJava + REtrofit 框架,嵌套布局的实现。加油~ 

END

Android订阅是探讨Android开发的公众号,分享最有价值的Android干货文章

欢迎关注我们,一起讨论技术,扫描和长按下方的二维码可快速关注我们 

业余时间写了一个第三方微博(不使用官方SDK)

业余时间写了一个第三方微博(不使用官方SDK)

原文  http://mp.weixin.qq.com/s/GLsR3MmaTKeRmt0nNDn1XQ
正文到此结束
Loading...