《Switf語言實戰入門》讀書筆記(1)

第1章 歡迎來到Swift語言的世界
1.1 起源
1976年喬布斯和好友一起創立蘋果公司,讓人難以置信的是,這個一開始從車庫中打磨出產品的公司在經過創業和原始積累階段之後,綻放出了讓世界驚訝的活力。
1979年,蘋果公司開始開發Apple lisa和Apple Macintosh,並且在第二年發佈Apple III。追求極致細節的產品設計基因已經開始紮根,同期產品主要面向中高端用戶羣體,其定價爲4000-7800美元。
1983年,售價爲9998美元的Lisa數據庫發佈,一如既往的高端市場定位和優秀的產品設計使蘋果公司成爲當時發展最快的公司。電影阿甘正傳中男主角阿甘有一句臺詞:“他替我買了一家賣蘋果的公司股票,有人說,我這一輩子不用再爲錢發愁”,其實這裏說的就是蘋果公司。
20世紀80年代,喬布斯獲得了Stepstone公司的Objective-C語言的授權及可以自己進行發佈的編譯器和框架,這進一步突顯了蘋果公司對軟件的重視。從此,Objective-C一點一點融入了蘋果公司基因,不斷回饋能量及血液,並且藉助Apple APP生態鏈茁壯成長,流行於世。
1985年,喬布斯因爲公司內部一些特殊的原因離開這家親手打造的公司,蘋果公司在之後連續很長一段時間內處於低迷期,但是依然全力打造極致產品。
1997年,MacOS7.6發佈,同年喬布斯回到蘋果公司,開始研發MacOS 8,並在同年發佈。在隨後的時間裏,這種劃時代的操作系統設計漸漸成爲主流。同時,蘋果公司也回到了輝煌時期。
2007年,蘋果公司發佈了Objective-c 2.0,爲其增加一些全新的特性,其中最明顯的莫過於語法方面的擴展,比如在新版本中消息傳遞可以通過”.”訪問對象方法屬性。
Objective-c成就了海量的Apple App開發者,讓他們的產品擁有了無限的可能,卻也因爲自身的開發門檻讓大部分應用開發者望而卻步,而此時Android已經異軍突起,撼大摧堅。
2010年7月,LLVM編譯器的原作者Chris Lattner接到蘋果公司的任命,開始着手打造Swift編程語言。
2011年,Mac OS X正式上線,並且Osx86計劃的努力得到了回報,大批開發者加入了蘋果應用的生態圈,蘋果公司反擊的號角已經吹響。同年,開發者工具包OpenStep改名爲Cocoa,直至今日。
2014年6月3日凌晨,在2014年WWDC上發佈了基於Cocoa和CocoaTouch框架的Swift語言,一夜之間,各大IT論壇和社區都開始討論並探索這門橫空出世的新語言。
1.2 什麼是Swift語言
Swift語言是一種用來編寫OS X和iOS應用程序的編譯式程序語言,既擁有解釋性語言的語法簡潔、跨平臺等特性,也擁有編譯語言的執行效率高、強大及通用的特性。它易於上手,你可以在極短時間內學會它,並快速將它運用於簡單項目。
1.3 特性
1.3.1 高級
計算機語言發展史上一大分水嶺就是高級程序語言的誕生。由於彙編語言嚴重依賴於硬件,換電腦就要換語言這種事估計沒幾個人能接受。所以現在人們都是使用更加易用、更符合人類思維模式的高級語言。這些語言的特點就是讓機器來理解人類,讓機器盡力來“聽懂人話”。
毫無疑問,Swift正是一門高級語言,擁有高級語言特有的特性。高效,易學易編寫。它不僅繼承了C、Objective-c等編譯語言的優點,同時也具有Python等解釋性語言的簡潔和易用性。
在此之前,不管你將編程當作一項藝術還是一件賺錢的工作,而學習Swift之後,你將會發現編程原來還可以更快樂。(默然說話:明顯廣告詞,默然表示心虛滴嘿嘿嘿
1.3.2 易上手
Swift語言的發佈,極大地降低了Apple開發的門檻,這對於廣大的開發者或開發者組織來說,都是一個巨大的契機。Swift也是爲此而生。
Swift基本沒多少機會讓你寫出晦澀難懂的代碼。它擁有強類型、安全性高的特點,同時也具備相當高的靈活度、可讀性。
通過幾代程序員們辛勤的努力,而今,程序員已經成爲這個時代最大的“腦藝人”羣體,而需要理解並完成編程的要求越來越平民話,基本只要你會講人話,你能就可以從事開發工作。通過使用各種工具,你甚至可以點點鼠標就能生成一款App。
也許,在幾周以後,就能在AppStore中看到你自己設計的App。
1.3.3 兼容性
Switf語言無縫連接Cocoa和Cocoa Touch。Apple還會不斷更新和升級,最終會使得幾乎所有的文檔都有Objective-c和Swift兩種語言版本。
1.3.4 運行效率
Swift語言使用LLVM編譯爲機器碼,克服了Objective-c的兼容性問題,其內部實現去除了大量的語法糖(默然說話:語法糖。。。。。意思就是爲了讓人容易明白而加上的很多不必要的框框套套)。大大提高效率。據說比Objective-c還快1.4倍。
1.3.5 運行時(Runtime)
Swift和Objective-c的運行時完全相同,這樣Swift也可以爲老系統寫應用了。
1.3.6 可混編
Swift語言將聲明和實現都放在一個單元文件中,不用單獨編寫頭文件和實現文件。
雖然Swift與Objective-c的文件組織方式不一樣,但Swift仍然可以和Objective-c代碼混編於同一個項目內。這對剛初學者用處不大,但對於老手來說,可是一大福音,因爲這樣就可以直接使用以前已寫好的各種Objective-c代碼,而不用費力重構爲Swift版了。
不過就算是初學者,通過混編,也可以大大減輕編碼量——站在巨人的肩膀上呀!
1.3.7 開發工具
蘋果提供給開發者的免費集成開發環境(IDE)——Xcode,而它的6版就包括了我們所需要的SDK。當然,你也可以使用微軟公司的Visual Studio 2016,它也提供了對蘋果軟件開發的支持。
1.4 搭建Swift開發環境
工欲善其事,必先利其器。如果要使用Swift來開發Mac OS或iOS的應用和遊戲,首先就需要Mac OS操作系統(最低版本10.9.3)的設備和最新的IDE(Xcode 6.0 Release),以及對應運行平臺需要的SDK,以上都是在進行開發之前必須準備好的環境。
1.4.1 Mac OS簡介
對於長期使用Windows系統的人來說,可能一開始並不習慣這款十分重視用戶體驗的純圖形操作系統,(

默然說話:嗯嗯嗯,我剛開始用Mac的時候就是這樣的感覺了,和Windows很象,但的確有些是讓人不習慣的,比如最大化按鈕在右邊啦,“複製/粘貼”改成了“拷貝/粘貼”啦,找不到剪切啦等等。其實準確的說,Windows在圖形化這一塊完全照抄了蘋果,只是爲了避開侵權問題,做了如上的調整而已,Windows山寨蘋果的程度還是很高的,所以,也就是剛開始的時候不習慣,用上一段時間,也就沒啥了。基本上我的經驗就是,遇到問題自己多摸索,還是不懂就問百度。

)。這款基於Unix開發的系統擁有很高的安全性、穩定性。(

默然說話:我用了快3年了,還沒重裝過系統,就是一直在升級升級升級,而且運氣的是,現在Mac
OS已經是全免費了。說到免費,在蘋果下面我是遇到了2次,剛付費買了一個軟件,然後它就免費了的情況,唉,說起來都是淚呀。

)相比於Windows上多如牛毛的應用和遊戲,Mac OS的應用市場雖不缺精品,但數量上較少,功能方面也不算很強大(默然說話:這是真的,蘋果的QQ和Windows下的QQ比較就沒法,唉。),不過這不正好就是你我可以大展拳腳的舞臺嗎?
1.4.2 Mac OS下載安裝
目前Mac OS最新版本爲10.11,可以從App Store的更新處進行更新。(默然說話:我一直使用App Store進行更新,一有新的操作系統版本更新,App Store就會提醒你,及時進行更新就好)更新過程是一個嚮導的形式,下一步下一步,按實際情況進行選擇就好。
1.4.3 下載並安裝Xcode
建議安裝最近版的Xcode,目前最新版的應該是7.1.1。
使用App Store進行下載並安裝是最有效率的一種方式。
這裏寫圖片描述
圖1.1 使用搜索找到xcode
這裏寫圖片描述
圖1.2 Xcode的最新版(7.1.1)
1.4.4 iOS開發者計劃
要成爲官方認可的開發者,首先需要在iOS開發者計劃中註冊,當然,如果你只是在模擬器上測試你寫的應用,則不需要註冊該計劃。註冊成功後,你可以無限制地訪問iOS開發者中心以及iOS Provisioning Portal。需要注意的是,這裏所說的無限制使用的資源是指一些只有加入了開發者計劃後才能使用的開發者資源,比如Mac OS的開發者預覽版,比如未正式發佈的iOS Library等。Apple的開發者註冊和應用發佈一樣,通常需要1—3周時間審覈,強烈建議大家加入。
1.5 熟悉Xcode及模擬器環境
Xcode包括源代碼編輯器、圖形用戶界面(UI)編輯器、程序編輯器、調試器以及許多其他實用的功能模塊。它使用一個單一的窗口作爲工作區,這個工作區被稱爲Workspace窗口,它承載了大部分我們編寫程序所需要的功能和數據。
新版本的Xcode不僅爲我們準備了Swift語言、Home Kit和Health Kit,還帶來了許多已有特性的升級和擴展。當Xcode安裝完成後, 我們可以在應用程序文件夾中右鍵點擊Xcode圖標,選擇顯示包內容,進入Contents\Applications\和 Contents\Developer,從而可以看到裏面已經包含了新版本的iOS SDK以及全新的源代碼編輯工具,編譯器,調試器,界面設計工具以及各種設備模擬器。
1.5.1 升級和改變
簡潔易用的Objective C語言繼承者——Swift語言。
Playground,實時預覽功能,也就是邊寫代碼邊看效果。
Scene Kit 3D遊戲引擎,讓開發遊戲變得更加簡單。如果僅僅開發在Apple平臺上運行的遊戲,這是一個優先選擇,和其他的第三方引擎不同,它的優化和效率做得更加徹底,畢竟是“一家人”。
Home Kit智能家居,這是一個用來交互控制用戶家中連接到iOS設備的全新框架。如果後期的硬件支持足夠多的話,這個框架將會大放光彩。
Touch ID指紋識別,支持應用開發,不過到現在爲止所開放的接口還太少。前期可能主要用於購物付款之類的功能。
Health Kit可穿戴設備,健康專家,是另一個技術趨勢。
Storyboards更加方便的UI設計,其中最大的改變就是wAny/hAny。開發者可以忽視具體設備的屏幕尺寸和分辨率,不用再分別設計view上的控件位置和大小,而是分別設計好普通(regular)和緊密(compact)兩種適配類型即可,程序會自動適配。
全面支持Unicode字符集,這意味着什麼?最直接的體現就是中文編程成了現實,你可以試試將程序中的變量名、常量名、對象名、實例名都用中文來代替。當然,這只是其中一種運用方式,你可以發揮自己的聰明才智,爲其找到更多的應用場景。
1.5.2 第一個Swift語言程序
1. 啓動Xcode
2. 在彈出的對話框中有三個選項(如圖1.3)。
這裏寫圖片描述
圖1.3 Xcode的歡迎界面
Get started with a playground:創建一個playground單元,它將讓你快速體驗到playground的特性。
Create a new Xcode project:創建一個Xcode工程,通常我們新建一個項目都會選擇此項。
Check out an existing project:打開一個已經存在的工程,這個功能在你將項目代碼轉移到其他工作站上的時候非常有用。
我們選擇Create a new Xcode projec。
3. 在Choose a template對話框中,我們需要選擇將要編寫的應用程序的類型。單擊左側OS X分類下的Application,並在右側單擊Command Line Tool,然後單擊Next按鈕。(如圖1.4)
這裏寫圖片描述
圖1.4 選擇模版
4. 在接下來的對話框中填入你的項目信息(如圖1.5)
這裏寫圖片描述
圖1.5 設定新項目的屬性
在Product Name中填入helloworld,Organization Name填入你的姓名,Organization Identifier填入你的標識,Language自然是選擇Swift。填完之後點Next。
5. 接下就是指定項目文件位置,這裏選擇文稿,新建文件夾swift(單擊左邊的New Folder按鈕)。創建完畢之後單擊Create完成嚮導。(如圖1.6)
這裏寫圖片描述
圖1.6 選擇新項目的創建位置
6. 此時工程窗口將打開,默認進入工程的參數設置界面
這裏寫圖片描述
圖1.7 工程打開時的默認界面
點擊左側的main.swift,可以看到Xcode已經自動爲我們生成了hello world。
同時按下command和r,程序將開始編譯,如果程序通過則會自動運行。在右下角的Output窗口就可以看到程序的輸出:

Hello, World! Program ended with exit code: 0

這裏寫圖片描述
圖1.8 右下角有輸出結果
Swift與C和OC的不同之處,它允許我們不用在行尾加“;”,而且你也不需要單獨編寫一個main函數作爲入口,在Swift語言中函數是一等成員,編譯器會自動將遇到的第一個函數作爲入口。而實際上main函數在進入你編寫的Swift之前已經默認執行,你的注意力可以放到實際業務處理上了。烏啦!
1.5.3 源代碼文件基本組成
Swift的源代碼文件後綴爲swift。圖1.7中間就是一個源代碼文件的示例。它包括了以下幾個部分
1. 註釋,swift可以使用“//”作單行註釋,也可以使用“/”和“/”作多行註釋,還兼容“/*”和“/”的Javadoc註釋還有C#的“///”。適應各種人士,還真是很全面。
2. import對於Java的開發人員來說應該是再熟悉不過了,它就是用於導入別的應用程序爲我們所用。讓我們可以使用其中的類和方法,這是代碼重用的最基礎形式。
3. 最後是源代碼部分,這裏就是我們發揮本領的地方,我們要做啥?都寫在這裏,計算機就會嚴格的執行它們,有錯報錯,沒錯給出我們想要的結果。
1.5.4 Xcode集成開發環境
Xcode是Apple爲開發者提供的一款免費的集成開發環境(IDE),主要用於開發Apple的系列軟件,覆蓋蘋果所有的可編程設備。可使用多種語言進行開發,其中包括Swift。
它自帶模擬器,這樣可以省卻開發者的很多時間,而且界面做得很優秀,下面介紹一下(默然說話:爲英語不太好的童鞋服務,但還是希望):
1. 整個界面圖可以參考圖1.6,我們進入Xcode看到的就是這個界面,它可以分成左、中、右三個部分。
2. 左側是導航欄(Navigator):用於管理項目所包含的各種資源,它是可以切換多個模式的,剛開始可以用鼠標先點點,大概瞭解一下,後面隨着項目的開發,慢慢了解。
這裏寫圖片描述
圖1.9 導航欄
3. 中間是代碼編輯區:我們90%的時間都花在這個上面。代碼編輯、UI設計就是在這裏進行的。
這裏寫圖片描述
圖1.10 代碼編輯區
4. 右側是屬性區(Utilities):用於設置所選對象的屬性和行爲(Action),還可以選擇我們需要用到的模版,還有幫助信息。
這裏寫圖片描述
圖1.11 屬性和幫助區
5. 中間的下部有兩個視圖,一個是debug的視圖,另一個是控制檯的視圖,用於控制檯程序輸出信息,剛剛的Hello World就是在這裏輸出的。
這裏寫圖片描述
圖1.12 debug視圖和控制檯輸出視圖
1.5.5 iOS模擬器
最好真機測試,但模擬器畢竟是方便的一種方法。
Xcode提供了多種模擬器:iOS模擬器、Home Kit模擬器、Helth Kit模擬器。我們當然是重點講iOS模擬器。
打開Finder,在應用程序中找到Xcode.app這個文件,右擊它,然後選擇顯示包內容。
這裏寫圖片描述
圖1.13 右擊Xcode.app
進入Contents/Developer/Applications,可以看到如圖1.14的模擬器,有兩個,一個是iPhone的模擬器,一個是Apple Watch的模擬器。
這裏寫圖片描述
圖1.14 Xcode.app自帶模擬器
選擇Simulator.app(iPhone模擬器)之後,根據你的計算機硬件的不同,可能需要等待一段時間(默然說話:我等了快2分鐘,額滴神呀。。。。),之後就會進入iOS系統。(默然說話:我的是iPhone9.1,不過有點鬱悶的是,全英文的。。。。。
點擊菜單Hardware並選擇Devices,彈出的列表中有當前模擬器支持的所有iOS設備。(

默然說話:只更改了屏幕的尺寸,並沒有更換iOS的版本。比較懷疑iPhone
4S能不能跑iOS9.1。iOS8就已經顯得比較慢了,跑9,還是比較懷疑的。


按Command+shift+H就是按Home鍵,按Command+L就是鎖屏。鼠標拖動就是用手指劃屏。
1.5.6 體驗Playground
Playground就是一種在編寫代碼時可即時預覽代碼運行效果的功能。可以節省時間。
打開Xocde,選擇Get started with a playgro
這裏寫圖片描述
圖1.15 Xcode的啓動界面,選擇Get started with a playground
之後進入創建playground項目的選項框,需要取名和決定使用的平臺。點擊Next之後,選擇保存位置。然後點擊Create創建完畢。
這裏寫圖片描述
圖1.15 選擇平臺和項目名稱
這時就創建好了一個playground單元。在中間我們會發現,代碼編輯區域又被分解成了兩個部分,左邊是代碼,右邊是預覽。而且預覽區域是及時的。即你剛寫完的代碼,在右邊區域就能預覽效果。
這裏寫圖片描述
圖1.16 playground單元的編輯區和預覽區

1.6 Apple產品歷史
使用Apple的平臺開發應用是需要根據應用所運行的平臺和產品做特殊設置和優化的,比如iOS設備上的應用界面,官方是會對即將需要發佈的應用嚴格審覈的。
1977年,Apple II發佈。其後續產品在隨後10多年裏持續爲其盈利。
1984年,Apple發佈第一款操作系統System1.0,隨後產品中一直基於此升級優化。
1990年,Macintosh Classic發佈。擴大的Apple的盈利能力。
1998年,iMac發佈,它是一體機的鼻祖。
2001年,iPod發佈,與iTunes音樂商店配合,形成完整的軟硬件鏈條。
2007年,iPhone發佈,智能手機第二大生產產商。Objective-C2.0,讓蘋果開發者浪潮再次掀起。
2010年,iPad發佈,填補了智能手機和筆記本電腦之間的空缺。又一次改變了世界。
2011年,藉助OSX86計劃,進一步提升了蘋果的兼容性,降低了開發的門檻,大量開發者和用戶跟進。
2014年,Swift的發佈,進一步大大降低開發門檻。在未來,Apple的應用生態圈將會迅速壯大,而能帶給開發者的,將會是更大的機會和挑戰。
2014年9月9日,Watch發佈,穿戴設備的出現創造了一個新的藍海,它會不會又一次改變我們的生活習慣和方式?
1.7 小結
本章重點介紹了歷史,也介紹了Xcode的基本使用和操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章