很快的,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),上面的每個元素,像是文字輸入框、或是按鈕等等,其實都是物件的狀態。而當按鈕被觸碰、或是文字框輸入了文字,便會針對物件傳遞訊息,讓物件做相對應的動作去處理。