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一起工作過!