Swift核心技术与实战 / 从理论到实践,快速掌握Swift开发
张杰
美团点评高级技术专家
 
  • 课程目录
  • 课程介绍
  • 01 | 课程介绍

  • 02 | 内容综述

  • 03 | Swift版本历史和各版本特性快览

  • 04 | Swift和Objective-C的主要区别

  • 05 | swiftc:强大的命令行工具

  • 06 | REPL:Swift交互式解释器

  • 07 | Playground:Swift学习的乐园

  • 08 | 如何在Swift中定义常量和变量

  • 09 | Swift中的数值类型

  • 10 | 如何使用Tuple组合多个值

  • 11 | 如何在Swift中使用Optional

  • 12 | Optional实现原理探究

  • 13 | 如何在Swift中创建和初始化字符串

  • 14 | Swift字符串的常见操作

  • 15 | 如何使用索引访问和修改字符串

  • 16 | 如何在Swift中获取子串和进行字符串比较

  • 17 | 赋值和算术运算符

  • 18 | 在Swift里如何处理算术结果溢出

  • 19 | 为了Optional:合并空置运算符

  • 20 | Swift的新宠:区间运算符

  • 21 | 强大的位运算符

  • 22 | 位运算符应用举例(1)

  • 23 | 位运算符应用举例(2)

  • 24 | 运算符优先级和结合性

  • 25 | 如何为类和结构体自定义运算符实现

  • 26 | 如在Swift中定义自己的运算符

  • 27 | 如何在Swift里进行循环控制

  • 28 | 更加强大的switch

  • 29 | 如何在Swift里进行控制转移

  • 30 | 如何使用guard来改善你的条件判断

  • 31 | Swift中的模式和模式匹配

  • 32 | 在Swift中创建数组的N种方式

  • 33 | 访问和操作数组:遍历和索引

  • 34 | 访问和操作数组:查找操作

  • 35 | 访问和操作数组:添加和删除

  • 36 | 访问和操作数组:ArraySlice

  • 37 | 访问和操作数组:重排操作

  • 38丨访问和操作数组:拼接操作

  • 39丨深入理解数组:底层实现探究

  • 40丨如何用数组来实现栈和队列

  • 41丨Set:定义和创建

  • 42丨Set:访问和修改

  • 43丨Set:执行Set计算和判断

  • 44 | 实现自己的集合算法

  • 45 | 深入理解集合:底层实现探究

  • 46 | Dictionary:Swift中的字典类型

  • 47 | 字典的常见操作

  • 48 | 深入理解字典:底层实现探究

  • 49 | Swift 中如何定义和使用函数

  • 50 | 函数的形式参数和返回值

  • 51 | 函数类型和内嵌函数

  • 52 | 闭包和闭包表达式

  • 53 | 闭包捕获值

  • 54 | 逃逸闭包和自动闭包

  • 55 | 如何使用Swift中的高阶函数

  • 56 | 函数式编程(1)

  • 57 | 函数式编程(2)

  • 58 | Swift面向对象概述

  • 59 | 枚举从此站起来了

  • 60 | 如何为类、结构体以及枚举添加属性

  • 61 | 如何为类、结构体以及枚举添加方法

  • 62 | 像访问数组和字典一样访问类和结构体:下标和下标重载

  • 63 | 如何进行类的初始化和反初始化

  • 64 | 如何在Swift中实现继承

  • 65 | 如何在Swift中实现多态和进行类型转换

  • 66 | 如何为现有的类、结构体、枚举或协议添加新功能

  • 67丨Swift中的协议

  • 68丨协议和扩展

  • 69丨面向协议编程初探(1)

  • 70丨面向协议编程初探(2)

  • 71丨泛型的发展历史与泛型的概述

  • 72丨如何在Swift中定义泛型函数

  • 73丨如何在Swift中定义泛型类型

  • 74丨Swift泛型中的类型约束

  • 75 | 为了协议:关联类型

  • 76 | 如何为泛型定义要求:where字句

  • 77 | 泛型下标

  • 78丨泛型编程思想浅谈

  • 79 | 如何在Swift中创建一个线程

  • 80 | 更高级的抽象:Cocoa Operation

  • 81丨多线程编程新思路:GCD概览

  • 82 | 如何使用GCD:基本操作指南

  • 83 | 深度使用GCD:高级特性指南

  • 84 | 深入理解GCD:源码剖析

  • 85 | 如何保证线程安全和同步

  • 86 | 实践出真知:多线程典型应用场景分析

  • 87 | 拓宽思路:其他常见的多线程编程模式

  • 88 | SwiftUI:Apple全新的UI框架

  • 89 | SwiftUI设计工具使用指南

  • 90 | 如何使用SwiftUI构建可复用的组件

  • 91 | 如何用SwiftUI实现动画

  • 92 | 深入理解SwiftUI:实现原理探秘

  • 93 | 如何在Swift里进行错误处理

  • 94 | Swift中代码访问权限控制

  • 95 | 不透明类型

  • 96 | Swift中的自动引用计数

  • 97 | Swift中的内存安全性

  • 98 | 如何在项目中进行网络请求

  • 99 | 如何进行JSON的序列化和反序列化

  • 100 | 没有最方便,只有更方便:对Swift标准库的一些扩展

  • 101 | 如何在Swift中进行自动布局

  • 102 | 如何进行图片加载和缓存

  • 103 | 以一种优雅安全的方式使用资源文件

  • 104 | 如何在项目中将内容分享到社交平台

  • 105 | Swift和Objective-C的运行时简介

  • 106 | 桥接问题

  • 107 | 如何在Swift和Objective-C中相互调用

  • 108 | Swift和Objective-C混合编程踩坑指南

  • 109 | 如何搭建一个iOS Swift工程

  • 110 | 商城整体架构、UI设计和模块拆分

  • 111 | 编写mock API

  • 112 | 登录注册页模块开发

  • 113 | 商城列表页模块开发

  • 114 | 商城详情页模块开发

  • 115 | 商城个人中心页模块开发

  • 116 | 商城订单页模块开发

  • 117 | 结束语

  • 118|加餐1:可选链

  • 119|加餐2:Swift KVC

  • 120|加餐3:Swift面试中的要点注意事项

课程背景

随着 Swift 5.0 的发布,ABI 的稳定,“苹果什么时候开始锁定 Objective-C 的 SDK,不再为它增加新的 API?什么时候开始用 Swift 特性更新现有的 Objective-C SDK?”这些都成为了可以想象的事情。各个公司用 Swift 完全替代 Objective-C 的趋势越来越明显。

由于Swift 相对于 Objective-C 在开发范式上仍然会有较大的区别,所以初学者编程思维转变较为困难。另外,Swift 从发布到现在经历了五个大版本,十几个小版本的迭代,语法和语言特性也在不断变更,导致网上很多学习资料良莠不齐。

因此,极客时间联合美团点评高级技术专家张杰老师一起开设了这门课程。本课程基于 Swift5.0版本进行讲解,除了Swift基础语法及新特性、与Objective-C的异同等基础知识点,课程还涉及多线程编程、Swift与Objective-C混合编程、SwiftUI、常用第三方库等更贴合实战场景等知识点。最后,我们会通过一个商场实战项目,将课程关键知识点串联起来,帮你完成从Objective-C 开发者到 Swift 开发者的平滑过渡。

讲师简介

张杰,美团点评高级技术专家,有超过10年的开发经验,8年多的客户端开发经验,先后任职于土豆、百度等公司。目前在负责客户端架构、基础设施等方面的工作。

参与过美团、点评、美团旅行等 App 的开发工作,曾经在公司进行过 Swift 的布道,还带领过团队用 Swift 开发过一款独立的 App,积累了丰富的 Objective-C 往 Swift 迁移, Objective-C 和 Swift混编、Swift 开发模式等方面的实战经验。

课程收获

  1. 掌握 Swift 5 基础语法和新特性;
  2. 理解 Swift 多线程编程等难点;
  3. 学会和 Objective-C 进行混合编程;
  4. 熟练使用 Swift 开发 iOS 应用。

限时福利

如何在电脑端观看视频

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