iOS 開發實戰:從零基礎到上架 App Store, 3/e

張益琿

  • 出版商: 清華大學
  • 出版日期: 2018-09-25
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • 頁數: 339
  • 裝訂: 平裝
  • ISBN: 7302511950
  • ISBN-13: 9787302511953
  • 相關分類: Apple Developer
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

本書結合編者多年iOS開發經驗,使用iOS 11+Xcode 9+Swift 4開發環境,系統地介紹了iOS應用程序從開發到上架的全過程。從開發環境搭建、界面開發、傳感器技術、佈局與動畫技術、網絡和數據技術到打包與上傳發布流程等,包含了iOS軟件開發核心技術的方方面面。值得註意的是,本書針對每章的技術要點配備了來自工作實踐的項目案例,讀者可以邊學邊練,在編寫代碼中學習編程。本書深入淺出,註重實戰,案例豐富,非常適合快速上手iOS開發的新人,也很適合有一定編程基礎但缺少開發iOS應用經驗的開發人員,還可以作為大中專院校及培訓機構的教學用書

目錄大綱

第1章開發準備1 
1.1 iOS 11新特性簡述1 
1.1.1新增拖放交互編程接口2 
1.1.2其他新增功能4 
1.2熟悉iOS開發環境4 
1.2.1安裝Xcode開發工具4 
1.2. 2了解Xcode開發工具主界面6 
1.2.3 Xcode開發工具的使用技巧及常用快捷鍵7 
1.3創建第一個iOS項目9 
1.4使用Git進行項目版本管理12 
1.4.1 Git與Github簡介12 
1.4.2註冊GitHub會員12 
1.4.3使用Xcode創建Git倉庫13 
1.4.4用Xcode建立本地Git倉庫與GitHub代碼託管平台的關聯15 
第2章基礎UI組件18 
2.1 iOS系統UI框架的介紹18 
2.1.1 MVC設計模式19 
2.1.2代理設計模式19 
2.2視圖控制器——UIViewController 20 
2.2.1 UIViewController的生命週期20 
2.2.2 UIViewController的視圖層級結構24 
2.3文本控件——UILabel 24 
2.3.1使用UILabel在屏幕上創建一個標籤控件24
2.3.2自定義標籤控件的相關屬性25 
2.3.3多行顯示的UILabel控件與換行模式26 
2.4按鈕控件——UIButton 27 
2.4.1創建一個按鈕改變屏幕顏色27 
2.4.2更加多彩的UIButton控件29 
2.5文本輸入框控件——UITextField 31 
2.5.1在屏幕上創建一個輸入框31 
2.5.2 UITextField的常用屬性介紹33 
2.5.3 UITextField的代理方法33 
2.5.4實現一個監聽輸入信息的用戶名輸入框34 
2.6開關控件——UISwitch 35 
2.6.1創建一個開關控件35 
2.6.2為UISiwtch控件添加觸發方法36 
2.7分頁控制器——UIPageControl 37 
2.8分段控制器——UISegmentedControl 37 
2.8.1 UISegmentedControl基本屬性的應用38 
2.8.2對UISegmentedControl中的按鈕進行增、刪、改操作38 
2.8.3 UISegmentedControl中按鈕寬度的自適應39 
2.9滑塊控件——UISlider 40 
2.9.1 UISlider的創建與常規設置40 
2.9.2對UISlider添加圖片修飾41
2.10活動指示器控件——UIActivityIndi​​catorView 41 
2.11進度條控件——UIProgressView 42 
2.12步進控制器——UIStepper 43 
2.12.1步進控制器的基本屬性使用43 
2.12.2自定義UIStepper按鈕圖片44 
2.13選擇器控件——UIPickerView 44 
2.13.1創建一個UIPickerView控件44 
2.13.2 UIPickerView選中數據時的回調代理46 
2.14通過CALayer對視圖進行修飾46 
2.14.1創建圓角的控件47 
2.14.2創建帶邊框的控件47 
2.14.3為控件添加陰影效果48 
2.15警告控制器——UIAlertController 48 
2.15.1 UIAlertController的警告框48 
2.15.2 UIAlertController之活動列表50 
2.16基礎UI控件擴展篇51 
2.16.1搜索欄控件——UISearchBar 51 
2.16.2日期時間選擇器——UIDatePicker 52 
2.16.3警告視圖——UIAlertView 54 
2.16.4活動列表——UIActionSheet 54 
2.17實戰:登錄註冊界面的搭建55 
第3章高級UI控件59
3.1導航控制器——UINavigationController 60 
3.1.1導航控制器的工作原理60 
3.1.2使用導航控制器進行多界面搭建61 
3.1.3導航欄UINavigationBar 63 
3.1.4導航按鈕UIBarButtonItem 65 
3.1.5導航控制器的工具欄67 
3.1.6 iOS 8系統之後導航控制器的一些有趣功能67 
3.2標籤控制器——UITabBarController 68 
3.2.1標籤控制器的工作原理68 
3.2.2標籤控制器的基礎用法解析68 
3.2. 3關於UITabBarItem的使用70 
3.3滾動視圖——UIScrollView 71 
3.3.1使用UIScrollView展示視圖內容71 
3.3.2 UIScrollView的代理方法72 
3.4網絡視圖——UIWebView 74 
3.4.1 App網絡傳輸安全策略74 
3.4.2通過網絡請求加載UIWebView 75 
3.4.3通過HTML字符串加載UIWebView 75 
3.4.4通過Data數據加載UIWebView 76 
3.4.5 UIWebView中常用方法解析76 
3.4.6 UIWebView的代理方法77 
3.5表格視圖——UITableView 78
3.5.1 UITableView的創建與復用機制78 
3.5.2創建一個表格視圖UITableView 79 
3.5.3關於表格數據的載體UITableViewCell 81 
3.5.4設置UITableView的行高和頭尾視圖82 
3.5.5 UITableView的用戶交互行為83 
3.5.6為UITableView添加索引欄85 
3.6複雜佈局視圖——UICollectionView 85 
3.6.1 UICollectionView控件的優勢與佈局方式86 
3.6.2使用UICollectionView進行九宮格式的佈局86 
3.6.3創建更加靈活的流式佈局88 
3.6.4自定義UICollectionViewFlowLayout進行參差瀑布流佈局88 
3.6.5使用UICollectionView進行圓環佈局91 
3.7實戰:開發一款手機網頁瀏覽器93 
3.7.1網頁瀏覽器工程的搭建93 
3.7.2核心網頁視圖的設計94 
3.7.3歷史記錄界面的設計101 
3.7.4收藏界面的設計102 
3.7.5啟動頁面、圖標及應用名稱的相關優化103 
3.8擴展內容106 
3.8.1應用內評價組件106 
3.8.2進行系統撥號與短信界面的調用106 
3.8.3拖拽交互體驗107
第4章網絡編程技術111 
4.1使用NSURLConnection請求網絡數據111 
4.1.1申請一個免費的API服務112 
4.1.2使用NSURLConnection進行API服務數據的獲取114 
4.1.3使用NSURLConnection進行異步網絡請求115 
4.1.4使用NSURLConnection類通過代理回調的方式異步請求116 
4.2設計封裝一個更加易用的網絡請求類117 
4.2.1設計自定義的網絡請求連接類117 
4.2.2設計自定義的網絡請求管理類118 
4.3 JSON類型數據的解析與數據模型的設計120 
4.3.1 JSON數據簡介120 
4.3.2在iOS中解析JSON數據121 
4.3.3數據模型Model類的設計122 
4.4使用CocoaPods進行第三方庫的管理124 
4.4.1在MAC上安裝CocoaPods工具125 
4.4.2用CocoaPods搭建一個使用第三方網絡請求框架AlamoFire的工程126 
4.5使用AlamoFire進行網絡請求128 
4.5.1詳解HTTP/HTTPS協議128 
4.5.2使用AlamoFire進行網絡請求129 
4.6實戰:開發“笑一笑”應用程序130 
4.6.1工程項目框架的搭建130
4.6.2 “笑一笑”界面數據載體cell的設計132 
4.6.3 “笑一笑”界面的搭建134 
4.6.4實現下拉刷新與加載更多功能137 
4.6.5 “趣圖吧”界面數據載體cell的設計138 
4.6.6 “趣圖吧”界面的設計141 
第5章音頻、視頻開發技術145 
5.1 iOS音頻開發基礎——AVAudioPlayer類的使用145 
5.1.1使用AVAudioPlayer進行MP3音頻文件的播放145 
5.1.2進行音頻播放相關屬性的控制147 
5.1.3後台播放音頻及用戶交互的優化152 
5.2 iOS視頻開發基礎154 
5.2.1使用MPMoviePlayerController向應用中嵌入視頻模塊154 
5.2.2 MPMoviePlayerController常用屬性與方法解析155 
5.3視頻播放器視圖控制器——MPMoviePlayerViewController 158 
5.4 AVPlayViewController視頻播放框架與畫中畫開發技術159 
5.4.1使用AVPlayerViewController進行視頻播放160 
5.4.2 iPad的畫中畫播放技術162 
5.5實戰:“歌手王菲”音頻播放器的開發164 
5.5.1工程搭建與LRC歌詞文件簡介164 
5.5 .2 LRC歌詞解析引擎的設計165
5.5.3核心播放器引擎的設計168 
5.5.4歌曲列表與歌詞顯示視圖界面的設計173 
5.5.5播放器主頁面的實現176 
5.5.6後台播放音頻用戶交互的處理181 
第6章動畫開發技術183 
6.1使用UIImageView播放圖片組幀動畫184 
6.2 UIView層動畫的應用185 
6.2.1執行UIView層過渡動畫的3個類方法185 
6.2.2創建UIView層的阻尼動畫186 
6.2.3動畫參數配置與組合動畫186 
6.2.4 UIView層過渡動畫支持的屬性188 
6.3使用commit方式進行UIView層動畫的創建189 
6.3.1使用commit方式進行UIView層過渡動畫的創建189 
6.3.2兩種UIView層動畫創建方式的優劣190 
6.4 UIView的轉場動畫190 
6.4.1重繪UIView視圖時使用的轉場動畫191 
6.4.2切換UIView視圖時使用的轉場動畫191 
6.5核心動畫編程技術——CoreAnimation 192 
6.5.1錨點對視圖控件幾何位置的影響193 
6.5.2色彩梯度層——CAGradientLayer 194 
6.5.3視圖拷貝層——CAReplicatorLayer 194 
6.5.4圖形渲染 ——CAShapeLayer 195
6.5.5文本繪製層——CATextLayer 196 
6.5.6 CAAnimation動畫體系介紹197 
6.5.7使用CABasicAnimation創建基礎動畫198 
6.5.8使用CAKeyframeAnimation類創建關鍵幀動畫200 
6.5.9 CALayer層的轉場動畫——CATransition 201 
6.5.10 CALayer層的組合動畫——CAAnimationGroup 202 
6.5.11 CATransform3D變換的應用203 
6.6炫酷的粒子效果205 
6.6.1粒子發射器——CAEmitterLayer 205 
6.6.2粒子單元——CAEmitterCell 206 
6.6.3創建粒子火焰動畫207 
6.7播放GIF動態圖209 
6.7.1使用UIWebView進行GIF動態圖播放209 
6.7.2使用UIImageView幀動畫進行GIF動態圖播放209 
6.8實戰:小遊戲Flappy Bird的設計與開發210 
6.8.1小鳥對象的設計211 
6.8.2遊戲開始界面的設計213 
6.8.3遊戲結束界面的設計214 
6.8.4 Flappy Bird遊戲主框架的搭建215 
第7章傳感器開發技術221 
7.1為應用程序添加手機密碼及指紋識別的安全驗證221
7.1.1使用手機密碼為應用程序添加安全驗證222 
7.1.2使用用戶指紋為應用程序添加安全驗證223 
7.2使用加速度傳感器、螺旋儀傳感器與磁力傳感器獲取設備空間狀態224 
7.3距離傳感器的應用227 
7.4 iOS藍牙開發技術228 
7.4.1中心設備管理類CBCentealManager 229 
7.4.2外圍設備管理類CBPeripheraManager 232 
7.5 GPS應用與地圖編程技術236 
7.5.1進行設備地理位置定位236 
7.5.2原生地圖開發技術238 
7.5.3在地圖中添加大頭針及標註240 
7.5.4在地圖視圖中添加覆蓋物242 
7.5.5在地圖中進行線路導航與附近興趣點檢索244 
7.6實戰:簡易藍牙對戰五子棋248 
7.6.1遊戲核心通信類的設計248 
7.6.2棋盤瓦片的設計254 
7.6.3核心遊戲視圖與遊戲核心邏輯的設計256 
7.6.4核心遊戲視圖控制器的設計262 
第8章界面佈局技術266 
8.1 iOS中傳統的UIViewAutoresizing佈局模式266 
8.1.1通過代碼設置視圖控件的UIViewAutoresizing 式267 
8.1.2在xib文件中可視化地配置控件的autoresizing屬性269
8.2 autolayout自動佈局框架270 
8.2.1初識autolayout 270 
8.2.2 autolayout的屬性意義與一個簡單的自動佈局示例272 
8.2.3使用代碼進行autolayout佈局275 
8.2.4使用格式化的字符串進行autolayout佈局對象的創建277 
8.2.5與約束相關的幾個方法279 
8.2.6使用autolayout設計一個高度自適應的聊天輸入框及動畫優化279 
8.2.7使用第三方庫SnapKit進行autolayout約束佈局281 
第9章數據持久化技術286 
9.1使用plist文件進行輕量級數據持久化管理286 
9.1.1在工程中讀取Plist文件數據286 
9.1.2在程序沙盒Documents目錄中創建和使用plist文件288 
9.1.3使用NSUserDefaults類進行數據持久化289 
9.2使用歸檔技術進行數據模型持久化290 
9.2.1進行單一系統數據類型的歸檔與解歸檔操作290 
9.2.2對多個對象進行數據歸檔291 
9.2.3進行自定義數據模型的歸檔292 
9.3小型數據庫SQLite在iOS開發中的應用293 
9.4核心數據管理框架CoreData 使用296 
9.4.1使用CoreData設計數據模型296
9.4.2 CoreData編程框架中3個重要的類299 
9.4.3 CoreData編程框架的數據操作301 
9.4.4使用CoreData進行數據與頁面的綁定304 
9.5網絡緩存策略307 
9.5.1為網絡請求設置緩存策略308 
9.5.2應用緩存管理類NSURLCache簡介309 
第10章提交應用程序到App Store 310 
10.1使用Xcode開發工具進行程序調試310 
10.1.1使用自定義斷點進行代碼調試310 
10.1.2添加全局異常斷點312 
10.1.3使用LLDB調試器進行程序調試312 
10.2 Apple開發者賬號的申請313 
10.2.1幾種類型的開發者賬號313 
10.2.2申請開發者賬號的過程314 
10.3進行應用程序打包317 
10.3.1在iTunes Connect中進行應用的創建與配置317 
10.3.2使用Xcode打包與提交iTunes 323 
第11章更多功能與進階技巧327 
11.1 iOS通知中心NotificaitonCenter的應用327 
11.1.1通知類Notification簡介327 
11.1. 2通知中心NotificationCenter應用328 
11.2多線程開發技術329
11.2.1使用Thread進行線程管理329 
11.2.2使用Operation類與OperationQueue類進行多任務管理331 
11.2.3 iOS中GCD編程技術簡介333 
11.3 3D Touch技術的應用334 
11.3.1 3D Touch的3大模塊334 
11.3.2 Home Screen Quick Action使用與相關API詳解335 
11.4 iOS中語音識別技術的應用338 
11.4.1 SpeechFramework框架中的重要類338 
11.4.2申請用戶語音識別權限與進行語音識別請求338