
头条
头条是一款遵循 Material Design 的第三方今日头条客户端,聚合了新闻/段子/图片/视频/头条号内容,无广告,仅有精简的阅读体验,不断完善中,采用 MVP + RxJava + Retrofit 架构的项目
其中API来自《今日头条API分析》(https://github.com/iMeiji/Toutiao/wiki/%E4%BB%8A%E6%97%A5%E5%A4%B4%E6%9D%A1Api%E5%88%86%E6%9E%90)
声明
以下所有 API 由今日头条提供, 我以非正常手段获取. 本程序仅供学习交流, 不可用于任何商业用途
特性
- 主页五大模块: 新闻 / 图片 / 视频 / 头条号 / 问答
- 实现首页的布局和数据的显示
- 实现自定义新闻栏目顺序
- 新闻详情页面支持白天和夜晚两种主题
- 显示新闻评论
- 头条号订阅 查看头条号历史文章/视频
- 搜索功能 热门搜索推荐 搜索历史记录
- 自定义主题颜色 无缝切换日夜皮肤
- 视频播放
- 内置 3 种可随意切换的 logo
- 动态切换字体大小
屏幕截图
预览
下载
由于侵犯今日头条的版权,因此不再提供 APK 下载
积分
- 基本遵循 Material Design 设计风格
- 通过抓包获取今日头条API
- 使用 Google 官方 MVP 架构
- DrawerLayout + NavigationView + BottomNavigationView 共同使用
- RxBus 取代 EventBus,用于组件之间的通信
- ViewPager 与 Fragment 懒加载搭配使用
- SwipeRefreshLayout 与 RecyclerView 结合使用,实现下拉刷新和上拉加载
- 自定义 BottomNavigationBehavior 实现上滑隐藏、下滑显示
- 使用 RxJava + Retrofit2 + OkHttp3 进行网络请求
- OkHttp3 缓存网络返回内容, 还支持日志、超时重连、头部消息配置
- 构建 V 层基类,包括 BaseActivity 和 BaseFragment,为外部提供了相同的接口
- 使用原生的夜间模式
- 解决侧滑返回与 View 发生冲突的问题
- 内置 3 种 Logo, 可随意切换
- 使用 CoordinatorLayout、AppBarLayout、CollapsingToolbarLayout、BottomSheetDialog 等新控件
- 使用 7.0 的新工具 DiffUtil, 不再盲目调用 notifyDataSetChanged()
- 使用 ItemTouchHelper 实现今日头条的频道排序和频道移动, 请参考 ItemTouchHelperDemo
- 使用 RxBinding 实现搜索请求
- 使用 AutoDispose 绑定 RxJava 生命周期
- 使用 Travis CI 进行持续集成
变更日志