本書是專門為高校師生學習Swift語言和iOS應用開發而編著的教材。書中首先詳細介紹了Swift語言,然后展開介紹iOS開發技術,最后安排了綜合案例。全書分別介紹了如下內容: 操作系統的基本概念; 蘋果硬件設備和iOS操作系統; Swift語言的基本語法與程序設計; iOS應用開發基礎; iOS應用界面技術; 表視圖; 界面布局與Auto Layout技術; 屏幕適配與Size Class技術; 應用導航模式; 多媒體開發; 圖形圖像開發; 數據存儲; 網絡數據交換格式; 網絡通信。最后一章介紹了綜合案例——奧運會應用設計與開發,該章給出了完整的iOS應用分析和設計,以及編程實現,架構采用分層設計實現,開發中采用敏捷開發方法。
本書適合作為高等院校與職業院校“移動操作系統”與“iOS應用開發”等課程的教材,也適合廣大iOS應用開發人員自學參考。
本書完整套學課件、兩套數千分鐘的教學視頻、全部章節的源代碼
本書涵蓋主題如下:
移動操作系統概述
iOS開發新語言——Swift
iOS開發基礎
iOS應用界面開發技術
iOS屏幕適配
iOS應用導航模式
iOS多媒體開發
iOS圖形圖像開發
iOS網絡數據交換格式
iOS網絡通信
iOS分層設計
iOS項目開發過程
iOS項目分析和設計方法
敏捷開發方法在iOS項目中具體實現
作者簡介
關東升:國內知名iOS技術作家,iOS技術顧問,高級培訓講師,移動開發專家。擔任51CTO社區iOS技術顧問,精通iOS、Android、Windows Phone及HTML5等移動開發技術。曾先后主持開發大型網絡游戲《神農訣》的iOS和Android客戶端開發,國家農產品追溯系統的iPad客戶端開發,酒店預訂系統的iOS客戶端開發,金融系統的iOS、Windows Phone 及Android客戶端開發。在App Store上發布數款游戲和應用軟件,擅長移動平臺的應用和游戲類項目開發。長期為中國移動研究院、云南移動、東軟、方正科技、大唐電信、中石油、深圳康拓普、上海財富168、天津港務局等企事業單位授課。著有《iOS實戰:入門與提高卷(Swift版)》《iOS實戰:傳感器卷(Swift版)》《iOS實戰:圖形圖像、動畫和多媒體卷(Swift版)》《iOS開發指南——從零基礎到App Store上架》《交互設計的藝術——iOS 7擬物化到扁平化革命》《Cocos2d-x實戰:C++卷(第2版)》《Cocos2d-x實戰:Lua卷(第2版)》《Cocos2d-x實戰:JS卷——Cocos2d-JS開發(第2版)》《Cocos2d-x實戰:工具卷(第2版)》等專業圖書。
目錄
第0章移動操作系統概論
0.1操作系統的原理與概念
0.1.1隱藏硬件細節
0.1.2資源管理
0.1.3操作系統的歷史
0.2操作系統的分類
0.2.1批處理操作系統
0.2.2分時操作系統
0.2.3實時操作系統
0.2.4個人計算機操作系統
0.2.5網絡操作系統
0.2.6分布式操作系統
0.2.7嵌入式操作系統
0.3移動操作系統
0.3.1移動設備的特征
0.3.2主要的移動操作系統
0.3.3移動操作系統的應用和發展
第1章iOS操作系統及Swift編程語言簡介
1.1蘋果的硬件設備與操作系統
1.2Swift語言概述
1.3iOS概述
1.4開發環境及開發工具
1.4.1Xcode開發工具
1.4.2Xcode安裝
1.4.3Xcode卸載
1.4.4Xcode界面
本章小結
同步練習
第2章Swift語言程序設計(上)
2.1第一個Swift程序
2.1.1創建Playground
2.1.2創建macOS工程
2.2代碼解釋
2.3標識符
2.4關鍵字
2.5常量和變量
2.5.1常量
2.5.2變量
2.6運算符
2.6.1算術運算符
2.6.2算術賦值運算符
2.6.3關系運算符
2.6.4邏輯運算符
2.6.5位運算符
2.7Swift數據類型
2.7.1整型
2.7.2浮點型
2.7.3布爾型
2.7.4元組類型
2.7.5數據類型轉換
2.8可選類型
2.8.1可選類型概念
2.8.2可選類型值拆包
2.8.3可選綁定
2.9字符
2.9.1Unicode編碼
2.9.2轉義符
2.10字符串
2.10.1字符串創建
2.10.2字符串拼接
2.10.3字符串插入、刪除和替換
2.10.4字符串比較
2.11控制語句
2.11.1分支語句
2.11.2循環語句
2.11.3跳轉語句
2.11.4值綁定
2.12集合
2.12.1數組集合
2.12.2字典集合
2.13函數
2.13.1定義函數
2.13.2函數調用
2.13.3函數類型
2.14閉包
2.14.1閉包的概念
2.14.2使用閉包表達式
2.14.3類型推斷簡化
2.14.4隱藏return關鍵字
2.14.5省略參數名
2.14.6使用尾隨閉包
2.14.7捕獲上下文中的變量和常量
本章小結
同步練習
第3章Swift語言程序設計(下)
3.1Swift中的面向對象類型
3.1.1枚舉
3.1.2結構體與類
3.2可選鏈
3.2.1可選鏈概念
3.2.2使用問號和感嘆號
3.3訪問限定
3.3.1訪問范圍
3.3.2訪問級別
3.3.3使用訪問級別最佳實踐
3.4屬性
3.4.1存儲屬性
3.4.2計算屬性
3.4.3靜態屬性
3.5方法
3.5.1實例方法
3.5.2靜態方法
3.6構造函數
3.6.1默認構造函數
3.6.2構造函數與存儲屬性初始化
3.6.3使用參數標簽
3.7析構函數
3.8類繼承
3.8.1繼承概念
3.8.2構造函數繼承
3.8.3重寫
3.8.4使用final關鍵字
3.8.5類型檢查
3.8.6類型轉換
3.8.7使用AnyObject和Any類型
3.9擴展
3.9.1聲明擴展
3.9.2擴展計算屬性
3.9.3擴展方法
3.9.4擴展構造函數
3.10協議
3.10.1協議概念
3.10.2協議定義和遵從
3.10.3協議方法
3.10.4協議屬性
本章小結
同步練習
第4章iOS應用開發概述
4.1HelloiOS工程
4.1.1創建工程
4.1.2Xcode中的iOS工程模板
4.1.3應用剖析
4.2應用生命周期
4.3iOS API簡介
4.3.1API概述
4.3.2如何使用API幫助
本章小結
同步練習
第5章iOS應用界面技術
5.1界面構建技術
5.1.1使用故事板
5.1.2使用Xib文件
5.1.3使用代碼
5.2MVC模式
5.2.1MVC模式概述
5.2.2Cocoa Touch MVC模式
5.3視圖控制器
5.3.1視圖控制器種類
5.3.2視圖控制器的生命周期
5.4視圖與UIView
5.4.1UIView繼承層次結構
5.4.2視圖分類
5.4.3應用界面的構建層次
5.5控件與動作事件
5.5.1按鈕
5.5.2定義動作事件
5.6視圖與輸出口
5.6.1標簽
5.6.2定義輸出口
5.7視圖與委托協議
5.7.1委托設計模式
5.7.2實例: TextField委托協議
5.7.3鍵盤的打開和關閉
5.7.4鍵盤的種類
5.8關閉和打開鍵盤通知
5.8.1通知機制
5.8.2實例: 關閉和打開鍵盤
5.9Web視圖
5.10工具欄
5.11導航欄
本章小結
同步練習
第6章表視圖
6.1表視圖中的概念
6.1.1表視圖組成
6.1.2表視圖的相關類
6.1.3表視圖的分類
6.1.4單元格的組成和樣式
6.1.5數據源協議與委托協議
6.2簡單表視圖
6.2.1創建簡單表視圖
6.2.2自定義單元格
6.3分節表視圖
6.3.1添加索引
6.3.2分組
本章小結
同步練習
第7章界面布局與Auto Layout技術
7.1iOS界面布局UI設計模式
7.2靜態表與表單布局
7.3Auto Layout布局
7.3.1Interface Builder中管理Auto Layout約束
7.3.2案例: Auto Layout布局
本章小結
同步練習
第8章屏幕適配與Size Class技術
8.1iOS屏幕的多樣性
8.1.1iOS屏幕介紹
8.1.2iOS的3種分辨率
8.1.3獲得iOS設備屏幕信息
8.2Size Class與iOS多屏幕適配
8.2.1Size Class技術
8.2.2Size Class的九宮格
8.2.3Size Class的四個象限
8.2.4Xcode 8中使用Size Class
8.2.5案例: 使用Size Class
本章小結
同步練習
第9章應用導航模式
9.1導航概述
9.2導航的“死胡同”——模態視圖
9.3平鋪導航
9.3.1平鋪導航概述
9.3.2使用資源目錄管理圖片
9.3.3屏幕滾動視圖的重要屬性
9.3.4分屏導航實現
9.4標簽導航
9.4.1標簽導航實例
9.4.2標簽導航實現
9.5樹形結構導航
9.5.1樹形結構導航實例
9.5.2樹形結構導航實現
本章小結
同步練習
第10章多媒體開發
10.1音頻開發
10.1.1音頻文件簡介
10.1.2音頻API簡介
10.1.3實例: 音頻播放
10.1.4實例: 音頻錄制
10.2視頻開發
10.2.1視頻文件簡介
10.2.2視頻播放
本章小結
同步練習
第5章
CHAPTER 5
iOS應用界面技術
應用開發一般都是從構建界面開始入手,本章介紹iOS應用界面技術,包括MVC設計模式、常用視圖、控件、動作事件和輸出口等。
5.1界面構建技術
在iOS應用開發過程中,構建一個界面可以采用三種方式: 故事板文件、Xib文件和代碼實現。本書重點介紹故事板技術。
5.1.1使用故事板
在上一章介紹的HelloiOS工程中有一個Main.storyboard文件,被稱為“故事板”(storyboard)文件,它可以描述應用中有哪些界面,界面有哪些控件及它們的事件。此外,故事板還能描述界面之間是如何導航(或跳轉)的。
1. 故事板的導航特點
在包含多個視圖控制器的情況下,采用故事板管理比較方便,而且故事板還可以描述界面之間的導航關系。
下面舉例說明故事板的用法。要做這樣一個應用: 兩個不同的界面,有兩個標簽分別與其對應,單擊標簽實現兩個界面的相互切換。該應用采用標簽欄導航模式,設計原型如圖51所示。
選擇Tabbed Application模板創建工程,在生成的工程中打開Main.storyboard文件。會看到如圖52所示的設計視圖。
可以看到,該應用包含兩個視圖,并且兩個視圖存在切換關系。
2. 故事板中的Scene和Segue
如圖53所示,Scene和Segue是故事板中非常重要的兩個概念。每個視圖控制器都會對應一個Scene(譯為“場景”),可以理解為應用的一個界面或屏幕。這些Scene之間通過Segue連接,Segue不但定義了Scene之間的導航(或跳轉)方式,還體現了Scene之間的關系。Scene的類型分為Push、Modal、Popover和自定義方式。Scene要與具體的控制器結合使用,Push是樹形導航模式; Modal是模態導航模式; Popover是呈現浮動窗口。
圖51設計原型圖