JeOam's Blog

斯坦福 iOS7 公开课第一课:Class Logistics, Overview of iOS, MVC, Objective-C

29 Jan 2014

这是 Stanford CS193p: Developing iOS 7 Apps for iPhone and iPad Fall 2013-14 文字版,按照视频字幕手工编辑完成。这里的内容由于是按照讲话的录音记录下来的,所以文字风格便口语化,也比较”线性”. 视频的内容大部分会记录成文字,但也酌情省略了可以忽略的语句。

想要看到文章更好的排版效果,可直接浏览 GitHub 里的文件。深受 md 格式解析不统一的害!!

Welcome to Stanford CS193P fall of 2013-14, We are going to be covering developing applications for iOS, so specifically iOS7. iOS is really cool platform for building apps.

What will I learn in this course?


The prerequisites for this class are super duper important.

If you are not very comfortable with all of these, this might not be the class for you!

This is an upper-level CS course. If you have never written a program where you had to design and implement more than a handful of classes, this will be a big step up in difficulty for you.

iOS7 is completely object-oriented. The whole structure, the design of the thing, is object-oriented.


All of the homework assignments have detailed write-up of the required task and what we’re evaluating you on, and they also have hints in there. They’re basically reinforcing what has been taught in lecture in that week.

I’m a big believer in a teaching methodology, which is I’m going to tell you about a concept, via slides, and then I’m going to show you it by demoing it to you, actually writing an application that does, then I’m going to ask you to do it on the homework.

So that’s three times you’re going to see every single thing pretty much in this class. By the end of that, you’re going to know how to do it.

What’s in iOS?

This is just a high-level overview

1. Core OS, which is the stuff that’s close to the hardware.
   OSX Kernel, Mach 3.0, BSD, Sockets, Security, Power Management, Keychain Access, Certificates, File System Bonjour
2. Core Services, which is an object-oriented layer[error] on top of Core OS.
   Collections, AddressBook, Networking, File Access, SQLite, Core Location, Net Services, Threading, Preferences, URL Utilities
3. Media, because these devices are basically iPods with a phone in them or with a big screen on them, but media is really important to these devices, in them or with a big screen on them
   Core Audio, OpenAL, Audio Mixing, Audio Recording, Video Playback, JPEG, PNG, TIFF, PDF, Quartz (2D), Core Animation, OpenGL ES
4. Cocoa Touch, which is the UI layer
   Multi-Touch, Core Motion, View Hierarchy, Localization, Controls, Alerts, Web View, Map Kit Image Picker, Camera

Platform Components

#####1. Tools

2. Language
3. Frameworks
4. Design Strategies


New language to learn!
Most important concept to understand today: Properties
This is just your first glimpse of this language!

Objective-C Code Demo

In objective-C every class we have and the class I’m going to show you today is a, is in our, essentially our model that we’re going to build for our card game matching app. We’re going to have a card and a deck, and we’re also going to have subclass of card called playing card, and a subclass of deck called playing card deck. Those are the four classes that are going to be in our model, to start.

Coming Up

#####Next Lecture

Next Week

Lecture 1 done!