从0开发一款iOS App / 手把手带你构建类今日头条的App
朱德权
腾讯高级工程师
 
  • 课程目录
  • 课程介绍
  • 01 | 课程介绍

  • 02 | 内容综述

  • 03 | 常见App类型及技术栈浅析

  • 04 | 使用Xcode创建第一个工程

  • 05 | MVC模式:iOS中的架构基石

  • 06 | iOS中的视图UIView

  • 07 | 了解UIView的生命周期

  • 08 | 视图的控制器UIViewController

  • 09 | 结合视图和控制器构建Tabbar样式页面

  • 10 | 使用Navigation构建App的基础交互

  • 11 | iOS基本页面框架的构成和实现

  • 12 | 系统函数中常见模式Delegate

  • 13 | UITableView简介

  • 14 | UITableView中Delegate和Datasource的使用

  • 15 | UITableViewCell的复用及原理

  • 16 | 结合子视图实现完整的列表界面

  • 17 | UICollectionView的基本应用和实现

  • 18 | UICollectionViewLayout的应用

  • 19 | 基本列表视图的选择和使用

  • 20 | 滚动视图的基类UIScrollView简介

  • 21 | 应用UIScrollViewDelegate实现复杂逻辑

  • 22 | iOS中滚动视图对比及App内应用场景浅析

  • 23 | iOS中文字的展示:UILabel的使用与布局

  • 24 | iOS中图片的展示:UIImage与UIImageView的应用

  • 25 | iOS中按钮的实现:UIButton的使用

  • 26 | UIControl以及Target-Action模式

  • 27 | 使用UIGestureRecognizer实现自定义点击与手势

  • 28 | 通过UIAlertView了解UIKit系统函数的设计和使用

  • 29 | Web基础知识及WKWebView 介绍

  • 30 | 使用WKWebView及Delgate实现简单的页面加载

  • 31 | 认识观察者模式KVO并展示页面加载进度

  • 32 | iOS开发中的Web应用浅析

  • 33 | 使用UIView动画完善界面的交互

  • 34 | 动画背后的CALayer基本应用

  • 35 | CoreAnimation及开源动画框架介绍

  • 36 | 常用代码规范和重构方式

  • 37 | 结合UIKit分析常用App的页面结构

  • 38 | 网络基础及请求的封装

  • 39 | NSURLSession基础原理、组织和使用

  • 40 | 使用系统网络架构NSURLSession加载网络数据

  • 41 | 常用框架集成方式Submodule、Carthage和CocoaPods对比和使用

  • 42 | 集成和使用开源网络框架

  • 43 | iOS中的JSON解析

  • 44 | 使用结构化的数据进行解析和展示

  • 45 | 实现列表数据加载、解析和展示的完整流程

  • 46 | iOS沙盒机制和文件结构

  • 47 | 使用NSFileManager操作和管理文件

  • 48 | iOS中的序列化NSCoding

  • 49 | 开源存储方案对比与分析

  • 50 | 缓存新闻列表数据及已读状态

  • 51 | iOS中线程的基础知识及NSThread

  • 52 | GCD的常用方法分析和使用

  • 53 | 了解Operation、Runloop以及多线程开发总结

  • 54 | 如何管理App中的图片下载与存储

  • 55 | 开源图片框架接触的架构和使用

  • 56 | 了解iOS系统的音视频框架

  • 57 | 重构视频列表展示视频

  • 58 | 实现简单视频播放器AVPlayer

  • 59 | iOS消息机制NSNotification简介

  • 60 | 使用Notification接收和处理播放状态通知

  • 61 | 使用KVO监听和处理播放资源的状态变化

  • 62 | CMTime及播放缓冲进度的获取和使用

  • 63 | 使用单例模式重构播放器业务逻辑

  • 64 | 常用App视频业务及流程浅析

  • 65 | AutoLayout简介

  • 66 | 使用AutoLayout实现通用ToolBar视图

  • 67 | iOS常用布局方式选择

  • 68 | 逻辑分辨率适配

  • 69 | 物理分辨率适配

  • 70 | 使用ImageAsset管理图片资源

  • 71 | iPhone X适配

  • 72 | iOS开发适配常用方法总结

  • 73 | App启动过程及生命周期分析

  • 74 | 通过App生命周期回调实现启动页

  • 75 | 使用URL Scheme进行App间的唤起和通信

  • 76 | Universal Link简介

  • 77 | 常用组件化Target-Action方案

  • 78 | 常用组件化URL Scheme方案

  • 79 | 常用组件化Protocol-Class方案

  • 80 | 实现简单的第三方登录和分享功能

  • 81 | iOS中静态库的制作和使用

  • 82 | iOS当中Framework的制作和使用

  • 83 | OAuth和OpenID原理和使用

  • 84 | 集成QQ SDK实现登录和分享功能

  • 85 | iOS中常用日志和上报系统浅析

  • 86 | 类CocoaLumberjack日志框架架构浅析

  • 87 | Crash的类型介绍和常用收集方案

  • 88 | 常用上报技术方案对比和分析

  • 89 | iOS中定位和定位权限

  • 90 | 定位功能实现和位置信息的获取

  • 91 | iOS中推送和推送权限

  • 92 | 使用UserNotifications实现本地推送

  • 93 | 远程推送与APNs简介

  • 94 | 使用UserNotifications接收远程推送

  • 95 | iOS图标管理和动态更新

  • 96 | iOS App Extension简介

  • 97 | 实现Today Extension以及数据共享

  • 98 | UITextField和UITextView

  • 99 | 使用UITextField实现搜索条

  • 100 | 使用UITextView实现输入框

  • 101 | 复杂列表页实现方案及IGListKit浅析

  • 102 | 复杂内容页展示逻辑及实现方案浅析

  • 103 | App的签名原理和证书申请

  • 104 | 常用iOS唯一标识符

  • 105 | App的打包和上架流程

  • 106 | 课程总结和结束语

课程亮点

  1. 使用 Objective-C 语言,符合国内 iOS 开发的主流标准;
  2. 基于最新的 iOS 12 进行讲解,不传授过时的知识;
  3. 立足于工程化开发实战,从一个空白项目开始,手把手带你开发一个类今日头条的 App;
  4. 内容覆盖基本 UI 构建,网络、存储、音视频、列表、登录、日志系统、埋点等 App 常见功能的开发,学完即可具备独立开发一个完整的 App。

课程实战 Demo 参考图

讲师简介

朱德权,毕业于哈尔滨工业大学计算机专业,腾讯 iOS 开发高级工程师,开源项目 HybridPageKit 作者。

曾在腾讯多个千万级日活 App 中从事开发和架构工作。主导了多款 App 内容页框架的开发,以及视频、网络等多个关键底层模块架构设计,在 iOS 开发方向有着丰富的开发和实战经验。同时对 Web 开发和安卓开发也有一定的开发经验。

基础要求

学习本课程之前,你需要先掌握 Objective-C 的基本语法,能够读懂用 Objective-C 语言编写的代码。

限时福利

如何在电脑端观看视频

  1. 用浏览器访问 https://time.geekbang.org ,登录极客时间账号;
  2. 然后在“讲堂”板块选择“视频课程”标签,点击相应的视频课程即可观看。