[第1课] 课务、iOS概述

主题:这一讲第一部分介绍了课程安排的相关信息,说明上这门课的必要前提是上过基础计算机编程课程并具有较长时间的编程实践[0:00:00]。第二部分介绍了iOS编程涉及到的四个层:核心操作系统层、核心服务层、媒体层、触控应用层[0:05:30]。第三部分详细讲解了MVC(模型-视图-控制器),介绍了三者之间的结构化通信方式[0:13:37]。第四部分介绍了Objective-C语言,该语言是在C语言的基础上加入面向对象特性而形成的高级编程语言,课上以一个类的编写为例介绍了相关语法[0:30:00]。

[第2课] Xcode 5

主题:这一讲前半部分继续通过扑克牌游戏的例子继续讲解Objective-C,通过三个类的编写,介绍了方法和参数的使用方式、如何导入文件等诸多内容[0:00:00]。后半部分开始进行Xcode 5用法的详细演示[0:33:18]。这部分首先介绍了如何使用Xcode的图形化界面,例如将元件拖入到视图中并进行相应更改和操作[0:41:51]。之后介绍了如何在视图和控制器之间建立连接等内容[0:56:00]。课堂上最终现场创建出了一个可以来回翻牌并记录翻动次数的应用程序。

[第3课] Objective-C

主题:这一讲通过演示demo讲解Objective-C。课上首先公布了上次作业的答案,因为这是后面演示的基础。之后,教授在作业答案的基础上,增加了更多的扑克牌,每一张牌都能随机从牌堆中抽出一张。之后,教授新编写了一个CardMatchingGame类来设计游戏逻辑,游戏的基本思路是:两张牌花色一样或两张牌大小一样就算匹配上并能够得分。以上是模型内容,之后教授进一步调整了视图和控制器,并在此基础上进行了一些小的修改。

[第4课] 框架和带属性字符串

主题:这一讲首先继续讲解更多Objective-C的知识,首先讨论了创建对象的相关内容。之后,教授讲到了动态绑定,介绍id类型以及相关安全性知识等等。再后教授通过一个简单demo,演示了使用上面所学内容改善match:方法。这一讲的后半部分开始讲Foundation框架,介绍了NSObject 、NSArray、NSNumber、NSData、NSDictionary、NSUserDefaults、NSRange、UIFont、UIColor等类。最后课上重点介绍了带属性字符串等方面的内容。

[第5课] 视图控制器生命周期

主题:视图控制器生命周期

[第6课] 控制器多态性、导航控制器、选项卡栏控制器

主题:控制器多态性、导航控制器、选项卡栏控制器

[第7课] 视图、绘制、手势识别

主题:本集为iOS7应用程序开发课程的第七集,主要介绍了视图的相关内容和操作,包括绘制自定义图像和手势识别。通过概念讲解和扑克牌游戏的示例演示,帮助学生理解iOS7中在视图中进行绘制和手势识别的相关知识点、要注意的问题和具体的实现方法,最终实现了一个简单的扑克牌游戏,绘制了现实扑克牌的牌面,并实现了捏合缩放和滑动切换卡牌的操作。

[第8课] 协议、block、动画

主题:本集为iOS7应用程序开发课程的第八集,主要介绍了协议、block和动画的相关内容和操作,动画主要包括视图动画和动力动画。通过概念讲解和Dropit游戏的示例演示,帮助学生掌握iOS7中使用协议和block、实现动画效果的相关知识点、要注意的问题和具体的实现方法,最终实现了一个简单的类似于俄罗斯方块的游戏(方块随点击出现并下落,拼满一行后消掉这一行)。

[第9课] 动画、自动布局

主题:本集为iOS7应用程序开发课程的第九集,首先完成了上节课的动画部分的内容,对Dropit进行修改,添加动力项行为、吸附行为和拖动手势,实现了控制方块掉落位置的功能,然后通过一个简单的示例,以截图的模式主要介绍了自动布局的相关内容和操作,包括约束的多种创建、删除、查看和修改方法。最后,对Attributor示例进行修改,为其实现自动布局功能。通过概念讲解和示例演示,帮助学生掌握iOS7中使用自动布局的相关知识点、要注意的问题和具体的实现方法。

[第10课]多线程、滚动视图

[第11课] 表格视图和iPad

主题:这一讲第一部分讲解表格视图UITableView,这是用表格显示数据的一个重要的类。第二部分讲解iPad设备上的一些专用概念,iPad屏幕大于iPhone,存在一些不同于iPhone的术语和概念。第三部分是以上所讲内容的demo演示,展示了如何从Flickr网站下载数据,并在iPad横屏和竖屏两种模式有效展示图片和相关信息。

[第12课] 文档和Core Data

主题:这一讲的内容完全围绕在Core Data周围,Core Data位于SQLite数据库之上,它避免了SQL的复杂性,能让使用者以更自然的方式与数据库进行交互,这一讲首先介绍了Core Data。之后,教授讲解了UIManagedDocument,UIManagedDocument实际上是一个装载Core Data数据库的容器,而且这个容器提供一些功能,比如写入、打开数据库。之后教授继续讲解Core Data,讲了数据库中的删除、查询操作等内容。

[第13课] Core Data和表格视图

主题:这一讲首先讲解了Core Data和表格视图UITableView的关联。之后进入了一个大型的演示demo,演示Core Data和TableView方面这两堂课上讲过的内容。演示的内容是一个叫作Photomania的应用程序,作用是从Flickr中取回照片和拍照者信息,在程序中显示拍照者,通过点击拍照者可以得到他所拍的照片,点击照片可以观看。

[第14课] UIApplication、网络活动

主题:这一讲第一部分讲解了UIApplication和网络活动指示器,UIApplication提供了iOS程序运行期间的控制和协作工作。第二部分口头对上周演示demo中的一些内容进行了查漏补缺。第三部分进一步改进了之前的demo程序,主要是在iPad版上运用了弹窗。第四部分开始讲解地图方面的内容,主要介绍了Core Location。

[第15课] MapKit和嵌入Segue

主题:这一讲第一部分继续接着上一部分讲解MapKit的相关内容,讲到如何在应用程序中使用地图。第二部分讲到Embed Segue,这种Segue会将一个视图控制器的self.view嵌入到另一个视图控制器内。第三部分是之前Photomania应用程序的进一步完善,详细讲解如将一个地图视图控制器嵌入到显示照片的视图控制器中。

[第16课] 模态segue、文本框、警告视图

主题:这一讲首先讲解了Modal Segue,这种Segue会过渡到另一个控制器,在用户点完成之前,整个用户界面会一直被这个控制器所占据[0:00:00]。之后讲解了文本框以及如何从用户那里获得文本输入内容[0:17:50]。再后讲解了警告视图和动作表单,前者用于通知用户,后者让用户作出选择决定[0:24:30]。第四部分是一个课堂demo演示,内容是继续完善Photomania,添加用户所拍的照片到数据库中[0:32:30]。

[第17课] 摄像头、Core Motion、应用

主题:这一讲首先对上一讲的demo进行了一些查漏补缺。第二部分讲解使用摄像头拍照方面的内容,将设备实际拍得的照片添加到Photomania程序中。第三部分讲解Core Motion,考虑如何在空间中跟踪设备的运动。第四部分是一个基于Core Motion的小游戏的demo,游戏中让一个小方块在重力下运动,通过撞击另一个方块并使其运动来得分。最后,教授介绍了应用程序的生命周期。

[第18课] 本地化、向设置中添加UI

主题:这一讲首先讲解了期末项目相关的一些课程事务。正式内容前半部分是本地化和国际化,也就是如何让app能在多种语言和区域环境下运行,满足其它国家和地区用户的需要。之后教授通过demo演示了如何进行本地化和国际化。后半部分介绍了如何在系统设置中添加app的用户界面,并做了demo演示。

斯坦福大学公开课:iOS 7应用开发

学校: 斯坦福大学

讲师: Paul Hegarty

集数: 18

授课语言: 英文

类型: 国际名校公开课 计算机

课程简介: 最新更新课程,适用于iOS 7。本课程介绍了使用Xcode5建造iPhone平台上的应用程序所需的工具和应用程序接口;使用多点触控技术,为手机等终端设计用户互交界面等技术进行面向对象的设计。其他主题包括:内核动画、bonjour网络、移动终端电量管理和性能测评。