Home » Featured, iPhone App開發

[CS193P] 第一堂課摘要及心得筆記

Richard 9 January 2010 11:22 pm

很快的,CS193P的連載也正式開始了,第一週的課程著重在基本的觀念介紹,讓大家能夠很快速的了解到iPhone的環境,包含作業系統、開發工具以及使用的語言跟框架。另外,也針對了物件導向的程式設計和MVC架構有個簡單的介紹。本篇文章將會針對課堂上的一些重點做摘錄、以及提示。

因為這是Standford iPhone課程的第一堂課,無可避免的在課程的前半段針對了課堂的一些規則、選課的注意事項做了一些簡介,當然,對於我們收看iTunes U的讀者來講可以快速跳過。不過在投影片38張到42張的部份,有針對課堂中會面臨的作業進行大概的介紹。像是Paparazzi這個作業就會讓我們實做一個Flickr的iPhone程式,必且從中學習一些相關API的使用,相當值得期待。

iPhone開發平台概論

而在投影片第44張之後到56張,是對於iPhone OS平台的一個概略介紹,這部份我本人在不久之前在Inside部落格上面曾經刊載了類似的內容,大家或許可以作為參考之用。大體來講,iPhone OS就是修改版的Mac OS X,採用分層的架構,四層架構中各有個別的工作。

開發工具

不知道大家是不是已經安裝了iPhone的SDK了?

iPhone的SDK可以從iPhone Dev Center中下載,只需要先註冊成為ADC的免費會員即可安裝,檔案有點大,要稍微有點心理準備。

在安裝完iPhone SDK中你可以在/Developer/Applications/目錄下找到很多開發工具,其中最常用到的莫過於Xcode和Interface Builder了,前者是整合性的IDE,幾乎所有的程式碼撰寫、編譯,甚至是測試、除錯都在這裡面進行。而Interface Builder則是提供了一個簡單的管道讓我們能夠快速的用拖拉元件的方式建立應用程式的使用者介面。

物件

Objective-C雖然也是有物件導向功能的C語言,跟C++相比,有一些不同之處需要注意。由於一開始的設計,Objective-C的物件概念比較偏向Smalltalk,也就是,物件之間的溝通是透過訊息傳遞(message passing)的模式。而該物件在針對訊息產生動作(actions)。這概念有點類似C++中的函式呼叫(function call),但不同的是,在Objetive-C中,即使那個物件沒有定義相對的動作,你還是可以針對那個物件傳送訊息,並不會產生錯誤。

而每一個物件當然也會有他對應的狀態(state),這些狀態通常就是另外的一個物件。舉例來說,一個車子物件他會有輪子的狀態,但這輪子本身便又是另外一個物件,可以針對這個物件傳送不同的訊息。

而Objective-C的每個物件便是由狀態和動作所組成的。而在Cocoa Touch的開發上,前端的使用者介面(UI),上面的每個元素,像是文字輸入框、或是按鈕等等,其實都是物件的狀態。而當按鈕被觸碰、或是文字框輸入了文字,便會針對物件傳遞訊息,讓物件做相對應的動作去處理。

參考資源

Richard

平日關注於社群媒體以及行動上網的相關話題,熱愛技術。近日主要工作為開發iOS的應用程式,歡迎各位讀者與我交流。Twitter/Facebook: @dlackty、Email: dlackty@gmail.com。

More Posts - Website

  • Pingback: [CS193P] iPhone開發課程系列回顧 - Inside

  • Jian

    Hi Richard,

    很感謝你分享了這麼好的一個資源
    相信 會激勵更多有興趣,或是有idea
    卻還無法實踐的人投入這個領域

    昨天在看[CS193P] Lecture #1:introduction to Mac..
    有一段我不太懂 想要請教您:

    講師在把Object 跟 label, slider hookup之後

    在build的過程中講師遇到一點問題(影片的41:20到42:35)
    所以他寫了一段程式 我看不清楚那一段code
    只有隱約看到是….NSString stringWithFormat….

    請問如果我遇到這種問題
    可以有什麼管道或是方法可以查詢 或 深入瞭解

    Have a nice day!

    Jian

  • Fisherman188

    stanford的ios课程很好,内容翔实,水平很高,可惜也很难。
    如果完全学懂了,自然可以成为ios的好手。不过如果要在短
    短的一系列课程中达到这个目的,其实是很挑战的。我自己
    有十多年的编程经验,熟悉c,c++,java等,也是花了好长时间,
    (三个月,每天4个小时),才勉强搞懂了课程的大部分内容。
    我不知道是自己太笨,还是stanford的天才们太聪明。

    建议ios的初学者还是找些别的资料来入门,有了一定的ios经验
    之后,回头再看stanford的课程,你会有很多惊喜。如果你对
    ios完全陌生,跟进stanford的课程,你很有可能死在半途中。

  • Fisherman188

    stanford的ios课程的优点和缺点介绍如下:
    1) 课程内容很多,但上课时间很短,导致很多内容介绍的很简短。
    需要学生课后自己花很多时间去补课。
    2)课程demo很少,也偏简单。从讲课的video看,好多demo都是临时
    起意,并不是深思熟虑。
    3)课程的project很难,但很实用。如果做完了project,基本就可以独立
    写很多实用的iso的app了,比如照片程序,flipboard等。
    但project对于初学者来说实在太难了,特别是如果没有TA帮忙。。。
    4)课程内容其实非常有价值,很多闪光点,很多是apple第一线编程人员的经验
    总结。但是,对于初学者来说,有时候根本搞不懂在说什么,或者搞懂了也
    理解不深刻。但是对于有一定经验的人来说,是一个非常好的总结,整理和升华
    的机会。

    对于初学者,推荐另一个教程by david fisher from Rose -Hulman Univ.:

    https://docs.google.com/View?id=df6c2tjm_583d8x837ch&pli=1

    这个教程比较实用,比较简单,基本全是编程写code,新手可以照猫画虎,
    上手比较快。缺点是完全没有理论,很多concepts都是从实用的角度简单介绍
    而已。新手先学完了这个教程,再去学stanford的教程,可能比较好。