内容简介:Readhub 是一个专注于科技新闻实时分享的网站,从一开始发布到现在一直都是我获取信息的重要渠道,目前只有网页端和小程序可用,一次偶然的灵感让我决定自己做一个客户端。想要获取数据,首先要知道获取数据的 API,在没有任何官方文档的前提下,只有抓包能够解决这个问题。工具:
Readhub 是一个专注于科技新闻实时分享的网站,从一开始发布到现在一直都是我获取信息的重要渠道,目前只有网页端和小程序可用,一次偶然的灵感让我决定自己做一个客户端。
第一步:抓包
想要获取数据,首先要知道获取数据的 API,在没有任何官方文档的前提下,只有抓包能够解决这个问题。
工具: Fidder 4
使用方法: Fiddler - 超好用的http抓包 工具 使用介绍
抓包结果:
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);
复制代码
第二步:开发
特点
- 采用 Google Material Design 风格
- 采用 MVP + dagger 2 架构进行解耦
- 网络请求使用 Retrofit + RxJava
- 本地数据库采用 Room + RxJava
- 主题切换,支持夜间模式
- 集成 Tinker 并支持应用内更新
- 侧滑返回
- 支持 CustomTabs
- 新话题悬浮提示
- 使用矢量图减少安装包体积
项目预览——夜间模式
| 起始页 | 主菜单 | 首页 |
|---|---|---|
|
|
|
|
| 即时查看 | 话题详情 | 文章网页 |
|---|---|---|
|
|
|
|
| 本地搜索 | 设置 | 关于 |
|---|---|---|
|
|
|
|
项目预览——蓝色主题(默认)
| 起始页 | 主菜单 | 首页 |
|---|---|---|
|
|
|
|
| 即时查看 | 话题详情 | 文章网页 |
|---|---|---|
|
|
|
|
| 本地搜索 | 设置 | 关于 |
|---|---|---|
|
|
|
|
使用到的第三方开源库
| 项目名称 | 简介 |
|---|---|
| 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 图像 |
感谢
第三步:申请各大应用市场的开发者账号
要上架到应用市场,必须要申请相应平台的开发者账号,目前国内主流的应用市场开发者账号申请地址如下:
- Google Play (注册需要绑定一个可用于境外支付的信用卡,费用是 29 美刀)
- 豌豆荚、PP 助手、YunOS 应用商店等 (首先需要实名认证,然后需要申请 App 的软件著作权或者上传一份开发者声明,本 App 因为该平台不允许个人上架新闻类应用被拒绝。。。)
- 腾讯应用宝(实名认证 + 软件著作权)
- 酷安市场(之所以叫酷安,是因为他们只接受比较库的应用,再次被拒绝。。。)
- 小米应用市场(实名认证 + 。。。)
以上所述就是小编给大家介绍的《从抓包到上架 Google Play Store 做一个 App 是怎样的体验?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 海外开发者账号上架总结
- DDIA中文版上架了
- Windows Terminal 已上架,快尝鲜
- 微博新App绿洲重新上架,Logo换新
- Python 3.7 上架微软商店,尚处于评估阶段
- 幼麟棋牌社区版 1.0 发布,已上架 GitHub
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Clever Algorithms
Jason Brownlee / lulu.com / 2012-6-15 / USD 37.99
Download : http://www.lulu.com/product/file-download/clever-algorithms-nature-inspired-programming-recipes/14696557 Read free on line:http://www.cleveralgorithms.com/nature-inspired/index.html T......一起来看看 《Clever Algorithms》 这本书的介绍吧!