黑马最新IOS就业班(14年7月-12月份)培训视频教程
第一阶段:UI基础(17天)
计算器案例 | - 介绍类前缀、简单介绍新建工程的文件结构、介绍Storyboard文件、搭建UI界面
- 引入UIView和UIViewController的概念、添加监听按钮点击、实现点击事件
- 其他拖线方式、连线错误演示
|
按钮的详细使用 | - 修改按钮的frame实现放大/缩小(注意autolayout)
- 实现按钮的上下左右移动/代码抽取、增加动画、通过修改center/bounds来实现上述功能
- 纯代码创建UIButton并设置相关属性、transform实现移动/缩放/旋转
|
图片浏览器 | - 拖控件搭建UI界面、在代码里面写数据,并实现功能
- 优化代码:图片数据独立到数组里、懒加载概念、图片数据写入到plist文件
|
应用管理 | - 预习代码演示,思路分析、懒加载数据
- 九宫格算法、代码添加子控件/readonly属性介绍
- 引入模型概念/分析模型的好处、xib描述界面/storyboard对比
- 自定义View的封装、封装的总结、引入MVC
- 代理设计模式/view圆角实现/块动画
|
超级猜图 | - 预习代码演示,思路分析、stroyboard的3.5英寸和4英寸的选择、隐藏状态栏方法、按钮属性的介绍
- 怎样修改工程名、新建模型文件/介绍代码库的使用、懒加载数据、下一题功能实现
- 展示大图功能/还原小图实现、添加正确答案按钮
- 添加待选按钮、待选按钮点击事件、答案按钮点击事件
- 判断答案是否正确/加分、提示功能/减分、抽取代码和修改bug
- 2x图片介绍/icon图/default图介绍、KVC的使用介绍
|
UIScrollView | - UIScrollView基本使用、contentOffset、contentInset、contentSize
|
喜马拉雅 | - 预习代码演示,思路分析、启动图片R4的添加、功能实现
|
图片缩放 | - 预习代码演示,捏合手势介绍、介绍拖拽/滚动代理方法、介绍缩放代理方法、实现图片的缩放
|
图片轮播器 | - 预习代码演示,思路分析、基本界面搭建、UIPageControl介绍
- 利用代理方法实现图片的分页功能、NSTimer介绍/利用定时器实现自动滚动、定时器bug修复
|
UIAlertView/UIActionSheet | - UIAlertView的使用和代理方法介绍、UIActionSheet的使用和代理方法介绍
|
UITableView | - 数据源方法、代理方法、cell的重用原理、自定义cell
- 利用UIAlertView实现数据的刷新、局部刷新和全部刷新
|
汽车品牌展示 | - 3个数据源方法展示数据、头部和尾部标题方法、引入数据模型、UITableView两种样式对比
- 分析得知需要两个数据模型、数据模型嵌套的时候KVC的使用、增加索引
|
LOL英雄 | - 懒加载数据、数据源方法展示数据/设置行高方法、TableView多组数据和单组数据的模型对比
- Cell的常见属性介绍、TableView常见属性介绍、UIColor介绍/24bit/32bit颜色介绍
|
团购界面 | - 创建数据模型类/懒加载数据、怎么删除安装的app、创建xib文件描述局部UI、自定义Cell类
- 自定义加载更多View、代理设计模式实现加载更多数据、简单介绍团购广告位的做法
|
微博界面 | - 创建数据模型类/懒加载更多数据、storyboard介绍UITableViewController
- 纯代码自定义cell/计算文字尺寸、引入frame数据模型、cell封装优化
|
通知机制 | - 模拟新闻推送、通知使用注意点、通知和代理的对比和选择
|
QQ聊天界面 | - 创建数据模型/懒加载数据、纯代码自定义cell、引入frame数据模型、数据展示
- 时间bug修正、气泡拉伸讲解、气泡拉伸和计算文字尺寸代码抽取
- 键盘通知实现键盘弹出和收回、textField代理实现发送消息、自动回复消息
|
QQ动态界面 | - 纯手工写数据实现界面、介绍plist文件实现界面、使用静态cell实现界面
|
QQ好友列表界面 | - 分析数据结构应该有个数据模型、创建两个模型类/懒加载数据、数据初步显示、TableView头控件介绍
- 自定义UITableViewHeaderFooterView、layoutSubviews方法介绍
- 点击收起和展开功能实现、三角箭头旋转功能实现、会员功能快速定位及实现
|
应用管理 | - 功能分析/创建数据模型类/懒加载数据、动态cell介绍、使用动态cell实现自定义cell
- 数据展示、cell重用的时候注意点介绍及解决方案
|
第二阶段:UI进阶(18天)
UIPickerView\UIDatePicker | - PickerView多列使用(点菜)、PickerView多列联动(城市选择)、PickerView单列使用(国旗选择)
- DatePicker使用、UIToolbar使用、利用DatePicker自定义键盘和自定义键盘工具条
|
程序启动过程 | - 项目结构介绍、info.plist介绍、pch介绍、自定义LOG
- UIApplication常见属性、应用程序状态栏管理
- UIApplication OpenURL、UIApplicationDelegate常见方法、程序的启动过程
- UIWindow介绍、通过代码创建UIWindow、通过Storyboard创建UIWindow、主窗口
|
控制器 | - 直接创建、通过XIB创建、通过Storyboard创建
- 没有同名Xib、通过Storyboard、指定Xib(NibName)
- 有同名Xib、有同名Xib和同名去掉Controller的Xib
- 重写控制器loadview、控制器View延迟加载、控制器View创建练习
- UIViewController的生命周期方法
|
导航控制器 | - 导航控制器简单使用、子控制器的管理原理、导航控制器栈
- 设置导航条数据、导航控制器结构、通过Storyboard创建导航控制器
|
私人通讯录 | - storyboard搭建界面、UISwitch使用、UIActionSheet使用、UITextField使用(监听)
- Segue使用(属性、类型)、UIAlertView使用、MBProgressHUD使用、Segue完整执行过程
- 控制器数据传递(顺传、逆传)、自定义分割线"
- 应用沙盒介绍、应用沙盒获取方式、plist存储数据
- NSUserDefaults存储数据、归档(NSCoding)存储数据、完善存储通讯录数据
- UITableView编辑模式(删除)、刷新表格的几种方式、UITableView编辑模式(添加)
|
UITabBarController | - UITabBarController使用(代码)、UITabBarController使用(Storyboard)、UITabBarController View结构
|
QQ主流框架 | - 主流框架搭建及结构介绍、如何设置启动图片、静态单元格
- Modal使用(代码)、Modal使用(Storyboard)
|
Quartz2D | - 基本图形绘制(线、多边形、圆、文字、图片)、绘图练习(小黄人)、图形上下文栈
- 矩阵操作(旋转、缩放、平移等)、裁剪、重绘刷帧、重绘刷帧做动画
- 绘图复习、模仿UIImageView、图片水印
- 图片裁剪、屏幕截图、小说条纹背景
|
触摸事件 | - 响应者对象和常见方法介绍、View拖拽(UITouch使用和UIEvent使用)
- 涂鸦(CGContextMoveToPoint/CGMutablePathRef)、涂鸦(UIBezierPath)
- 手势解锁、触摸事件传递、响应者链条、手势识别器的使用
|
核心动画 | - CALayer使用、CALayer创建图层、CALayer position和anchorPoint、CALayer隐式动画、CALayer自定义图层
- CABasicAnimation、CAKeyframeAnimation、图标抖动
- CATransition\CAAnimationGroup\UIView动画
|
网易彩票 | - 项目常见配置及框架搭建、TabBar点击处理、TabBar封装
- 导航栏主题设置、自定义导航控制器、自定义导航栏标题按钮
- 系统适配和编译器适配、iOS6\iOS7屏幕适配、UIBarButtonItem样式
- 设置界面做法分析、实现设置界面、cell的封装
- UICollectionView使用、自定义UICollectionViewCell、抽取控制器父类
- 存储开关状态、实现帮助界面(webview执行script代码)、实现关于界面
- 真机调试、电话\发短信\邮件、应用评分、打开其他应用、block循环引用、实现转盘抽奖
|
第三阶段:多线程网络(13天)
NSThread | - 多线程基础、pthread、开启线程的3种方式
- 线程的状态、线程安全问题、线程间的通信
|
GCD | - 同步方法和异步方法、队列的使用、线程间的通信
- 延迟执行、一次性代码、队列组、单例模式-ARC、单例模式-MRC、用宏抽取单例模式
|
NSOperation | - NSOperation和NSOperationQueue的概念理解、NSInvocationOperation、NSBlockOperation
- NSOperationQueue的常见方法、最大并发数、操作依赖、队列的取消\暂停\恢复
|
cell的图片下载 | - 简单的同步下载、利用NSBlockOperation进行异步下载、解决重复下载问题
- 解决图片内存缓存问题、增加图片的沙盒缓存
- 自定义Operation、SDWebImage的使用
|
网络基础 | |
同步请求 | - HTTP协议简介、HTTP请求的基本过程、iOS中发送HTTP请求的方案
- 利用NSURLConnection发送一个HTTP同步请求、演示同步请求带来的阻塞
|
JSON解析 | - JSON格式介绍、JSON的解析方案、NSJSONSerialization
|
异步请求 | - 发送一个异步请求、在block回调中处理服务器返回的数据、演示异步请求带来的流畅
|
黑酷 | - 接收服务器返回的JSON格式的视频数据、解析服务器的数据展示成表格、播放对应的视频
- 接收服务器返回的XML格式的视频数据、XML语法、使用GDataXML解析XML、使用NSXMLParser解析XML
|
POST请求 | - HTTP请求方法介绍、GET和POST的区别、发送一个POST请求
- HTTP协议详解:请求、HTTP协议详解:响应
- 请求超时设置、请求过程中显示蒙版、中文URL转码
|
发送JSON给服务器 | - 为什么会有发送JSON给服务器的情况、如何发送JSON给服务器、发送JSON给服务器的注意点
|
多值参数 | - 什么是多值参数、为什么会有多值参数、如何发送多值参数
|
Charles | - 什么是Charles、Charles的安装和破解、Charles的环境配置、利用Charles拦截网易新闻的请求
|
第四阶段:iPhone项目实战(16天)
第五阶段:iPad开发(3天)
第六阶段:实用技术(18天)
地图定位 | - 使用CLLocationManager获得用户的位置、经纬度常识、计算2个位置的直线距离
- 地理编码、反地理编码、开源的用户定位类库
- MapView的显示、显示用户的位置、设置大头针文字、地图和反地理编码结合使用
- 控制地图的显示区域:中点、区域、添加大头针
- 自定义大头针模型、自定义大头针控件、修改大头针显示的图片
- 调用系统自带的地图进行导航、获得导航路线、在地图上画线
- 百度地图API简介、演示百度地图Demo、集成百度地图、简单实现POI搜索
|
应用间跳转 | |
社交分享 | |
静态库 | - 制作和使用a文件、制作和使用framework文件、bundle的使用
|
换肤 | - 简单的换肤、封装换肤过程、换肤的使用注意(tabbarcontroller)
|
ARC和MRC混合开发 | - 第一种解决方案:增加编译参数、第二种解决方案:封装静态库
|
正则 | - 正则的作用、NSRegularExpression的使用、RegexLiteKit的使用
|
支付宝 | |
单元测试 | - 为什么需要单元测试、单元测试的好处、单元测试的红灯和绿灯、单元测试的setUp和tearDown
|
打包测试程序 | |
内存分析 | - 静态分析(Analyze)和动态分析(Allocations)、图片加载细节注意(有缓存和无缓存)、内存泄露
|
私有API | - 什么是私有API、使用私有API的后果、如何辨别私有API
|
硬件信息获取 | - UIDevice+Extension、iOS System Services
|
发布程序 | - 配置证书、创建应用、填写应用信息、分析应用的状态
- 处理苹果官方的审核拒绝、更新版本、常见错误解决
|
推送通知 | - 什么是推送通知、发出本地推送通知、本地推送通知的常见属性、本地推送通知的点击处理
- 为什么需要远程推送、远程推送的基本流程、配置远程推送的证书
- 获得deviceToken、使用PushMeBaby发出推送消息、处理远程推送通知的点击
- JPush的简介、JPush的集成、利用JPush发出推送消息、JPush的好处分析
|
svn\git | - 源代码管理工具概述、svn的使用方式、svn的常见指令
-
- svn的后悔处理、svn的冲突处理、图形界面工具-Cornerstone、svn的目录规范
-
- git简介、git和svn的区别、git的本地仓库指令
-
- git的远程仓库搭建:github和oschina、git的远程仓库指令、Xcode中使用git
|
UIDynamic | - UIDynamic API介绍、重力行为、碰撞行为、捕捉行为
|
屏幕适配 | - xib、storyboard中使用autoresizing、代码使用autoresizing
- 基本使用 - 简单案例、加强使用 - 稍复杂案例
- 做3~4道练习题、代码实现autolayout、VFL
- 有了autolayout的UILabel、基于autolayout的动画、autolayout类库 - UIView + Autolayout
|
多媒体 | |
加速计 | - 传感器类型、临时传感器、加速计的使用:UIAccelerometer
- 小球案例、CoreMotion、摇一摇
|
蓝牙 | - iOS中蓝牙的实现方案、GameKit的使用:传递图片数据、CoreBluetooth、iBeacon简介和蓝牙现状
|
高级UI | |
第七阶段:毕业设计(9天)
小组项目实战 | - 开发模式: 以4~8人为一个项目小组
- 主要任务: 利用所学的技术, 团队合作, 实现自己的idea, 或者山寨大公司的项目
- 课程目的: 感受公司里面团队开发的节奏, 锻炼自己的动手能力, 巩固所学的技术, 积累项目实战经验
|
第八阶段:就业指导(6天)
现状分析 | |
行业分析 | |
职业规划 | - 介绍IT岗位和职位、介绍企业组织架构、程序员未来发展方向
- 介绍公司类型区别、如何选择企业、如何充电学习
- 做管理和搞技术如何去决择、性格分析、职场分析
|
简历讲解 | - 简历的介绍、简历的目的、简历的内容
- 基本信息、求职意向
- 专业技能、工作经历、项目经验
- 教育经历、个人评价、如何投递简历
|
项目展示 | |
复习安排 | |
面试分析 | - 求职流程、面试准备
- 笔试、机试分析、电话面试分析、人事面试分析、技术面试分析
- 面试中注意事项、入职手续注意事项
- 求职心态、入职后的怎么安全渡过试用期
|
面试题讲解 | - 各大公司的面试题分析
- Foundation、内存管理、多线程
- UI控件、数据存储
- 第三方框架、应用程序、Socket、网络协议
- 单例、runtime、block、其他
|
书写简历 | - 提交就业指导老师审阅修改
- 最终版修改后提交就业指导老师
|
模拟面试 | |
第久阶段:即时通讯项目实战(7天)
XMPP环境搭建 | - IOS参考模型七层的作用、TCP/IP参考模型简化、网络通讯要素
- socket的基本使用、socket发送与读取数据、掌握xmpp的起源与发展历程
- 装数据库、安装 mysql图形化管理工具、Openfire安装、客户端安装与登录
- 熟悉框架导入的依懒类库、了解xmpp的目录结构
|
CocoaLumberjack | - 安装codeColors插件、日志的使用 级别设置、设置自定义级别的日志颜色
|
用户登录 | - 熟悉第三方socket框架的使用、画图:用户登录的过程、XMPPStream介绍及初始化、使用git创建企信通项目、实现登录功能
- 用户登录成功后,退出到后台时,断开连接,显示在前台时自动连接(添加一个isLogin用户偏好设置)
- 用户成功登录后,如果是重新启动程序,直接跳到主界面,否则跳到登录页面、用户成功登录后,如果是重新启动程序,下次启动时自动登录
- 用户登录失败时,清除偏好设置、用户登录失败时要提示、用户注销流程、使用通知模式,提醒用户登录状态
|
扩展模块 | |
CoreData | - CoreData简单使用、CoreData多表关联、CoreData生成多个sqlite文件
|
电子名片 | - 电子名片信息获取、更新电子名片信息、花名册模块数据读取、删除好友
|
好友添加 | |
消息模块 | - 消息模块激活、消息模块中聊天信息的读取、聊天信息的coreData表结构、文件传输
- 获取好友信息、学会看xmpp文档进行功能模块开发、iOS即时通过推送原理
|
第十阶段:Swift
Swift | - 基本语法、基本运算、流程控制
- 元组、可选类型、断言
- 字符串、字符、集合
- 函数、闭包
- 枚举、结构体
- 面向对象、扩展、协议
- 泛型、高级操作符
- Swift与OC互调
|