CS193笔记 第一讲 课程介绍
CS193 可能是最著名的iOS开发教程了。本系列作为Standford计算机系的课程,从2010年一开始就大受欢迎。在许多公开课网站都可以看到翻译后的版本。这个课程主要是讲解一些基本概念和UI设计,并不是一个iOS开发大全。比如关于游戏开发必备的SpriteKit,SceneKit和GameplayKit等内容就没有涉及。但仍不失为iOS入门学习的最好材料。学习这个课程至少要有面向对象编程的基础。
最新的一期讲座基于iOS 10、Xcode 8 和 Swift 3.0。如果看旧版的话,多少在最新的环境里会遇到些问题。相关的视频可以通过iTunes-U 下载观看,这版是有英文字幕的。想学的同学可以立刻开始,不要等中文字幕了。
本系列笔记是我自己观看这个教程的时候的所做的总结,可以帮助大家更好的掌握课程的内容。
本讲简介:iOS 10, Xcode 8 和 Swift 3 介绍。为了方便学生的理解,CS193教程里面的所有演示都会从头开始。本讲的demo是一个计算器。
这一讲的内容和2016年版几乎没有什么不同。只是所有的演示都是在最新的环境里进行的。
iOS的分层架构
从上至下iOS 可以划为四层。目前有个大致印象就可以了。下面是各层的一些重点模块
Cocoa Touch => Map Kit, Camera, Core Motion, Web View, Localization
Media => Audio Recording, Video Playback, Core Animation, Quartz(2D)
CoreService => Networking, Threading, SQLite, File Access
Core OS => Kernel, Sockets, Security, File System, Power Management
除了最下面一层外,了解这些模块可以让大家对未来要学习什么有个大致的印象。:)
XCode
XCode是Apple提供的iOS/OSx开发一站式解决方案。经过这些年的发展变化,几乎所有开发所需的功能都已经被集成进来了。另外因为XCode Ghost事件的影响,从8.0开始第三方插件也都被禁止了。但一些流行的插件功能,如“Add Documentation”也被内置了。当然如果还想用第三方插件也是有办法的,但不建议大家去折腾了。
视频中,老师会带领大家浏览XCode中的布局结构。大家可以花些时间自己多试试,一定会有收获的。XCode可以自定义布局,详见菜单中的“New Behavior”。为自己常用的布局定一个一个快捷键,会非常方便。
在XCode中可以对文件进行分组,把相关的文件放到同一组里面。比如资源组,控制器组等等。但这种结构并不会体现到实际的文件系统中。
XCode 集成了对Git的支持。建议大家一开始就用Github或Gitlab来管理自己的代码。
Swift 3.0
讲座中并没有刻意地去介绍Swift 3.0和以前版本的异同。始终都是讲的最新版。
Swift 中函数的参数可以定义两个名字,一个外部用,一个内部用。如果不想被使用可以用 "_"。但只能用于第一个参数。关于Swift的语法,大家不必硬记,在实践中会逐步掌握。另外任何教程都可能会过时,要多利用XCode中的playground来学习验证。
类/结构中的属性有存储属性和计算属性(Computed Property)两种,后者不占用数据空间。
其它:
如果不涉及UI,代码中可以只导入 Foundation。UIKit 中包含Foundation。
"_" 可以在各种场合下替换变量/常量名,表示该变量/常量可以被忽略。
成员变量如果不是Optional类型,必须要有初值。否则需要提供构建函数(initializer)。
在视频中经常可以看到屏幕左下角显示当前按下的功能键。这个效果可以通过“Enable Sticky Keys"来实现。(在System Preference中搜索 Sticky)
本讲用到的快捷键:
⌘+Click //查看定义,非常有用
⌃+I //整理代码的缩进,非常常用
⌥+P // π
⌘+B // Build
⌘+R // Run
⇧⌘H // 相当于按下模拟器的Home键
⌘+1/2/3/4/5 //缩放模拟器屏幕大小
本讲的阅读作业:https://swift.org/documentation/
一点题外话。Paul Hegarty 并不是苹果公司的员工。但是和Jobs一起工作过!