iOS移動開發從入門到精通

《iOS移動開發從入門到精通》是2017年出版的圖書,作者是李發展、王亮。

基本介紹

  • 書名:iOS移動開發從入門到精通
  • 作者:李發展、王亮
  • ISBN:9787302462026
  • 出版時間:2017.03.01
內容簡介,圖書目錄,

內容簡介

本書由資深iOS開發工程師精心編撰,系統地介紹了使用iOS10+Swift3+Xcode8開發移動套用的關鍵技術。
本書共分三篇,第一篇為基礎篇,主要介紹了iOS開發基礎知識,包括iOS系統的歷史、Swift3.0語言、UI界面構建技術、視圖控制器、常用的控制項、表和集合視圖、視圖和層、聲音、視頻、動畫等。第二篇為進階篇,主要介紹了Alamofire網路服務、數據的持久化、多執行緒、CoreText、CoreImage、Storyboard、自動化測試、性能分析、本地化、加密與安全等實用技術。第三篇為實例篇,通過對實體層、表現層和邏輯層三層相關技術的講解,向讀者詳細展示了MVC設計模式在項目開發中的套用方式,並最終創建一個成熟的商業項目。
本書採用豐富的實例,直觀的代碼展示,向讀者形象地講解了在創建一款優秀的iOS應用程式時,所需要的大部分技巧,幫助讀者輕鬆掌握並高效開發iOS程式。本書適合iOS開發新手、iOS程式設計師、iPhone開發人員、iPad開發人員使用,也可以作為相關培訓機構和大專院校相關專業的教學用書。

圖書目錄

第1章 開發準備 1
1.1 iOS移動開發現狀 2
1.1.1 iOS的歷史 2
1.1.2 iOS 10的十大變化 4
1.1.3 iOS套用開發的八個特點 5
1.2 iOS 10的新功能 5
1.2.1 SiriKit 6
1.2.2 Proactive Suggestions
(預建議) 6
1.2.3 Integrating with the Messages
App 7
1.2.4 User Notifications 7
1.2.5 Speech Recognition 8
1.2.6 Wide Color 9
1.2.7 Adapting to the True Tone
Display 9
1.2.8 Widget Enhancements 9
1.2.9 Security and Privacy
Enhancements 9
1.3 成為一名iOS開發者 11
1.3.1 硬體上的需求 11
1.3.2 加入Apple開發者計畫 11
1.3.3 下載安裝Xcode和模擬器 13
1.3.4 創建開發和發布配置檔案Provisioning Profile 14
1.4 創建一個基本的iOS項目 17
1.4.1 項目的創建 17
1.4.2 設定項目的信息 19
1.4.3 設定套用的Icon圖示 19
1.4.4 設定套用的Launch圖片 20
1.4.5 編譯並運行項目 22
1.5 iOS套用的生命周期 23
...
1.5.1iOS應用程式的狀態24
1.5.2演示iOS應用程式的各種
狀態25
1.6小結26
第2章Xcode8IDE和iOS模擬器27
2.1Xcode8的使用28
2.1.1工具列的使用28
2.1.2導航器的功能介紹29
2.1.3項目導航器中的內容30
2.1.4創建一個組和Swift檔案30
2.1.5在項目中搜尋檔案33
2.1.6代碼的查找和替換36
2.1.7代碼的Debug調試36
2.2iOS模擬器的使用39
2.2.1使用多種iOS模擬器39
2.2.2iOS模擬器方向的切換40
2.2.3iOS模擬器語言的切換40
2.2.4截取模擬器螢幕41
2.2.5應用程式的退出和刪除41
2.3小結42
第3章Swift3.0的基礎知識43
3.1Swift的基本概念44
3.1.1Swift語言的特點44
3.1.2Swift常量和變數的定義45
3.1.3常量和變數的輸出46
3.1.4注釋47
3.1.5Playground47
3.2數據類型與運算49
3.2.1布爾類型49
3.2.2Int類型及實例屬性50
3.2.3浮點類型及實例屬性51
3.2.4字元和字元串51
3.2.5元組類型54
3.2.6一元、二元和三元運算符55
3.2.7比較運算符56
3.3循環語句和條件判斷語句57
3.3.1for循環57
3.3.2while循環語句58
3.3.3repeat-while循環語句59
3.3.4if條件判斷語句60
3.3.5switch條件判斷語句60
3.3.6continue語句和forthrough
語句61
3.4數組和字典62
3.4.1數組62
3.4.2多維數組64
3.4.3數組的遍歷65
3.4.4字典66
3.5小結68
第4章Swift3.0的進階內容69
4.1函式70
4.1.1函式的定義和調用70
4.1.2為參數設定默認值71
4.1.3設定可變的函式參數數量71
4.1.4函式作為參數和返回類型72
4.1.5元組作為函式的返回類型,
實現多個返回值74
4.1.6使用函式類型74
4.1.7函式的輸入輸出參數75
4.1.8函式的嵌套76
4.1.9函式的遞歸用法76
4.1.10常用的內置函式77
4.2枚舉和結構體79
4.2.1枚舉79
4.2.2結構體83
4.3類85
4.3.1類的創建85
4.3.2類屬性的set和get方法88
4.3.3類屬性的willSet和didSet
方法89
4.3.4類的靜態方法90
4.3.5類的析構91
4.3.6類的繼承92
4.3.7類的延遲載入屬性lazy93
4.3.8類的引用特徵95
4.3.9類型檢查95
4.3.10Any和Anyobject98
4.4擴展、協定和其他99
4.4.1擴展99
4.4.2協定101
4.4.3問號?和感嘆號!103
4.5小結105
第5章視圖UIView和層CALayer106
5.1視圖UIView107
5.1.1UIView概述107
5.1.2UIView的外觀屬性109
5.1.3UIView的幾何屬性112
5.1.4UIView的嵌套和層次關係114
5.1.5UIView的互動屬性116
5.1.6UIView的變形操作118
5.1.7自定義UIView視圖120
5.2CALayer層124
5.2.1CALayer框線124
5.2.2CALayer陰影125
5.2.3CALayer圓角126
5.2.4CALayer漸變127
5.3小結129
第6章視圖控制器UIViewController130
6.1UIViewController視圖控制器概述131
6.1.1視圖控制器與MVC131
6.1.2創建一個視圖控制器132
6.1.3以模態方式彈出視圖控制器136
6.1.4視圖控制器的生命周期139
6.1.5視圖控制器和UIScrollView141
6.2UITabBarController145
6.2.1創建一個UITabBarController145
6.2.2改變Tabbar的位置147
6.2.3改變UITabBarController
索引149
6.2.4在Tab圖示上顯示角標149
6.3UINavigationController150
6.3.1創建一個UINavigationController
151
6.3.2UINavigationController視圖
入棧和出棧153
6.3.3導航欄和工具列的顯示和
隱藏157
6.3.4導航欄樣式的修改157
6.4導航控制器和標籤控制器158
6.5小結161
第7章常用經典控制項162
7.1控制項概述163
7.1.1何為Target-Action機制163
7.1.2UIControl類的方法和屬性165
7.1.3讓我們一起動手來實現一個UIControl吧167
7.2UIButton的概述168
7.3UILabel文本視圖171
7.3.1UILabel的創建和文案顯示172
7.3.2UILabel處理過長的文案173
7.3.3UILabel的陰影174
7.4UISwitch開關視圖175
7.4.1UISwitch的創建175
7.4.2UISwitch的開關使用176
7.5UIRefreshControl刷新控制項176
7.6UITextField文本框控制項178
7.6.1UITextField的創建和基本
套用179
7.6.2UITextField的背景圖180
7.6.3UITextField的浮動視圖(Overlayview)181
7.6.4UITextField的代理UITextFieldDelegate183
7.7小結185
第8章UITableView和UICollectionView
186
8.1UITableView概述187
8.1.1UITableViewCell單元格187
8.1.2創建一個簡單的表格189
8.1.3自定義單元格UITableViewCell
193
8.1.4自定義單元格的高度196
8.1.5給表格添加章節和索引198
8.1.6單元格的選擇與取消選擇201
8.1.7單元格的插入和刪除204
8.1.8移動單元格的位置209
8.1.9表格之間的嵌套213
8.2UICollectionView概述219
8.2.1UICollectionView的實現
原理220
8.2.2創建一個UICollectionView對象並添加點擊事件221
8.3小結225
第9章觸屏事件和觸摸手勢226
9.1觸摸事件的監測227
9.1.1對觸摸事件階段的監測227
9.1.2監測是否觸摸到某個視圖229
9.1.3實現圖像視圖的拖動231
9.2觸摸手勢的使用232
9.2.1實現單點觸摸手勢233
9.2.2實現雙擊觸摸手勢235
9.2.3實現長按手勢的監測236
9.2.4捏合手勢的監測238
9.33DTouch的使用239
9.4小結242
第10章動畫、聲音與視頻243
10.1製作動畫244
10.1.1UIView的動畫244
10.1.2使用UIImageView播放幀
動畫249
10.1.3位移關鍵幀動畫的製作251
10.2音頻的播放254
10.2.1使用SystemSoundServices
播放簡短聲音255
10.2.2使用AVAudioPlayer播放
音樂256
10.3視頻的播放260
10.3.1使用AVPlayer播放影片260
10.3.2實現影片的畫中畫功能262
10.4小結265
第11章Alamofire網路請求框架266
11.1Alamofire的前世今生267
11.1.1Alamofire的手動集成267
11.1.2Alamofire的網路是否聯通和
連線方式269
11.1.3Alamofire的GET和POST
請求272
11.1.4Alamofire的檔案上傳及
進度顯示274
11.1.5Alamofire的檔案下載及
進度顯示278
11.2小結279
第12章UIWebView與HTML5技術280
12.1UIWebView的使用281
12.1.1使用UIWebView載入網頁281
12.1.2使用UIWebView載入HTML
字元串和GIF動畫283
12.1.3使用UIWebView載入本地
網頁286
12.1.4使用Javascript回調原生
程式289
12.2創建一個簡單的筆記本292
12.2.1創建一個可編輯的div292
12.2.2設定網頁的CSS樣式293
12.2.3添加插入筆記圖片的方法294
12.2.4添加刪除圖片和獲得筆記的
方法295
12.2.5實現筆記本的用戶界面296
12.3小結298
第13章數據的持久化299
13.1解析plist檔案300
13.1.1創建和解析plist檔案300
13.1.2將信息寫入plist檔案303
13.2使用CoreData進行數據的持久化304
13.2.1創建CoreData實體並插入
數據306
13.2.2檢索CoreData中的數據308
13.2.3修改和刪除CoreData數據310
13.3小結312
第14章多執行緒技術313
14.1多執行緒的概念314
14.1.1任務、進程和執行緒314
14.1.2執行緒的Stackspace315
14.1.3執行緒的優先權315
14.1.4執行緒的生命周期315
14.1.5執行緒和Runloop316
14.2使用Thread316
14.2.1創建Thread下載圖片317
14.2.2給Thread加鎖使執行緒同步319
14.3Operation技術的使用322
14.4GrandCentralDispatch的使用325
14.4.1使用GCD查詢IP位址
信息326
14.4.2DispatchGroup調度組的
使用328
14.5小結329
第15章MapKit地圖330
15.1MapKit的概念331
15.1.1MKMapView的顯示區域331
15.1.2MKMapView的跟蹤和
定位332
15.1.3MKMapView的互動選項和
裝飾物333
15.1.4創建一個MKMapView
地圖333
15.1.5MKMapView代理的使用335
15.1.6自定義annotationView和
calloutView337
15.1.7Camera相機的使用341
15.2小結342
第16章iOS的圖文混排技術343
16.1CoreText的使用344
16.1.1文字排版方面的一些基本
概念344
16.1.2列出設備中的所有字型346
16.1.3富文本的創建347
16.1.4圖文混排的實現350
16.2TextKit的使用354
16.2.1使用TextKit對文字進行
分欄354
16.2.2使用TextKit製作圖文混排
效果357
16.3小結359
第17章iOS的圖像和視頻處理技術360
17.1CoreImage概述361
17.1.1使用CoreImage的三個類
製作單色調效果362
17.1.2使用CoreImage給圖片添加
馬賽克363
17.1.3使用CoreImage處理視頻
畫面364
17.1.4輸出CoreImage的所有
濾鏡369
17.1.5使用CIDetector和CIFeature
進行人臉檢測370
17.2UIBlurEffect和CGBlendMode372
17.2.1使用UIBlurEffect實現毛玻璃
效果372
17.2.2使用CGBlendMode實現顏色
混合效果373
17.3小結376
第18章iOS常用設備的使用377
18.1Photos和Camera的使用378
18.1.1讀取Photos中的圖片378
18.1.2調用相機拍攝照片382
18.2定位設備的使用384
18.2.1使用定位設備獲取設備地理
位置385
18.2.2將地理坐標轉換為實際
地名388
18.3陀螺儀和加速計設備的使用390
18.3.1陀螺儀的原理和套用390
18.3.2加速計的原理和套用390
18.3.3檢測iOS設備的晃動391
18.4小結393
第19章Storyboard故事板的使用394
19.1Storyboard概述395
19.1.1Storyboard的優缺點395
19.1.2故事板的組織形式396
19.1.3創建一個Storyboard397
19.1.4更改故事板的初始視圖
控制器398
19.2在Storyboard中使用標準控制項400
19.2.1添加三個控制項400
19.2.2對控制項進行連線402
19.3在Storyboard中使用表格控制項405
19.3.1在故事板中添加TableView405
19.3.2添加TableViewCell405
19.3.3設定TableView的數據源407
19.3.4修改ViewController.swift
檔案408
19.4在Storyboard中使用集合控制項409
19.4.1添加CollectionView409
19.4.2設定CollectionViewCell409
19.4.3設定CollectionView的數據源
和代理411
19.4.4修改ViewController.swift
檔案412
19.5Storyboard常見的層次結構413
19.6Storyboard之間的頁面跳轉和參數
傳遞417
19.6.1單個Storyboard中頁面間的
參數傳遞417
19.6.2多個Storyboard中的頁面跳轉
及參數傳遞420
19.7使用約束功能適配多解析度424
19.7.1打開並運行示例項目424
19.7.2給父視圖MainView添加
約束426
19.7.3給三個分隔線添加約束428
19.7.4給兩個小箭頭添加約束429
19.7.5給添加新會員按鈕添加
約束431
19.7.6給無數據圖示添加約束432
19.8小結433
第20章界面測試和自動化測試434
20.1單元測試概述435
20.1.1Xocde的XCTest框架435
20.1.2對其他類的方法進行單元
測試438
20.1.3使用XCTest框架進行性能
測試441
20.2UITesting界面測試442
20.2.1往項目中插入UITesting443
20.2.2製作UI測試的程式444
20.2.3錄製UITesting步驟446
20.2.4播放UITesting的錄製
步驟446
20.3使用UIAutomation進行自動化
測試447
20.3.1使用UIAutomation錄製
自動化測試代碼447
20.3.2測試腳本的保存和載入449
20.4小結449
第21章iOS應用程式記憶體泄露的檢測451
21.1Allocations工具的使用452
21.2Leaks工具的使用458
21.3小結461
第22章iOS應用程式的本地化462
22.1應用程式的本地化463
22.1.1應用程式名稱的本地化463
22.1.2應用程式文字內容的本
地化468
22.1.3Storyboard的本地化471
22.1.4圖片素材的本地化474
22.2小結477
第23章加密與安全478
23.1加密與安全479
23.1.1對稱加密和非對稱加密479
23.1.23DES加密480
23.1.3SHA1加密485
23.1.4MD5加密487
23.1.5越獄情況的判斷490
23.2小結492
第24章開源框架CocoaPods493
24.1CocoaPods、SPM和Carthage簡介494
24.1.1為什麼使用CocoaPods494
24.1.2CocoaPods的安裝及淘寶的
鏡像使用495
24.1.3Podspec的鏡像使用496
24.1.4CocoaPods的實踐497
24.1.5podinstall和podupdate的
使用497
24.1.6CocoaPods的卸載498
24.2CocoaPods-app的使用498
24.2.1為新項目加入CocoaPods499
24.2.2對Podfile的podinstall和podupdate500
24.2.3刪除工程中的CocoaPods501
24.2.4安裝命令行502
24.3小結502
第25章Git版本控制及GitHub社會化
編程實踐503
25.1Git前奏曲504
25.1.1什麼是版本控制504
25.1.2版本控制簡史504
25.1.3Git原理506
25.1.4Git的安裝、配置、別名和
幫助508
25.2Git基礎曲510
25.2.1創建本地倉庫和關聯遠程
倉庫510
25.2.2檔案在工作區、暫存區和
Git本地倉庫中的操作513
25.2.3查看提交歷史515
25.2.4撤銷操作515
25.2.5標籤516
25.3小結519
第26章項目案例的架構搭建520
26.1多人協作的工作流程521
26.2技術選型522
26.3MVC及工程結構523
26.4UITabbarController、UINavigationController和Assets.xcassets的搭建525
26.4.1UITabbarController和UINavigationController525
26.4.2Assets.xcassets管理527
26.5小結529
第27章Model層相關框架530
27.1XML、Plist、JSON數據格式531
27.2開啟ATS532
27.3AlamofireObjectMapper533
27.3.1AlamofireObjectMapper的
安裝533
27.3.2AlamofireObjectMapper的
使用533
27.4ObjectMapper535
27.4.1ObjectMapper的安裝535
27.4.2ObjectMapper中Model與
JSON的轉換536
27.5Moya536
27.5.1Moya的安裝537
27.5.2Moya的使用537
27.6小結540
第28章與眾平台聯姻541
28.1ShareSDK聯合登錄542
28.1.1獲取AppKey542
28.1.2下載SDK542
28.1.3快速集成542
28.1.4新建HeaderFile並建立
橋接543
28.1.5打開橋接檔案(Bridging-Header.h)544
28.1.6添加URLTypes546
28.1.7查看open.qq.com套用的
審核進度546
28.2ShareSDK分享548
28.2.1增加QQ平台分享支持548
28.2.2增加微信平台分享支持548
28.2.3QQ和微信平台分享的代碼
實現549
28.3聚合數據和LeanCloud550
28.3.1聚合數據550
28.3.2LeanCloud551
28.4TalkingData統計551
28.5小結554
第29章開發SwiftNews新聞客戶端
App555
29.1SwiftNewsApp概述556
29.1.1修改AppName556
29.1.2修改AppICON557
29.1.3歡迎頁面558
29.1.4啟動頁面559
29.1.5Debug模式下的print561
29.1.6橋聯SVProgressHUD562
29.1.7自定義Cell563
29.1.8國內和國際新聞模組564
29.1.9圖片加圓角和助手類567
29.2小結569
第30章應用程式的打包和發布570
30.1iOS套用商店概述571
30.1.1AppStore的重大更新571
30.1.2在iTunesConnect創建一個
App573
30.1.3打包App為IPA檔案576
30.1.4自動化打包App577
30.1.5上傳App至AppStore580
30.1.6配置構建版本並提交審核580
30.2小結582

相關詞條

熱門詞條

聯絡我們