Giter VIP home page Giter VIP logo

todaynews's Introduction

Swift 开源项目-模仿今日头条

Build Status swift3.1

github 主页的代码和我视频中的代码,有很多部分不同,目前 github 上代码写的不是很好,不是 swift 的风格,而是 OC 的风格,所以参考意义不大。

2017.12.20 更新

- 620-根据话题获取 cid 进行传值
- 619-根据用户名获取 uid 进行传值
- 618-实现富文本点击回调
- 617-正则表达式匹配用户名话题和链接
- 616-自定义UILabel显示富文本
- 615-设置用户名高亮显示
- 614-显示emoji表情

2017.12.16 目前视频进度

视频目录暂定如下,后面可能会修改:

  1. 项目搭建
    • 101-项目搭建
    • 102-补充内容
    • 102-自定义tabBar
  2. 我的界面
    • 201-我的界面分析
    • 202-创建tableView
    • 203-Swift的核心
    • 204-添加网络请求以及创建模型
    • 205-返回数据显示到tableView
    • 206-自定义我的界面cell
    • 207-扩展cell注册方法
    • 208-自定义我的关注cell
    • 209-自定义关注用户cell
    • 210-自定义tableViewHeader
    • 211-更换主题
    • 212-iPhoneX适配介绍
    • 213-iPhoneX适配和设置tabbar的主题
  3. 登录及设置界面
    • 301-登录界面实现
    • 302-登录界面更换主题
    • 303-实现设置界面
    • 304-设置界面添加点击功能
    • 305-修改设置界面代码
  4. 离线下载界面
    • 401-离线下载界面
    • 402-集成sqlite3
    • 403-修改一些变化
    • 404-建表
  5. 用户详情界面
    • 501-用户详情界面的分析
    • 502-创建用户详情头部
    • 503-添加相关接口
    • 504-填充数据
    • 505-headerView 的点击事件
    • 506-设置主题颜色
    • 507-添加topTabView
    • 508-添加bottomView
    • 509-从xib加载的扩展方法
    • 510-自定义弹出视图
    • 511-自定义导航栏
    • 512-添加相关推荐view
    • 513-导航栏补充
  6. 用户详情动态界面
    • 601-用户详情动态数据显示
    • 602-创建collectionView
    • 603-动态cell分析及创建枚举
    • 604-计算collectionView的宽高
    • 605-自定义发布视频或文章view
    • 606-实现引用评论布局
    • 607-Int扩展
    • 608-动态cell显示时间
    • 609-自定义首页导航栏
    • 610-设置微头条及导航栏样式
    • 611-动态界面查看大图
    • 612-添加item_type
    • 613-修改动态cell的显示问题
    • 继续更新…

2017.10.01

目前项目编译使用的是 Xcode 9.1,Swift 版本是 4.0。如果使用的是 Xcode 9.1 以下版本,编译可能报错,请升级到 Xcode 9.1 ,选择 Swift 4.0,再编译运行,就不会报错了。

2017.09.09

新增接口文档

接口文档

// TODO: 文档暂时不全,后面会继续补全。

接口文档使用的是 MKDocs,具体安装方法以及使用可以参考官网的介绍。

2017.09.05

目前正在录制视频...

2017.08.22

编译的时候,可能会报错,提示某个文件找不到,可以去相应的文件夹里去找,然后拖到工程里,再编译运行就可以了。

2017.08.15

后面有时间的话会考虑出一个视频教程。

2017.06.15

删除 Swift 2.2 相关代码,继续适配 Swift 3.1。

带有YM 前缀的类都已不再使用,如果运行过程中出现报错,请删除相关类文件或代码。

2017.06.12

目前在适配 Swift 3.1,只完成了部分功能,后面会继续更新。

环境设置

  • 项目环境
  • Xcode 8.3.3
  • Swift 3.1
  • iOS 9.3 +
  • 使用 cocoaPods 管理第三方库, 如果电脑没有安装 cocoapods,请先安装 cocoapods,cocoapods 版本为 1.2.0,安装方式请参考 iOS-CocoaPod升级cocoapods1.2.0 (适配swift3)

2016.08.18

说明

首先声明,今日头条是我经常用的 app 之一,模仿今日头条也是因为感兴趣,代码仅用于学习交流。对于项目中的数据接口都是通过 Charles 抓包获得,基本每个界面都是有数据请求,不会抓包的朋友可以看我 这一篇文章

项目中有的地方代码写的不是很简洁,毕竟自己能力有限,对 Swift 使用不是很熟练,还请各位朋友不喜勿喷。下面有项目的完整源码,喜欢的朋友可以下载下来,如果您感觉我写的代码对您有所帮助,还请在 github 给个 star,非常感谢您的支持!~

对于代码中出现的问题,可以及时联系我,我会继续修改。

实现的功能

  1. 获取今日头条的接口
  2. 完成首页的布局和数据的显示
  3. 实现首页顶部导航栏滚动
  4. 新闻详情界面显示广告和评论
  5. 点击标题『+』按钮弹出频道界面
  6. 悟空问答界面实现
  7. 获取视频真实地址
  8. 视频播放功能
  9. 视频界面显示相关新闻和评论
  10. 完成视频界面顶部导航栏滚动
  11. 完成视频界面布局和数据获取
  12. 微头条界面实现
  13. 用户界面简单实现
  14. 完成关注界面布局和数据的获取
  15. 完成关注界面,添加关注功能
  16. 完成搜索功能
  17. 完成个人界面的布局
  18. 个人界面点击关注出现相关关注详情
  19. 活动界面简单实现
  20. 登录界面的简单实现
  21. 系统设置界面
  22. 离线下载界面
  23. 实现更换主题功能

数据请求

今日头条的接口文件请看: 今日头条接口.postman_collection.json,需要提前安装 postman,然后把该文件导入到 postman 进行查看,可以打开谷歌浏览器,找到扩展程序,添加新的扩展,搜索 postman。

下载完成后,直接拖入到谷歌浏览器的扩展程序界面即可。

当然也可以使用 sublime 或 vscode 打开 json 文件。

数据请求的具体方式,请看 NetworkTool.swift

todaynews's People

Contributors

apiapia avatar hrscy avatar slowdony avatar xiong1081 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.