編輯推薦
基於Swift語言,通過大量案例,詳細講解和演示瞭iOS中的各種功能和組件的用法,iOS開發中的各種技巧,以及完整iOS項目的開發方法,實戰性強
《Swift iOS應用開發實戰》為廣大想從Objective-C轉嚮Swfit的iOS程序員們提供瞭捷徑
內容簡介
如果你是一位有經驗的Objective-C程序員,本書將會為你快速掌握Swift開發提供捷徑;如果你已經掌握瞭Swift語言,本書能讓你輕鬆獲得工程級的項目開發經驗!本書基於Swift語言,通過大量案例,詳細講解和演示瞭iOS中的各種功能和組件的用法,iOS開發中的各種技巧,以及完整的iOS應用開發方法,是專門為有經驗的Objective-C程序員和隻是掌握瞭Swift語言的新人量身打造的!
作者是資深的iOS程序員,深諳Objective-C和Swift兩種技術,同時也經曆瞭從Objective-C到Swift的轉變,無論是技術上,還是經驗上,作者的資曆都能保證本書很好地完成它的使命。本書摒棄瞭枯燥的以功能介紹為導嚮的理論講解,取而代之的是以大量有代錶性的實戰案例為切入點,讓讀者在實戰中掌握Swift iOS應用開發。
作者簡介
劉銘,資深iOS開發工程師,從事軟件開發工作近10年,精通Objective-C和Swift技術,以及蘋果開發相關的各項技術,有豐富的實戰經驗。早年從事PHP和Flash/Flex應用開發,有超過7年的Web應用開發經驗。活躍於CocoaChina和CSDN等專業社區,發錶瞭大量技術文章,有一定的影響力。
寫作經驗也非常豐富,繼《iOS 6應用開發實戰》之後,本書是他的“iOS開發三部麯”的第三部。
目錄
前 言
第1章Swift簡介
1.1初識Swift
1.2 瞭解Playground
1.2.1 Playground的編輯器模式
1.2.2 時間軸簡介
1.2.3 Quick Look所支持的類型
1.2.4 為什麼要用Playground
1.2.5 Playground的一些限製
1.3 瞭解Xcode
1.3.1 使用Xcode創建iOS項目
1.3.2 Xcode的工具欄
1.3.3 導航區域
1.3.4 編輯區域
1.3.5 實用工具區域
1.4 使用代碼編輯器
1.5 iOS模擬器
1.5.1 iOS模擬器的特性
1.5.2 模擬器中iOS係統的基本設置
1.5.3 在模擬器中安裝和卸載應用程序
1.5.4 iOS模擬器的限製
第2章搭建計算器的界麵
2.1為移動平颱開發應用
2.2 瞭解故事闆
2.2.1 創建用戶界麵工具Interface Builder
2.2.2 故事闆
2.3 創建用戶界麵
2.3.1 設置界麵的預覽窗口
2.3.2 嚮視圖添加界麵元素
2.3.3 Interface Builder的布局工具
2.4 理解iOS 8的視圖和窗口
2.4.1 視圖概述
2.4.2 UIWindow類
2.4.3 視圖的層次
2.4.4視圖的類型
2.5與代碼進行關聯
2.5.1要完成的效果
2.5.2理解Outlet和Actions
2.5.3使用快速檢查器查看關聯
第3章設計模式和視圖控製器
3.1MVC設計模式簡介
3.2Calculator項目中的控製器
3.2.1實現計算器運算符的相關代碼
3.2.2實現計算結果的相關代碼
3.3關於Application Delegate
3.4瞭解視圖控製器
3.4.1視圖控製器簡介
3.4.2不同類型的視圖控製器
第4章使用故事闆組織和管理視圖
4.1創建購物應用程序
4.1.1創建應用程序
4.1.2創建Shopping的用戶界麵
4.1.3創建數據模型
4.1.4添加導航控製器
4.1.5創建其他的視圖控製器
4.1.6在故事闆中連接視圖
4.2調整數據模型
4.2.1重建商品信息的數據模型
4.2.2 改變商品的購買狀態
4.2.3創建欲購買的商品
第5章自定義錶格視圖
5.1剖析錶格視圖
5.2使用UITableViewController創建錶格
5.2.1創建超市的特價商品列錶
5.2.2創建特價商品的數據模型
5.2.3通過data source傳遞數據
5.2.4在IB中自定義單元格
5.3錶格視圖中的選擇與刪除
5.3.1刪除錶格中的單元格
5.3.2單元格的選擇和取消選擇
5.4 委托
5.4.1協議
5.4.2協議方法
5.5設置應用程序啓動畫麵
5.5.1直接設置啓動畫麵
5.5.2通過LaunchScreen.xib設置啓動畫麵
第6章自動布局
6.1自動布局的概念
6.1.1約束
6.1.2約束的關係
6.1.3創建約束
6.2在IB中創建約束
6.2.1為視圖元素創建約束
6.2.2通過預覽查看實時效果
6.2.3通過工具欄添加約束
6.2.4改變約束的值
6.2.5拖曳齣約束
6.3竪屏下的自動布局
6.3.1對於約束的考慮
6.3.2添加瀏覽特價商品詳情的功能
6.3.3為竪屏界麵添加相關約束
6.3.4顯示相關商品信息
6.4橫屏下的完美布局
6.4.1Size Class
6.4.2使用Size Class
第7章使用集閤視圖
7.1集閤視圖簡介
7.2使用集閤視圖顯示數據
7.2.1在故事闆中添加新的場景
7.2.2為集閤視圖提供數據
7.2.3創建自定義的集閤視圖單元格
7.3自定義集閤視圖的布局
7.4標簽欄控製器
7.4.1標簽欄及其中的標簽
7.4.2在故事闆中添加標簽欄控製器
7.4.3設置標簽欄配置條目
第8章獲取遠程數據
8.1使用故事闆創建用戶界麵
8.2使用NSURLSession獲取數據
8.2.1生成URL連接
8.2.2使用異步方式解決等待問題
8.3構建自定義API控製器
8.4添加影片搜索功能
8.5設計IMDb的用戶界麵
8.5.1 為場景添加虛化背景效果
8.5.2 通過類的擴展增加String的功能
8.5.3 自定義label字體和圖像視圖
第9章在程序中獲取照片
9.1 框架簡介
9.2 搭建項目的用戶界麵
9.2.1 搭建用戶基本界麵
9.2.2 導航欄控製器的Navigation Item
9.2.3 為Photos Gallery項目建立關聯
9.3 完成Photos Gallery項目的邏輯代碼
9.3.1 使用PHAssetCollection管理照片集
9.3.2 獲取照片集中的照片
9.3.3 完善PhotoViewController控製器
9.3.4 完成PhotoViewController的交互
9.3.5 使用UIImagePickerController多方式獲取照片
第10章使用Facebook和Twitter整閤社交
10.1 使用Accounts Framework
10.1.1 訪問Twitter賬號和賬號的屬性
10.1.2 訪問Facebook賬號和賬號的屬性
10.2 使用Social Framework發布內容
10.2.1 創建Stream控製器
10.2.2 使用Tweet Composer視圖發布消息到Twitter
10.2.3 發送消息到Facebook
10.3 使用Social.framework進行API調用
10.3.1 使用SLRequest檢索Twitter流
10.3.2 獲取Facebook信息
第11章調試你的應用程序
11.1 為什麼調試很重要
11.2 編譯時候的問題
11.2.1 錯誤
11.2.2 警告
11.3 運行時候的問題
11.3.1 斷點
11.3.2 使用調試器
11.4 幫助文檔
11.5 與幫助文檔有關的技巧
11.6 通過幫助文檔瞭解應用程序圖標
第12章文件和文件目錄管理
12.1 iOS文件係統簡介
12.2 在磁盤中搜索常用目錄
12.3 讀寫文件的操作
12.3.1 將文件寫入到目錄中
12.3.2 讀取文件內容
12.4 在磁盤上創建目錄
12.5 遍曆目錄和文件
12.5.1 簡單地遍曆目錄和文件
12.5.2 遍曆並獲取需要的信息
12.6 刪除文件和目錄
前言/序言
為什麼要寫這本書
蘋果公司在2014年6月的WWDC(Worldwide Developers Conference,蘋果全球開發者大會)上嚮公眾展現瞭全新的iOS 8移動操作係統和Yosemite桌麵操作係統。作為開發者,大會開幕之前的任何爆料,我都是不會錯過的。在大會開幕的前一天,我得知本屆大會的宣傳標語為:編寫代碼改變世界(Write the Code. Change the World)。曆屆WWDC的宣傳標語都是以全新、卓越、領先、創新、引領等作為關鍵詞,而這次卻使用瞭非常接地氣的“編寫代碼”一詞,心裏感覺怪怪的。在WWDC結束的那一刻,我深深地體會到蘋果為什麼使用這個詞,因為此時此刻,蘋果做齣瞭一個令所有程序員都為之驚訝的改變—推齣瞭全新的程序設計語言Swift。Swift無疑是本屆WWDC中貼近開發者的最大亮點。
為什麼蘋果要拋棄已經使用瞭幾十年的Objective-C,而去開發一門全新的程序設計語言呢?按照蘋果官方的說法,Objective-C這門語言太老瞭,它無法提供現代語言所具有的那些功能,而Swift語言具有現代、安全、快速等特點。其實在我看來,這是蘋果極其強烈的控製欲在作怪。
在寫作本書之前,我已經寫過兩本關於iOS開發的書,毫無疑問它們都是在講如何使用Objective-C開發App的。可以說Swift是我寫作這本書的最大挑戰,並且它給我的身心造成瞭極大的摧殘。因為在WWDC開幕之前,我基本上已經完成瞭第三本關於Objective-C圖書的初稿。可誰又知道,Swift的齣現如同晴天霹靂、飛來橫禍,讓我有種被秒殺的感覺。就這樣放棄嗎?不行,此時此刻,我想到瞭八九年前每晚玩《魔獸世界》的情景—不斷地“跑屍”。為瞭完成自己的iOS開發三部麯,必須發揚當年“跑屍”跑不死的精神。總的算下來我的第三本書前後共寫瞭兩年的時間。
作為蘋果公司獨立發布的支持型開發語言,Swift語言的語法內容混閤瞭Objective-C、JavaScript、Python的特點,語法簡單、使用方便、易學,大大降低瞭開發者的入門門檻。同時Swift語言還可以與Objective-C混閤使用,對於用慣瞭高難度Objective-C語言的程序員來說,學會Swift更不在話下!
Swift允許開發者通過更簡潔的代碼來實現更多的內容。在WWDC 2014發布會上,蘋果演示瞭如何隻通過一行簡單的代碼完成一個完整圖片列錶加載的過程。另外,Swift還可以讓開發人員一邊編寫程序,一邊預覽自己的應用程序,從而快速測試應用在某些特殊情況下的反應。
相信對使用Objective-C語言開發過App的程序員來說,Objective-C有著詭異的語法,並且是一門與其他C語言風格迥異的編程語言,學習難度可想而知。但是,在過去的20年裏,蘋果隻支持Objective-C,這迫使廣大程序員不得不學習和使用艱澀難懂的Objective-C語言。
隨著Swift語言的到來,這種簡單、好用又安全的編程語言將吸引更多的開發者加入,讓蘋果軟件生態圈更加繁榮。如此,“果粉”將可以在App Store和Mac Store中下載到更多稱心如意的App。從某種意義上說,Swift語言是蘋果的一項新的商業戰略。
對Swift語言來說,相信大部分的讀者都是從2014年6月開始接觸的,而之後的幾個月也應該在刻苦地學習Swift這門語言。就像實際生活中我們學習英語一樣,精通英語的語法和使用英語進行相互溝通並不完全是一迴事。學習程序語言也是如此,雖然程序員可以在短時間內掌握Swift的語法,但是使用它來開發App是另一個層麵上的事情瞭。本書每一章都通過各種各樣相對獨立的項目,讓讀者瞭解iOS開發中最常用的幾個方麵的程序設計技能,包括Interface Builder、自動布局和Size Class、錶格視圖、導航控製器和標簽控製器、遠程訪問及Facebook集成等。本書能讓那些已經掌握Swift語言的程序員盡快上手開發實現各種功能的App,體驗開發的樂趣。
讀者對象
本書是為想通過學習基本的工具和技術,開發齣具有實用功能的、可以在iOS平颱上麵完美運行的App的人所準備的。
本書讀者主要為:
iOS設備的用戶和愛好者。
iOS應用程序業餘開發者,使用Objective-C開發過簡單App。
iOS應用程序專業開發者,使用Objective-C開發過商業App。
已經掌握蘋果最新的Swift語言,正準備進行項目開發的程序員。
開設相關課程的大專院校學生。
如何閱讀本書
在閱讀本書之前,需要具備以下幾方麵的知識和硬件條件。
麵嚮對象的開發經驗,熟悉類、實例、方法、封裝、繼承、重寫等概念。
有Swift或Objective-C、C、C++的開發經驗。
有MVC設計模式開發經驗。
有簡單的圖像處理經驗。
一颱Intel架構的Mac電腦(Macbook Pro、Macbook Air、Mac Pro或Mac Mini)。
如果加入瞭iOS開發者計劃,還可以準備一颱iOS移動設備。
本書通過大量的實例項目來講解如何使用Swift開發簡單的應用程序,雖然每個App所實現的功能都不復雜,但是都能幫讀者瞭解每章重點講授的知識點和技巧,隻有“打通”每個點以後,一個完美的App纔能流暢運行。如果你是一名初學者,請一定從第1章開始學習。
本書內容共12章,下麵概述各章內容。
第1章介紹瞭Swift語言的特性、Playground編輯器和iOS模擬器,重點介紹瞭開發iOS應用程序的集成開發環境Xcode。
第2章和第3章通過一個簡單計算器應用程序嚮大傢介紹Xcode的用戶界麵搭建工具Interface Builder、Outlet與Action關聯、MVC設計模式、應用程序委托和視圖控製器。
第4章通過購物應用程序嚮大傢介紹如何使用故事闆組織和管理視圖。
第5章介紹錶格視圖的相關知識,包括與錶格相關的委托協議,並且繼續完善購物應用程序。
第6章介紹自動布局的相關知識,當程序員使用Interface Builder搭建App的用戶界麵時,往往要考慮不同分辨率和屏幕尺寸的設備,有時候一個場景需要做齣10套左右的界麵。但是通過自動布局可以讓我們隻需搭建好一套用戶界麵,就可以在所有的設備上完美運行。
第7章介紹集閤視圖的相關知識,通過在購物應用程序中使用集閤視圖來顯示各種商品的縮略圖。
第8章通過製作IMDb電影信息查詢程序,嚮大傢介紹如何使用Swift語言進行遠程服務器調用,並將獲取的XML數據進行整理並顯示到屏幕上。
第9章使用Photos.framework框架實現在應用程序中獲取照片庫或攝像頭所拍攝的照片。
第10章介紹如何在應用程序中整閤Facebook和Twitter社交分享功能。
第11章介紹如何進行應用程序的調試。
第12章介紹如何在應用程序中進行文件和文件目錄的管理。
勘誤和支持
由於作者的水平有限,加之編寫時間倉促,書中難免會齣現一些錯誤或者不準確的地方,懇請讀者批評指正。為此,特意留下聯係的電子郵件liuming_cn@qq.com。你可以就書中的錯誤和我進行溝通,當然,遇到任何技術問題也可以與我聯係,我將盡力為你提供最滿意的解答,期待能夠得到你的真摯反饋。另外,書中的資源文件可以從華章網站下載。
緻謝
首先要感謝的是一直在背後默默支持我的老婆—劉穎。因為沒有她就沒有現在的我,非常感謝她在我寫書的時候沒有像平時那樣嘮嘮叨叨,為我創造瞭一個輕鬆的環境。
感謝我身邊的每一位充滿創意和活力的朋友—張燕、盧紅玲、秦瓊、楊曉龍、陳雪峰、硃舸、趙順利、吳永新,以及名單之外的更多朋友,感謝你們長期以來對我的支持和幫助。
感謝機械工業齣版社華章公司的編輯楊福川老師,在這三年多的時間中你始終支持我的寫作,你的鼓勵和幫助引導我能順利完成全部書稿。
最後感謝我的爸爸、媽媽、嶽父、嶽母、小舅子和小舅子的女朋友,感謝你們時時刻刻為我灌輸信心和力量!
謹以此書獻給我最親愛的兒子—樂樂,以及眾多熱愛蘋果公司的朋友們!
劉 銘
Swift iOS應用開發實戰 下載 mobi epub pdf txt 電子書