CS 193P:使用Swift讲座1注释开发iOS应用程序

介绍

为了成为iOS的高级开发者,斯坦福大学的CS193p: 在Swift中开发iOS(9)应用程序是一门课程,它受到许多人的拥护,这与他们在iOS开发中的成功紧密相关。 需要注意的是,对于初学者来说,它不一定是最好的课程。 我刚刚在Recurse中心(Hacker学校)完成了一批工作,并且受到启发去解决远远超出我舒适范围的问题。 参加这门课程就是这样的壮举。 这些是我用来帮助我进一步了解材料并防止我不得不暂停并无限期播放视频的笔记。 许多幻灯片是通过iTunes U课程提供的。 笔记是给我的,实际上是对演讲内容的要求,但是我被鼓励分享这些笔记,因为事实证明它们对许多参加该课程的人也很有用。 我什至没有满足先决条件的一半,因此我怀疑我的笔记会很冗长,并且可能更适合像我这样的相对较新的程序员。 请在下面发布任何改进建议。 谢谢!

  • 先决条件
  • iOS概述
  • 演示版
  • 你会学到什么?
    –您将学习如何构建“酷”的应用程序
    –现实生活中的面向对象编程

先决条件 :主要先决条件是具有面向对象编程 (OOP)的经验。 满足要求的相关斯坦福课程为CS106A&BCS107CS108CS110 。这是斯坦福大学的高级CS课程。

核心操作系统在硬件附近,而可可触摸在用户附近。

  • iPhone正在运行UNIX ,因此它具有完整的多任务处理和文件系统。 构建应用程序时,您可以使用所有这些功能。 特定于移动设备的是Power ManagementKeychain Access之类的东西(以确保人们不会访问不应访问的东西)。
  • UNIX上的面向对象层是 核心服务层,因此我们可以使用NetworkingMultithreadingPreferencesSQL数据库。
  • 此层中没有用户界面 (UI)。
  • 具有讽刺意味的是,这个(多媒体)层非常重要,我们不会花太多时间。
  • 该层包括视频,各种不同的音频框架,静态图片(如JPEG),用于2D绘图的Quartz API,用于3D绘图的OpenGL等。
  • 在顶层,我们将花费大部分时间在此处,这是Cocoa Touch
  • 它是用于构建用户界面的面向对象的API。
  • 这些用户界面不仅限于屏幕上的按钮和滑块。 例如,它们包括摇动手机时的操作以及使用手机的方向作为输入。 它还包括动画。
  • 我们没有时间来遍历该层中的所有对象,但是我们的想法是,我们了解的一些对象将具有使用它们的范例,这些范例可以应用于我们不熟悉的对象。
  • 我们所做的一切都将在Xcode 7中进行,我们将始终专注于Swift。
  • 与框架同样重要的是一种称为Model-View-Controller(MVC)的设计策略或方法。
  • Model-View-Controller是一种将面向对象应用程序中的所有类划分为三个不同组的方法。 Model组是我们程序执行的,独立于UI。 对于计算器,这将是所有的计算。 如何添加,划分,平方根等。 视图是用户与之交互的用户界面。 它通常由通用用户界面元素(如按钮和滑块)制成。 对于计算器,这将是按钮和显示。 控制器模型视图之间的粘合剂 。 它是侦听UI中发生的事情,做出决策,更新模型或由于模型中的某些更改而更新UI的事物。
  • 导入就像其他语言中的包含。 我们包括UIKit ,它是一个模块 ,而不是一个文件。 在Swift中,我们可以将多个类组合在一起,并将其称为module 。 所有这些类(只要它们是公共的)将对使用它的所有对象可见。
  • UIKit具有所有可用于构建计算器应用程序的用户界面元素,例如标签,按钮和文本字段。 我们几乎总是会导入UIKit。
  • 在模型中,由于它是独立于UI的,因此我们很可能会导入Foundation基础核心服务层,因为我们可以在模型中进行联网和数据库化
  • 请注意,我们的类的名称为ViewController ,并且太通用了。 好的做法是创建描述性的类名。 例如,在我们构建一个计算器的情况下,最好将此计算器称为ControllerViewController。
  • 在面向对象编程(OOP)中,类具有继承UIViewController是我们的控制器继承的类。 注意,所有MVC控制器必须直接或间接继承自UIViewController
  • Main.storyboard是我们的M V C的V(视图)。即,计算器的图形表示。 有趣的是,此UI是方形的。 技巧问题:正方形有多少个iOS设备? 答案是“无”。 它们都是矩形的。

那么为什么我们要在一个正方形的UI中进行设计呢?

  • 我们这样做是为了提醒自己,我们需要设计UI,使其可以在任何方向上拉伸和扩展,以使其适合任何形状。 吸引人之处在于,我们可以构建一个可以在所有设备上使用的UI。
  • 像艺术家一样,我们用UI元素绘制此空白画布。 在这里,我们将按钮从实用程序菜单拖动到画布上,并将其放置在概念中心。 蓝点虚线可以帮助您构建这种灵活,适应性强的UI。

* 请注意,出于本演示的目的,我们暂时还不会遵守这些设计规范

  • 我们可以使用属性和大小检查器来编辑UI元素。
  • 将按钮大小更改为64 x 64,并将字体大小更改为30。