美文网首页TECH_ANDROIDAndroid完整AppAndroid
业余时间写了一个第三方微博(不使用官方SDK)

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

作者: wanbo_ | 来源:发表于2016-09-11 19:53 被阅读3896次
    • 前段时间,想要写一个练手的项目,所以决定开发一个第三方微博 App
    • 分析 Sina WeiboSDK源码,发现官方Api请求在实现、代码风格上存在很多弊端
    • 本项目中所有的请求,都是利用 RxJava + Retrofit 重新封装请求,并实现无网缓存
    • 采用 MVP 设计模式,充分解耦,在代码阅读、后期维护上有很好的体验
    • 由于新浪暂停对第三方微博的审核,所以未能通过应用审核,获取更多权限,来完成后续开发,当然也是不能直接运行的
    • 所以想要运行项目的同学,可以替换成自己的新浪APP key,或者联系我给你添加测试账号
    • 分享的目的是,我觉得项目中功能还是很不错的,希望可以给予大家一些参考
    • GitHub 项目地址 : https://github.com/Werb/Werb

    微博主界面

    • 实现微博主页信息流浏览、可以在每条微博中,实现点赞,评论,转发功能
    • 使用自定义 View 实现九宫格图片显示,同时点击浏览图片,支持左右滑动
    • 支持下拉刷新,上滑加载,快速回到顶端
    • 闪屏界面做了类似于 Twitter 闪屏界面的动画处理
    • 其中对微博正文的文字处理,我觉得是比较有意思的地方,通过正则表达式匹配出 @ ,# ,url,做不同的颜色及点击处理
    werb_main.png

    微博详情界面

    • 在主页点击微博,可以进入详情界面
    • 实现了对该条微博的转发,评论功能,同时还可以对该微博下的评论进行回复,转发操作
    • 利用 CoordinatorLayout 实现父布局与子布局嵌套滑动
    • 由于微博接口限制,这里只能获取微博下的评论数据,转发和点赞是获取不到的,但在代码编写上三者几乎相同,只是请求的接口不同
    detaildetail

    微博个人主页

    • 显示用户的粉丝数,关注数,微博数
    • 查看个人相册,个人收藏,好友列表(包括粉丝,关注,互粉)
    • 由于微博接口限制,只能获取部分数据,忍不住吐槽一下,真是太坑了...
    • 相册是通过个人界面中获取的微博信息,提取出图片参数,自己做处理的,新浪并没有提供获取相册列表的接口
    useruser 收藏和相册收藏和相册

    发微博界面

    • 通过自定义View,实现emoji表情的添加,采用 ViewPager + GridView,具体请看代码实现
    • 支持 TAG 话题添加
    • 通过 TextWatcher 实现输入字符监听
    • 定位和 @ 还没有实现
    send_weibosend_weibo

    消息界面

    • 实现了微博 @ ,评论 @ ,收到的评论,发出的评论四大功能
    • 点击消息图片可以快捷回复
    • 点击整个 item 可以跳转到微博详情界面
    messagemessage

    闲聊一下

    License

    • 同时希望可以帮助到其他人
    Copyright 2016 Werb
    
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    
    http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    

    Contact Me

    相关文章

      网友评论

      • 4587b9a178f8:认证失败21322 ,请问怎么解决
        wanbo_:@4587b9a178f8 应该是签名的问题,github上更新了解决问题的方法。 :blush:
      • fendo:Process: com.wanbo.werb, PID: 8685
        java.lang.NullPointerException: Attempt to invoke virtual method 'void com.wanbo.werb.widget.splash.SplashView.splashAndDisappear(com.wanbo.werb.widget.splash.SplashView$ISplashListener)' on a null object reference
        at com.wanbo.werb.ui.activity.SplashActivity.onLoadingDataEnded(SplashActivity.java:74)
        at com.wanbo.werb.ui.activity.SplashActivity.-wrap0(SplashActivity.java)
        at com.wanbo.werb.ui.activity.SplashActivity$1.run(SplashActivity.java:67)
        at android.os.Handler.handleCallback(Handler.java:815)
        at android.os.Handler.dispatchMessage(Handler.java:104)
        at android.os.Looper.loop(Looper.java:194)
        at android.app.ActivityThread.main(ActivityThread.java:5826)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1109)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:875)


        报这种错!!!什么情况
      • fendo:赞一个!!
      • dreamruner:为啥我进不去主页面,新浪服务器开小差?^_^
      • 徐京源:楼主用了时间完成的?
        Blazer:@一只奇思妙想会做白日梦的喵 牛
        wanbo_:@徐京源 半个月吧 :smile:
        徐京源: @徐京源 多长时间?
      • Chars:数据库还是新浪
        wanbo_:@Chars 新浪的接口,不过我没有用官方的SDK,自己使用Retrofit重新封装请求,解析数据。
        Chars:@一只奇思妙想会做白日梦的喵 微博数据啊
        wanbo_:@Chars 什么数据库? :smiley:
      • hotBitmapGG:挺漂亮的,赞一个:smile:
      • 让一切简单:请问您工作几年了?
        wanbo_:@让一切简单 我准备换工作了...
        让一切简单:@一只奇思妙想会做白日梦的喵 我现在大四,正准备找实习工作,好难呀。
        wanbo_:@让一切简单 半年都没有... :flushed:
      • aa5ba408bfcb:你竟然关注我了 :kissing_closed_eyes:
        wanbo_:@MisaShaw 哈哈
        aa5ba408bfcb:@一只奇思妙想会做白日梦的喵 我看到我的微博了(*/∇\*)
        wanbo_:@MisaShaw :smile:
      • 学渣罗小贱:向楼主学习
      • 儒家张良不是我:撸主,微博登录不了
        儒家张良不是我:@一只奇思妙想会做白日梦的喵 :flushed:
        wanbo_:@卡尔kaer 文章中说过啦,因为新浪没有通过审核,所以想要登陆需要授权,有两种方法:1.去新浪申请应用,换成你自己的新浪App key,这种事比较推荐的,把申请好的app key,替换info/Constans.java 中的app key 。2. 我来给你添加测试账号,但是因为新浪规定,未审核的应用,至多只能添加15个测试账号。写这篇文章的原因,主要是我觉得其中一些功能的代码编写,还是具有一定的学习意义的,比如信息流界面加载,九宫格图片,自定义emoji,整体的MVP + RxJava + REtrofit 框架,嵌套布局的实现。加油~ :smile:

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

      本文链接:https://www.haomeiwen.com/subject/buguettx.html