CS193筆記 第一講 課程介紹

CS193 可能是最著名的iOS開發(fā)教程了。本系列作為Standford計(jì)算機(jī)系的課程,從2010年一開始就大受歡迎。在許多公開課網(wǎng)站都可以看到翻譯后的版本。這個(gè)課程主要是講解一些基本概念和UI設(shè)計(jì),并不是一個(gè)iOS開發(fā)大全。比如關(guān)于游戲開發(fā)必備的SpriteKit,SceneKit和GameplayKit等內(nèi)容就沒有涉及。但仍不失為iOS入門學(xué)習(xí)的最好材料。學(xué)習(xí)這個(gè)課程至少要有面向?qū)ο缶幊痰幕A(chǔ)。

最新的一期講座基于iOS 10、Xcode 8 和 Swift 3.0。如果看舊版的話,多少在最新的環(huán)境里會(huì)遇到些問題。相關(guān)的視頻可以通過iTunes-U 下載觀看,這版是有英文字幕的。想學(xué)的同學(xué)可以立刻開始,不要等中文字幕了。

本系列筆記是我自己觀看這個(gè)教程的時(shí)候的所做的總結(jié),可以幫助大家更好的掌握課程的內(nèi)容。

本講簡(jiǎn)介:iOS 10, Xcode 8 和 Swift 3 介紹。為了方便學(xué)生的理解,CS193教程里面的所有演示都會(huì)從頭開始。本講的demo是一個(gè)計(jì)算器。

這一講的內(nèi)容和2016年版幾乎沒有什么不同。只是所有的演示都是在最新的環(huán)境里進(jìn)行的。

iOS的分層架構(gòu)

從上至下iOS 可以劃為四層。目前有個(gè)大致印象就可以了。下面是各層的一些重點(diǎn)模塊

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

除了最下面一層外,了解這些模塊可以讓大家對(duì)未來要學(xué)習(xí)什么有個(gè)大致的印象。:)

XCode

XCode是Apple提供的iOS/OSx開發(fā)一站式解決方案。經(jīng)過這些年的發(fā)展變化,幾乎所有開發(fā)所需的功能都已經(jīng)被集成進(jìn)來了。另外因?yàn)閄Code Ghost事件的影響,從8.0開始第三方插件也都被禁止了。但一些流行的插件功能,如“Add Documentation”也被內(nèi)置了。當(dāng)然如果還想用第三方插件也是有辦法的,但不建議大家去折騰了。

視頻中,老師會(huì)帶領(lǐng)大家瀏覽XCode中的布局結(jié)構(gòu)。大家可以花些時(shí)間自己多試試,一定會(huì)有收獲的。XCode可以自定義布局,詳見菜單中的“New Behavior”。為自己常用的布局定一個(gè)一個(gè)快捷鍵,會(huì)非常方便。

在XCode中可以對(duì)文件進(jìn)行分組,把相關(guān)的文件放到同一組里面。比如資源組,控制器組等等。但這種結(jié)構(gòu)并不會(huì)體現(xiàn)到實(shí)際的文件系統(tǒng)中。

XCode 集成了對(duì)Git的支持。建議大家一開始就用Github或Gitlab來管理自己的代碼。

Swift 3.0

講座中并沒有刻意地去介紹Swift 3.0和以前版本的異同。始終都是講的最新版。

Swift 中函數(shù)的參數(shù)可以定義兩個(gè)名字,一個(gè)外部用,一個(gè)內(nèi)部用。如果不想被使用可以用 "_"。但只能用于第一個(gè)參數(shù)。關(guān)于Swift的語法,大家不必硬記,在實(shí)踐中會(huì)逐步掌握。另外任何教程都可能會(huì)過時(shí),要多利用XCode中的playground來學(xué)習(xí)驗(yàn)證。

類/結(jié)構(gòu)中的屬性有存儲(chǔ)屬性和計(jì)算屬性(Computed Property)兩種,后者不占用數(shù)據(jù)空間。

其它:

如果不涉及UI,代碼中可以只導(dǎo)入 Foundation。UIKit 中包含F(xiàn)oundation。

"_" 可以在各種場(chǎng)合下替換變量/常量名,表示該變量/常量可以被忽略。

成員變量如果不是Optional類型,必須要有初值。否則需要提供構(gòu)建函數(shù)(initializer)。

在視頻中經(jīng)常可以看到屏幕左下角顯示當(dāng)前按下的功能鍵。這個(gè)效果可以通過“Enable Sticky Keys"來實(shí)現(xiàn)。(在System Preference中搜索 Sticky)

本講用到的快捷鍵:

?+Click ? ? ? ?//查看定義,非常有用

?+I ? ? ? ? ? ?//整理代碼的縮進(jìn),非常常用

?+P ? ? ? ? // π

?+B ? ? ? ? // Build

?+R ? ? ? ? // Run

??H ? ? ?// 相當(dāng)于按下模擬器的Home鍵

?+1/2/3/4/5 ? ? ? //縮放模擬器屏幕大小

本講的閱讀作業(yè):https://swift.org/documentation/

一點(diǎn)題外話。Paul Hegarty 并不是蘋果公司的員工。但是和Jobs一起工作過!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,161評(píng)論 4 61
  • 今天是8月16日,是007第三次作業(yè)后的第二天,這次雖然按時(shí)完成了作業(yè)(上次作業(yè)雨遲到了),但是評(píng)論遲到了。之所以...
    宇踐未來閱讀 189評(píng)論 0 0
  • 雨水流,淚水流,流到長(zhǎng)江君未留,從春流到秋。 歲悠悠,月悠悠,天地悠悠孤葉舟,海天無盡頭。 雪漫漫,風(fēng)漫漫,寒到心...
    在咫尺如天涯閱讀 473評(píng)論 1 2
  • 首先,之前一點(diǎn)都不知道這個(gè)app是做什么的。大概,是他還沒有點(diǎn),某江有名吧。不過,既然我已經(jīng)知道了。就說明離大家知...
    王天豬閱讀 127評(píng)論 0 2
  • 個(gè)人比較喜歡咪蒙,今天特意買了咪蒙的《我喜歡這個(gè)功利的世界》再看。雖然,里面的文章大多都來自她之前的博客里面,并且...
    我有桃李伴海棠閱讀 249評(píng)論 0 2

友情鏈接更多精彩內(nèi)容