Readhub 是一个专一于科技新闻实时分享的网站,从一开始发布到如今一直都是我获取信息的重要渠道,目前只有网页端和小程序可用,一次偶然的灵感让我决定本身作一个客户端。html
成品展现:JReadHubjava
想要获取数据,首先要知道获取数据的 API,在没有任何官方文档的前提下,只有抓包可以解决这个问题。android
工具: Fidder 4git
使用方法: Fiddler - 超好用的http抓包工具使用介绍github
抓包结果:数据库
public static final String HOST = "https://api.readhub.me/";
// 热门话题列表
@GET("topic")
Observable<DataListBean<TopicBean>> getTopicList(
@Query("lastCursor") Long lastCursor,
@Query("pageSize") int pageSize
);
// 其它模块新闻 type
public static final String TYPE_NEWS = "news";// 科技动态
public static final String TYPE_TECHNEWS = "technews";// 开发者资讯
public static final String TYPE_BLOCKCHAIN = "blockchain";// 区块链快讯
public static final String TYPE_JOBS = "jobs";// 招聘详情
// 其余模块新闻列表
@GET("{type}")
Observable<DataListBean<NewsBean>> getNewsList(
@Path("type") @Constants.Type String type,
@Query("lastCursor") Long lastCursor,
@Query("pageSize") int pageSize
);
// 即便查看
@GET("topic/instantview")
Observable<InstantReadBean> getTopicInstantRead(@Query("topicId") String topicId);
// 话题详情
@GET("topic/{topic_id}")
Observable<TopicDetailBean> getTopicDetail(@Path("topic_id") String topicId);
// 相关话题
@GET("topic/related")
Observable<List<RelevantTopicBean>> getRelateTopic(@Query("entityId") String topicId,
@Query("eventType") int eventType,
@Query("order") long order,
@Query("t") long timeStamp);
// 最新消息
@GET("topic/newCount")
Observable<NewTopicCountBean> getNewTopicCount(@Query("latestCursor") Long lastCursor);
复制代码
起始页 | 主菜单 | 首页 |
---|---|---|
![]() |
![]() |
![]() |
即时查看 | 话题详情 | 文章网页 |
---|---|---|
![]() |
![]() |
![]() |
本地搜索 | 设置 | 关于 |
---|---|---|
![]() |
![]() |
![]() |
起始页 | 主菜单 | 首页 |
---|---|---|
![]() |
![]() |
![]() |
即时查看 | 话题详情 | 文章网页 |
---|---|---|
![]() |
![]() |
![]() |
本地搜索 | 设置 | 关于 |
---|---|---|
![]() |
![]() |
![]() |
项目名称 | 简介 |
---|---|
RxJava | 一个专一于异步编程与控制可观察数据(或者事件)流的 API |
RxAndroid | 在 Android 中使用 RxJava |
Retrofit | HTTP 请求工具库 |
ButterKnife | 强大的注解框架,提供视图和事件绑定 |
Dagger | 依赖注入框架 |
Fragmentation | 强大的 Fragment 管理库 |
ExpandableLayout | 支持展开和收缩子 View 的 Layout |
FlowLayout | Android 流式布局,支持单选、多选等,适合用于产品标签等 |
leakcanary | 使用于 Android 和 Java 和内存泄漏检查工具 |
AgentWeb | Android WebView 框架 |
Android-HeaderAndFooterRecyclerView | 支持添加头部和尾部的 RecyclerView |
Android-Debug-Database | 用于调试 Android SQLite 和 Shared preferences 的库 |
Bugly | 帮助开发者快速发现并解决异常,同时掌握产品运营动态,及时跟进用户反馈 |
Tinker | Android 热修复解决方案,支持 dex,library 和资源更新且不用从新安装 app |
walle | Android Signature V2 Scheme 签名下的新一代渠道包打包神器 |
网站名称 | 简介 |
---|---|
Iconfont | 阿里巴巴矢量图标库,提供了本项目中的大部分矢量图 |
aconvert | 在线调整图片大小(PNG, JPG 和 GIF) |
convertio | 在线图像文件转换器,支持 SVG 转换成 PNG |
logoko | 在线 logo 设计 |
图帮主 | 在线平面设计 |
shields | metadata 图标设计 |
compresspng | 在线压缩 PNG 图像 |
要上架到应用市场,必需要申请相应平台的开发者帐号,目前国内主流的应用市场开发者帐号申请地址以下:编程
多渠道打包工具: 强烈推荐多渠道打包神器 —— walle小程序
用法: Walle多渠道打包&Tinker热修复api
一个 App 从构思到上架,仍是须要花很多精力和时间的,若是没有充足的业余时间,即便功能简单的 App 也是不容易作好的。若是能在这个过程当中感觉到亲自打磨产品的激情和乐趣,那将会对产品质量产生无尽的力量,但愿每一个开发者都能作出本身心仪的 App!网络
最后,若是文章内容对你有帮助,欢迎你们到 Github 给我个 Star:JReadHub,或者对这个库有什么改进的建议,给我提 Issue 或者 PR,你们共同进步!