首先声明,今日头条是我经常用的 app 之一,模仿今日头条也是因为感兴趣,代码仅用于学习交流。对于项目中的数据接口都是通过 Charles 抓包获得,基本每个界面都是有数据请求,不会抓包的朋友可以看我 这一篇文章
项目中有的地方代码写的不是很简洁,毕竟自己能力有限,对 Swift 使用不是很熟练,还请各位朋友不喜勿喷。下面有项目的完整源码,喜欢的朋友可以下载下来,如果您感觉我写的代码对您有所帮助,还请在 github 给个 star,非常感谢您的支持!~
github 地址
CodeData 地址
环境设置
项目环境
Xcode 7.3.1(低于这个版本会报错)。
Swift 2.2
iOS 8.0 +
使用 cocoaPods 管理第三方库, 如果电脑没有安装 cocoapods,请先安装 cocoapods。安装方式可参考:最新版 CocoaPods 的安装流程
项目中使用到的第三方库
SnapKit: 布局
Kingfisher: 缓存图片
SVProgressHUD:提示框
FDFullscreenPopGesture:侧滑
Alamofire :网络请求
SwiftyJSON:解析 json
MJRefresh: 上拉刷新和下拉刷新
获取今日头条的接口
完成首页的布局和数据的显示
实现首页顶部导航栏滚动
新闻详情界面简单实现
点击屏蔽按钮,弹出屏蔽视图(坐标有一些问题)
完成视频界面顶部导航栏滚动
完成视频界面布局和数据获取
用户界面简单实现
完成关注界面布局和数据的获取
完成关注界面,添加关注功能
完成搜索功能
完成个人界面的布局
完成设置界面的布局
完成离线下载界面布局
活动界面简单实现
登录界面的简单实现
启动界面的简单实现
今日头条的接口文件请看: news.json,需要提前安装 postman,然后把该文件导入到 postman 进行查看,可以打开谷歌浏览器,找到扩展程序,添加新的扩展,搜索 postman。
下载地址请看 postman,下载完成后,直接拖入到谷歌浏览器的扩展程序界面即可。
数据请求的具体方式,请看 YMNetworkTool.swift。