# WeChatNews **Repository Path**: CKStack/WeChatNews ## Basic Information - **Project Name**: WeChatNews - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-10 - **Last Updated**: 2021-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WeChatNews 采用 MVP 模式构建的微信精选 APP
#### 效果图 ![](https://github.com/linfaimom/WeChatNews/raw/master/screenshots/screenshots.png) ***考虑到 Github 上展现图片不便,此图为拼合版本,请移步 screenshots 文件夹查看清晰的每张截图*** ***也可在 [此处](https://github.com/linfaimom/WeChatNews/releases) 下载 APP 安装体验*** #### 背景 做这个小项目的初衷是为了总结与实践当时所学知识,诸如各种热门的新框架、新工具等,将其进行一个整合应用以提升自己的 Android 开发技能。而且因为我老爸经常喜欢看微信的文章,那为啥不趁机给他弄一个专门提供微信精选的新闻 APP 呢? #### 所用工具/技术 * 采用负责网络请求的 Retrofit * 采用负责处理图片的 Picasso * 采用 “聚合数据” 所提供的免费 API,发起请求时将返还 JSON 格式的数据 * 采用处理 Object 与 JSON 之间相互转化的框架——GSON * 采用实现代码低耦合的依赖注入框架 Dagger2 * 采用 MVP 架构模式构建整个 APP #### 所实现功能/效果 * 参照 Google 官方的 Material Design 对该 APP 进行了风格上的设计 * APP 启动时开启一条线程对当前所处网络环境进行检查,UI 线程上则通过展现一张精美图片以缓解用户等待时的焦虑。根据最终检查状况弹出提示,以避免不必要的流量损耗 * 对请求成功后所返还的数据做了分页处理,启动时默认加载 20 条,可根据需要调整加载条数 * 下拉刷新,动画效果采用 Android 提供的原生控件 RefreshLayout * 上划滚动至底部时加载更多 * 轻触右下角浮动按钮可回到顶部,且在用户上划即页面向下滚动时自动隐藏,反之则显现。同时,当滚动距离不超过指定值时,缓慢滚动到顶部,反之则快速回到顶部 * 重写了 WebView 中的一些方法,以更友好的方式展现文章页面,如打开时会有进度条提示、启用一些 JavaScript 功能等等 * 集成微信开放平台所提供的分享功能SDK,实现新闻的分享、收藏功能 #### 总结 该项目在需求上实现了我的设想,即能够获取到每日新鲜的精选文章,同时还能够分享至朋友圈、分享给好友等等,我爸爸很认真的试用了,为我提供了很多建议,比如分享之类的功能就是他提出来的。通过这一个练手的小项目,确实加深了我对一些主流框架、技术以及一些理念的理解,也愈发让我感受到开发所带来的乐趣。当然,仍存在众多的功能尚待完善,譬如:消息的通知功能,如何能在新的精选文章出来时通知用户呢?是通过脚步轮询服务器呢还是异步回调?由于是采用别人所提供的数据,所以异步回调的路应该是走不通的。还有通知消息的推送服务,在我国国情下又是一个大坑,GMS用不了,国内推送提供商不知选谁是好,如何又能确保推送服务不被 kill?再有,界面的优化,如何更好的展示精选文章列表,等等之类的。我希望能在空余时间,尽量完善这个小项目,不仅仅停留在能用的程度。