使用业界主流的MVVM模式和苹果的Swift语言开发,使用CocoaPods管理第三方库,使用YYModel解析数据,实现微博第三方登录,自定义下拉刷新和上拉加

*   第一章 新浪微博/

  *   新浪微博项目/

    *   01-02-开源中国简单介绍

    *   01-03-SSH 公钥的数据传输流程介绍

    *   01-04-配置 SSH key

    *   01-05-创建项目并推送到 OSChina 上

    *   01-06-设置图标和启动图片

    *   02-01-项目的一些基本配置

    *   02-02-MVVM简单介绍

    *   02-03-设置项目目录结构&创建子控制器

    *   02-04-添加 CZAddition,配置桥接文件让 Swift 调用 OC

    *   02-05-使用字典创建一个控制器

    *   03-01-添加其他三个子控制器

    *   03-02-抽取代码&fileprivate讲解

    *   03-03-通过标题属性字典设置tabBar的图标和文字颜色

    *   03-04-初始化撰写按钮添加到 tabBar 上面

    *   03-05-设置撰写按钮的位置&调整撰写按钮到最前面接收点击事件

    *   04-01-实现 tabBar控制器代理完成屏蔽中间控制点击&利用@objc 修饰私有方法

    *   04-02-添加测试控制器,push 显示

    *   04-03-重写push方法,隐藏底部的 tabBar(先放一放)

    *   04-04-扩展测试控制器,不停的 push

    *   05-01-利用 customView 实现 item 样式

    *   05-02-抽取 barButtonItem 便利构造函数

    *   05-03-设置返回按钮

    *   05-04-设置返回按钮的图标

    *   05-05-返回按钮标题显示逻辑

    *   06-01-解决返回手势不识别&右上角有阴影的问题

    *   01-02-初始化访客视图的控件

    *   01-03-小房子图像视图布局

    *   01-04-访客视图主要控件添加自动布局约束

    *   02-01-使用 VFL 设置 maskIconView 的布局

    *   02-02-使用背景颜色处理剩余部分的显示

    *   02-03-设置不同界面的访客视图数据

    *   02-04-首页圆圈旋转动画

    *   03-01-通过 addtarget 添加访客视图监听

    *   03-02-添加未登录情况下的导航栏按钮

    *   06-03-访客视图逻辑介绍&已登录状态下 tableView 展示

    *   06-04-根据用户登录标记判断是否显示访客视图

    *   06-05-添加访客视图素材&准备访客视图

    *   03-04-第三方登录介绍

    *   03-05-创建应用程序

    *   03-06-用 url 拼接 token 字符串访问用户微博数据演示

    *   04-01-使用浏览器显示OAuth授权页面

    *   04-02-创建 OAuth 登录控制器,设置根视图

    *   04-03-利用执行 js 实现自动填充功能

    *   04-04-拼接登录页面地址,加载登录页面

    *   05-01-导入 SVProgressHUD 实现加载 loading 效果

    *   05-02-利用思维导图分析 OAuth 登录流程

    *   05-03-利用代理方法监听webView打开的是哪个页面

    *   05-04-截取授权code

    *   06-01-分析 accessToken 获取思路&导入 AFN 和 YYModel

    *   06-02-使用 AFN 请求 AccessToken

    *   06-03-通过 YYModel 将获取 AccessToken 的数据进行字典转模型

    *   06-04-获取个人信息&将头像与昵称保存到模型

    *   01-01-创建网络工具类单例

    *   01-02-测试网络工具单例类

    *   01-03-使用一个函数封装 AFN 的 GET&POST 请求

    *   01-04-抽取网络工具类思路分析

    *   02-01-抽取loadUserInfo到工具类中

    *   02-02-抽取获取 AccessToken 的方法到工具类中

    *   02-03-数据本地缓存的几种方式回顾

    *   03-01-通过生命周期计算出 AccessToken 的过期时间

    *   03-02-使用偏好设置保存用户的个人数据

    *   03-03-从偏好设置里面读取保存的数据

    *   03-04-判断用户是否登录的思路分析

    *   03-05-完成判断用户是否登录的逻辑

    *   03-06-将 WBUserAccount 抽取成单例

    *   04-01-对WBUserAccount的处理回顾

    *   04-03-完成登录成功之后切换界面的逻辑

    *   04-04-欢迎页面实现思路分析

    *   04-05-欢迎页面的界面搭建

    *   05-01-初始化欢迎页面,在启动的时候添加到 mainVC 中

    *   05-02-导入 YYWebImage 加载欢迎页头像

    *   05-03-执行欢迎页面的动画

    *   05-04-使用系统按钮设置为按钮的 titleView

    *   06-01-重写 layoutSubViews 方法调整按钮的子控件位置

    *   06-02-设置 titleButton 的监听事件&抽取代码到 titleButton 中

    *   06-03-查看微博首页数据接口&请求首页数据

    *   06-04-创建微博模型&将获取回来的数据进行字典转模型

    *   01-01-实现 tableView 的数据源方法显示微博数据

    *   01-02-抽取微博首页数据的代码到网络工具类中

    *   01-03-抽取首页加载数据的方法到视图模型

    *   02-01-首页 ViewModel 抽取逻辑回顾

    *   02-02-上拉加载下拉刷新接口分析

    *   02-03-判断 tableView 滚动到底部

    *   02-04-定义微博的 id 属性,讲解 Int 类型的注意点

    *   03-01-修改网络工具类和 ViewModel 中加载数据的方法能准备刷新

    *   03-02-完成上拉加载基本逻辑

    *   04-01-修正 since_id 和 max_id 计算的代码 & 演示快速上拉的 bug

    *   04-02-系统下拉刷新控件的集成

    *   04-03-自定义刷新控件思路分析

    *   05-01-自定义刷新控件继承于 UIControl&添加到 tableView 顶部

    *   05-02-添加刷新控件的子控件&使用 SnapKit 添加约束

    *   05-03-定义刷新控件的状态

    *   05-04-使用 KVO 监听 tableView 的滚动

    *   06-01-根据滚动距离去设置当前控件的状态[不要死记代码]

    *   06-02-根不同的状态设置刷新控件不同的显示信息

    *   01-01-进入到刷新中状态保证刷新控件停留在界面上

    *   01-02-添加刷新控件的监听事件,实现下拉刷新的功能

    *   01-03-完善刷新控件的细节&刷新控件的小结

    *   02-01-微博首页布局分析

    *   02-02-添加 cell 的 xib 并且验证

    *   02-03-原创微博 cell 布局

    *   02-04-微博 cell 子控件连线

    *   02-05-设置微博文字取消分割线

    *   03-01-新建微博作者信息模型&并获取数据

    *   03-02-抽取 cell 的 ViewModel 思路分析

    *   03-03-根据思路抽取 cell 的 ViewModel

    *   04-01-显示首页 cell 的基本数据

    *   04-02-使用 layer 的 corneradius 处理圆形头像

    *   04-03-微博 cell 底部工具条界面搭建

    *   04-04-添加底部工具栏视图&显示基本数据

    *   05-01-完善转发评论赞的数据显示逻辑

    *   05-02-添加配图视图到微博 cell 中并自动布局

    *   05-03-创建配图视图类,测试配图视图的高度

    *   05-04-增加配图模型数组,使用 YYModel 赋值数组中的值

    *   06-01-准备配图视图大小属性和计算方法

    *   06-02-根据配图数量计算配图视图的大小

    *   06-03-解决图片张数为0时工具条与文字间距过大的问题&抽取配图视图所需常量

    *   06-04-配图视图的9宫格布局

    *   02-04-单张图片缓存思路分析

    *   03-01-准备缓存单张图像的函数

    *   03-02-确定要缓存的单张图片的 URL

    *   03-03-使用 YYWebImage 下载单张图片

    *   03-04-使用调度组监听单张图片下载完成再刷新页面

    *   04-01-根据单张图片调整显示单张图片控件的尺寸

    *   04-02-解决图片被缩放之后显示过小的问题

    *   04-03-演示长图显示过窄的问题&提供准备方法

    *   04-04-处理单张图片显示过窄过宽的问题

    *   05-01-单张图片处理思路回顾

    *   05-02-修改 tableView 背景颜色&删除右上角测试用的 item

    *   05-03-定义分类方法隔离 YYWebImage 框架

    *   05-04-真机测试&Instruments 测试 FPS

    *   06-01-tableView性能优化思路分析

    *   06-02-混合图层演示

    *   06-03-模拟器中图形测试工具介绍

    *   04-04-撰写类型视图的功能演示

    *   05-01-初始化撰写类型视图并添加到界面上

    *   05-02-实现背景磨砂的效果

    *   05-03-撰写类型视图界面搭建并连线

    *   05-04-自定义继承于 UIControl 的按钮并测试

    *   06-01-添加6个撰写类型按钮并布局

    *   06-02-添加剩余6个撰写类型按钮并测试

    *   06-03-读取撰写类型数据并显示到界面上

    *   06-04-完成点击更多按钮到下一页和点击返回按钮到上一页逻辑

    *   01-01-给 ScrollView 添加向右滑动的手势滑动到第一页

    *   01-02-使用iMovie逐帧分析应用程序动画效果

    *   01-03-pop框架简介

    *   01-04-使用 pop 实现撰写类型视图透明度动画

    *   01-05-使用 pop 动画实现按钮从底部弹出到界面的效果(上)

    *   02-01-使用 pop 动画实现按钮从底部弹出到界面的效果(下)

    *   02-02-实现按钮从界面移动到底部隐藏的动画

    *   02-03-撰写类型视图在隐藏的时候从不透明到透明的动画

    *   02-04-完成按钮点击放大缩小和透明度变化动画

    *   03-01-使用闭包将撰写按钮的点击事件回调给控制器

    *   03-02-在撰写按钮点击的时候弹出控制器&解决撰写类型视图的循环引用

    *   03-03-plist 中指定每个按钮对应的控制器类名以弹出对应控器

    *   04-01-撰写类型视图实现思路回顾

    *   04-02-发微博界面简单介绍

    *   04-03-初始化 label 设置成发微博界面导航栏的 titleView

    *   04-04-使用富文本实现 label 中不是文字颜色和字体大小

    *   05-01-实现导航栏右边发送按钮的效果

    *   05-02-添加 textView 到发微博控制器中

    *   05-03-实现 textView 滚动关闭键盘&根据是否有内容设置发送按钮状态

    *   05-04-自定义 textView 添加并显示占位文字 label

    *   06-01-利用通知监听 textView 的文字改变隐藏占位文字

    *   06-02-发微博界面底部工具条的界面搭建

    *   06-03-监听键盘 frame 改变的通知

    *   06-04-根据键盘的 y 值调整工具条的约束并做动画

    *   01-01-利用生命周期的方法实现界面展示/关闭的时候弹出/隐藏键盘

    *   01-02-定义协议,将工具条中按钮的点击事件抛给控制器

    *   01-03-使用枚举值区分按钮的类型并回调给控制器

    *   01-04-查看发送微博接口&定义发送微博的方法

    *   02-01-实现发送文字微博功能

    *   02-02-抽取 tokenRequest 请求数据的方法

    *   02-03-处理用户在使用过程中 accessToken 过期的问题

    *   03-01-查看上传图片文档接口&准备上传图片的方法

    *   03-02-利用 AFN 上传图片的方法实现发送图片微博的功能

    *   03-03-完善上传文件的方法,将UIImage 类型改成 Data 类型

    *   04-01-使用 UIImagePickerController 选择图片

    *   04-02-UIImagePickerController 的其他用法

    *   04-03-自定义发微博界面的配图视图并添加到界面

    *   05-01-实现数据源方法调整 itemSize 和 itemMargin

    *   05-02-提供方法供外界向当前配图控件里面添加图片

    *   05-03-自定义 cell 显示添加图片控件显示图片

    *   05-04-实现点击删除按钮删除对应图片的逻辑

    *   06-01-完成配图视图中加号按钮的显示逻辑

    *   06-02-使用闭包完成加号按钮点击去选择图片的功能

    *   06-03-配图控件的代码优化和细节功能完善

    *   01-01-演示图片占用内存过高的问题并讲解原因

    *   01-02-使用核心绘图对图片进行指定宽度等比例缩放

    *   01-03-将用户选择的图片发送到微博&完善方法

    *   01-04-使用 pod 集成 HMImagePicker 框架到项目

    *   02-01-使用 HMImagePicker 去选择图片

    *   02-02-抽取表情上屏的逻辑到 textView 的分类中

    *   02-03-集成 HMEmoticon 项目以显示表情键盘

    *   02-04-textView的键盘切换逻辑

    *   03-01-表情键盘的界面分析

    *   03-02-表情键盘数据的处理类与模型类介绍

    *   03-03-读取 emoticon.plist 确定有多少组逻辑

    *   04-01-读取指定一类表情的数据

    *   04-02-表情数据与 collectionView 关联逻辑

    *   05-01-讲解表情数据的显示逻辑

    *   05-02-点击 toolBar 中的按钮滚动到指定类型表情

    *   05-03-滚动 collectionView 选中 toolBar 上对应的按钮

    *   06-01-UIPageControl 数据设置以及使用 KVO 设置选中/未选中图标

    *   06-02-tipView显示逻辑

    *   06-03-让表情键盘在启动的时候滚动到默认表情

    *   06-04-讲解最近表情的保存逻辑

    *   01-01-单独集成表情键盘&准备表情上屏

    *   01-02-emoji表情上屏&删除按钮点击逻辑处理

    *   01-03-图片表情上屏的基本逻辑

    *   02-01-解决用户选中一段文字再输入表情的bug

    *   04-01-使用 Xcode 演示正则表达式的简单使用

    *   04-02-使用正则表达式匹配来源字符串中的 url 和文本描述

    *   04-03-模糊匹配&抽取匹配逻辑到 extension 中

    *   05-01-完成微博项目中来源字符串的显示

    *   05-02-微博时间显示逻辑分析

    *   05-03-将时间字符串转成 Date 对象

    *   05-04-定义 Date 的计算型属性,完善伪代码

    *   05-05-判断微博创建时间是否是今年

    *   06-01-使用 Canlendar 对象判断是否是今天

    *   06-02-时间格式化细节判断完成

    *   04-02-首页数据缓存功能介绍

    *   04-03-FMDB架构回顾

    *   04-04-集成 FMDB 框架到项目&分析微博首页表结构

    *   05-01-完成创建数据库表的操作

    *   05-02-创建 DAL,准备缓存数据到数据库的方法

    *   05-03-将网络上请求回来的数据缓存到本地

    *   06-01-添加检查缓存的方法&拼接查询的 SQL 语句

    *   06-02-从 resultSet 中获取微博数据并返回

    *   06-03-数据访问层逻辑完善

    *   07-01-解决首页加载数据会调用两次 DAL 加数数据的方法的 BUG

    *   07-02-调整创表 SQL, 增加微博记录创建时间

    *   07-03-清除数据库缓存逻辑实现

    *   07-04-微博数据缓存回顾&能够做数据缓存的数据类型和特点

    *   07-05-解决项目上线 print 输出的问题

    *   06-03-将微博内容转成富文本显示&准备匹配表情的方法

    *   06-07-使用正则演示匹配表情字符串