iOS 8 Swift編程指南 ( 簡體 字) |
作者:楊宏焱 | 類別:1. -> 程式設計 -> 手機程式 -> Swift |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 41643 詢問書籍請說出此書號!【缺書】 NT售價: 395 元 |
出版日:6/1/2015 |
頁數:492 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121260889 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:Swift 是蘋果公司最新的、類型安全的現代編程語言,可用于 Cocoa 和 Cocoa Touch 開發。Swift 在蘋果公司的 2014 年 WWDC 大會中首次亮相,至今已有近一年的歷史。迄今為止,App 商店中已經出現了相當數量的Swift 應用。 iOS 8 SDK隨Swift同步推出,但得到的關注卻遠遠小于后者。尤其是國內的開發者,對新SDK的研究和了解更是乏善可陳。實際上,iOS 8為開發者帶來的機遇,遠甚于蘋果的新晉開發語言Swift。 蘋果全新設計了iOS 8,為它添加了大量新特性,例如App擴展,Cloud Kit、Health Kit以及經過精心設計的游戲開發框架。可以說,從來沒有任何一個iOS的版本,能夠像iOS 8一樣,給我們帶來如此大的改變。每一個使用過iOS 8 SDK的開發者都能夠感受到它前所未有的強大。 讀者對象 本書主要適合以下讀者閱讀: 一是有 SDK 開發經驗,想將現有App遷移到iOS 8的開發者,但苦于沒有專門介紹 iOS 8 SDK 的書籍; 二是已經具備一定 Swift 語言基礎,但缺少進一步結合 SDK 進行Swift開發示例或沒有足夠代碼積累的讀者; 三是有一定 SDK 開發經驗,但還沒有學習過 Swift 語言,想快速學習 Swift 并立即進行工程實踐的讀者; 四是既想快速學習 Swift 又需要詳細了解 iOS 8 SDK的讀者。 內容概覽 全書共19章,分為兩部分。 從第1章到第4章為本書第一部分,這部分介紹 Swift 語言。 第1章介紹學習 Swift 之前需要了解的背景知識和學習過程中需要注意的“注意事項”,主要包括 Swift 的源起、對Objective-C開發者帶來的影響,以及初學者 FAQ。 第2章開始介紹 Swift 語言的基本語法,包括常量、變量、類型推斷、字符串、流程控制。有了這些基礎知識,我們起碼可以在接下來的章節里寫出一些“程序”。 第3章介紹 Swift 語言強大的類型系統,包括元組、可空類型、集合、枚舉、結構和類,其中有不少類型是前任的Objective-C語言所沒有的,這也是 Swift 最為獨特的地方。 第4章介紹函數、閉包、協議、擴展、泛型。這些內容并不是孤立的,它們互相之間有著非常緊密的聯系,充分反映了蘋果在Objective-C發展過程中對 FP(函數式編程)方面的缺失做出的反思和改變。 從第5章開始,為本書第二部分,開始陸續介紹 iOS 8 SDK 中的新特性。 第5章介紹 iOS 8 在 UI 方面的兩個主要內容:自動布局和自適應布局;尤其是后者“一次設計,所有設備運行”的特性。 第6章介紹Split View Controller 和旋屏。尤其是蘋果對前者的改變,是廣大 iOS 開發者期盼已久的事情。 第7章介紹 Presentation Controller。iOS 8 統一了以前版本中的視圖呈現方式,例如 Alert、Popover 和 Search Controller,使開發者可以完全控制 View Controller 的呈現及動畫過程。 第8章至第 13 章,依次介紹了 iOS 8 新增的 App 擴展,尤其對其中的幾個組件進行了詳細介紹:今日、分享、動作、照片編輯、文檔提供者、鍵盤。 第14章通過一個示例項目對 CloudKit 框架進行介紹。 第15章介紹 Photos 框架,包括對照片的編輯處理。 第16章以案例的形式介紹 HandOff 框架。 第17章介紹WebKit,尤其是蘋果的全新腳本引擎。 第18章介紹Live Rendering,并演示如何在自定義組件中使用Live Rendering技術。 第19章介紹Visual Effects。程序員從此可以使用官方API來生成一些有趣的視覺效果,例如模糊效果和霧玻璃效果。 特色分析 本書所面向的讀者市場尚是一片空白。目前市面上(國內)還沒有專門介紹 iOS 8 SDK 的圖書。 本書順應了市場潮流。本書借助蘋果發布新版本 SDK 及新開發語言 Swift 之機,從一個應用開發者的角度,對二者進行了深入介紹,使開發者在熟悉新框架的過程中同時了解 Swift 這門語言。 內容深入,案例豐富。本書第二部分介紹了 iOS 8 SDK 框架的新特性,而且基本上每個新特性都配有一個單獨的案例項目。 源代碼 本書使用的源代碼可在GitHub上下載: https://github.com/kmyhy/BookSourceCode |
內容簡介:本書創新性地將語言和框架結合起來介紹。全書分為兩部分:第一部分是 Swift 語言介紹,共4章;第二部分則是iOS 8特性的介紹,從App開發者的角度闡述Swift語言在新SDK上的實際應用。本書在介紹iOS 8每個特性的過程中,配以豐富的Swift代碼案例,以此讓讀者在學習iOS 8的同時,積累大量的 Swift 編碼經驗。 |
目錄:第一部分 Swift語言編程指南 第1章 Swift初見 2 1.1 什么是Swift 2 1.2 為什么要學習Swift 3 1.3 Objective-C程序員學習Swift需要特別關注的地方 3 1.3.1 類型推斷與類型安全 4 1.3.2 泛型 5 1.3.3 數組和字典 6 1.3.4 字符串 7 1.3.5 switch語句 8 1.4 關于Swift初學者的一些問題 9 1.4.1 從哪里獲得Swift 9 1.4.2 是否需要先學Objective-C,再學Swift 9 1.4.3 “老鳥”們學習Swift是否會更輕松 10 1.4.4 開發iOS 8和OS X Yosemite程序只能用Swift嗎 10 1.4.5 Swift是否能在當前的iOS和OS X版本上工作 10 1.4.6 什么是Playground 11 1.4.7 關于NDA 11 1.4.8 有Swift能做到而Objective-C無法做到的嗎?反過來說呢 11 1.4.9 某些API是否無法被Swift調用 11 1.4.10 在Playground中,如何以圖表方式查看變量值 12 1.4.11 如何打開REPL 13 1.4.12 Swift如何調用Objective-C代碼或第三方庫 14 1.4.13 Swift數組只能存儲同一種類型的數據嗎 15 1.4.14 字典是否也和數組一樣是強類型的 15 1.4.15 Swift中有類似于Objective-C中的id嗎 15 1.4.16 在 Swift中,如何自省 15 1.4.17 在Swift中如何使用GCD 16 1.4.18 Objective-C中提供的Internationalization宏是否仍然可用 16 1.4.19 仍然需要注意持有循環嗎 17 1.4.20 何時使用strong、weak以及unowned 17 第2章 Swift語法基礎 18 2.1 Playground 18 2.2 常量、變量、字符串 21 2.2.1 常量 21 2.2.2 變量 21 2.2.3 分號 22 2.2.4 字符串 22 2.2.5 字符串插值和運算 23 2.3 簡單類型和類型推斷 23 2.3.1 數值類型 23 2.3.2 類型轉換 25 2.3.3 布爾類型 26 2.3.4 區間 26 2.3.5 元組 27 2.4 流程控制 28 2.4.1 for循環 28 2.4.2 while語句 31 2.4.3 if語句 31 2.4.4 switch語句 33 第3章 結構和類 38 3.1 可空類型 38 3.1.1 認識可空 38 3.1.2 聲明可空 40 3.1.3 可空類型與非可空類型的轉換 42 3.2 集合 44 3.2.1 數組 45 3.2.2 字典 47 3.3 枚舉 50 3.3.1 定義枚舉時填充原始值 50 3.3.2 使用其他類型 51 3.3.3 不填充原始值 52 3.3.4 聯合 53 3.4 結構和類綜述 54 3.4.1 屬性 54 3.4.2 構造器 55 3.4.3 實例方法 56 3.4.4 類方法 56 3.4.5 下標方法 57 3.4.6 繼承 59 第4章 Swift函數式編程 61 4.1 函數 61 4.1.1 函數的定義 61 4.1.2 外部參數名 62 4.1.3 簡化外部參數名 62 4.1.4 默認值 63 4.1.5 可變參數 64 4.1.6 變量參數和輸出參數 64 4.1.7 用函數作為參數 65 4.1.8 函數作為返回值 66 4.1.9 嵌套函數 67 4.2 閉包 68 4.2.1 聲明閉包 69 4.2.2 匿名閉包 69 4.2.3 尾末閉包 70 4.2.4 值捕獲 70 4.3 協議 71 4.3.1 協議的聲明 71 4.3.2 實現協議 72 4.3.3 協議是一種類型 72 4.3.4 組合協議 73 4.4 擴展 74 4.4.1 聲明擴展 74 4.4.2 擴展和協議 75 4.5 泛型 75 4.5.1 泛型函數 76 4.5.2 泛型和協議 76 4.5.3 泛型約束 77 4.5.4 泛型類型 78 4.6 可空鏈 79 4.6.1 ?操作符 79 4.6.2 ??操作符 82 第二部分 iOS 8 SDK 第5章 故事板與自適應布局 86 5.1 自適應布局入門 86 5.1.1 自適應布局的4個概念 87 5.1.2 Universal故事板 87 5.1.3 Size類 96 5.1.4 自適應字體 100 5.1.5 設備相關圖片 101 5.2 自適應布局進階 102 5.2.1 自適應單元格 102 5.2.2 自動安裝視圖 108 5.2.3 UITraitCollection類 119 5.2.4 覆蓋Size類 121 5.2.5 Size相關圖片 125 5.2.6 顯示/隱藏導航欄 127 5.2.7 UIAppearance和Size類 128 第6章 UISplitViewController及旋屏 130 6.1 創建UISplitViewController應用 131 6.2 在iPhone App中使用UISplitViewController 140 6.2.1 創建Detail默認視圖 140 6.2.2 在iPhone中展開UISplitViewController 143 6.2.3 記住用戶選擇 151 6.2.4 單元格指示器 154 6.2.5 對iPad進行適應 159 6.3 旋屏 162 6.3.1 舊的旋屏方法被廢棄 162 6.3.2 自定義旋屏效果 165 6.3.3 單元格自適應大小 167 6.3.4 iPad旋屏 169 6.3.5 自適應的UILabel 176 第7章 視圖控制器的呈現 180 7.1 初始項目 181 7.2 內置的Presentation Controller 182 7.2.1 UIAlertController 183 7.2.2 UIPopoverPresentationController 186 7.2.3 UISearchController 191 7.3 自定義UIPresentationController 196 7.3.1 Presented控制器和Presenting控制器 196 7.3.2 創建基本的PresentationController 197 7.3.3 自定義轉換動畫 200 7.3.4 高級定制 206 第8章 今日擴展 215 8.1 App擴展介紹 215 8.1.1 App擴展的類型 216 8.1.2 理解App擴展 219 8.2 今日擴展綜述 223 8.2.1 介紹今日擴展 223 8.2.2 WeatherWidget示例 223 8.2.3 討論 240 第9章 分享擴展 242 9.1 案例項目:SinaWeiboShare 242 9.1.1 實現容器App 243 9.1.2 創建分享擴展 257 9.2 討論 267 9.2.1 配置SLComposeSheetConfigurationItem 268 9.2.2 分享其他文件 268 第10章 動作擴展 269 10.1 案例項目:SearchInICIBA 269 10.1.1 實現容器App 270 10.1.2 創建動作擴展 272 10.2 討論 280 第11章 照片編輯擴展 281 11.1 案例項目:PhotoVintage 281 11.1.1 實現容器App 282 11.1.2 實現照片編輯擴展 282 11.2 討論 292 第12章 文檔提供者擴展 294 12.1 準備 295 12.1.1 工作機制 295 12.1.2 文檔提供者擴展支持的4種操作 296 12.2 Bmob云服務 297 12.2.1 注冊Bmob 297 12.2.2 創建應用 297 12.2.3 獲取App Key 298 12.2.4 Bmob SDK 299 12.3 開始 299 12.3.1 添加擴展App 299 12.3.2 配置Info.plist和entitlements 300 12.4 加入Bmob SDK框架 301 12.4.1 添加CocoaPods框架 301 12.4.2 橋接頭文件 304 12.4.3 上傳圖片到Bmob 305 12.4.4 實現Document Picker 308 12.4.5 實現宿主App 314 12.4.6 實現File Provider 319 12.5 討論 322 第13章 鍵盤擴展 323 13.1 準備 323 13.2 鍵盤擴展的限制 323 13.3 值得信任 324 13.4 網絡訪問 325 13.5 開始 326 13.5.1 創建鍵盤擴展 326 13.5.2 顯示鍵盤 327 13.5.3 設計按鈕及布局 329 13.6 實現KeyboardViewController 331 13.6.1 創建連接 331 13.6.2 實現按鍵處理 332 13.6.3 大小寫轉換 334 13.6.4 切換符號集 335 13.6.5 按鍵動畫 336 13.6.6 鍵盤最終運行效果 336 13.7 討論 337 第14章 CloudKit 338 14.1 準備 339 14.1.1 用戶授權 339 14.1.2 iCloud容器 340 14.1.3 數據庫 340 14.1.4 Zone 340 14.1.5 記錄 341 14.1.6 訂閱 341 14.2 開始 342 14.2.1 打開iCloud 342 14.2.2 程序主界面 343 14.2.3 全局對象 344 14.2.4 獲取用戶ID及姓名 345 14.2.5 將數據封裝為CKRecord 350 14.2.6 上傳照片 353 14.2.7 查看已經上傳的圖片 359 14.3 高級API 361 14.3.1 不完全抓取 362 14.3.2 分頁抓取 363 14.3.3 抓取并緩存圖片 367 14.3.4 錯誤處理及網絡重試 371 14.3.5 CloudKit Dashboard 372 14.4 討論 373 第15章 Photos框架 375 15.1 Photos初步 375 15.1.1 模型對象 376 15.1.2 抓取概述 376 15.1.3 檢索內容 377 15.1.4 初始項目 377 15.1.5 獲取用戶授權 378 15.1.6 抓取 379 15.1.7 顯示圖片 384 15.1.8 緩存 387 15.1.9 標記用戶選擇 390 15.2 Photos進階 392 15.2.1 API介紹 393 15.2.2 初始項目 394 15.2.3 創建新的拼接圖 396 15.2.4 顯示拼接圖 400 15.2.5 收藏和刪除 403 15.2.6 增加修訂記錄 405 15.2.7 讀取修訂記錄 406 15.2.8 注冊變更通知 409 15.2.9 監聽變更通知 409 15.2.10 讓SpliceListVC處理變更通知 411 15.2.11 讓PhotoPicker處理變更通知 413 15.3 討論 414 第16章 Handoff 415 16.1 Handoff基礎 416 16.2 開始 416 16.2.1 Handoff兼容性 417 16.2.2 測試Handoff 418 16.2.3 初始項目 419 16.2.4 設置Team ID 420 16.2.5 添加活動類型 421 16.3 view活動 422 16.3.1 創建活動并開始廣播 422 16.3.2 更新用戶活動 423 16.3.3 停止廣播 423 16.4 edit活動 424 16.4.1 創建活動并開始廣播 424 16.4.2 更新用戶活動 425 16.4.3 停止廣播 425 16.5 恢復用戶活動 426 16.5.1 在應用程序委托中接收Handoff廣播 426 16.5.2 恢復view活動 428 16.5.3 恢復edit活動 429 16.6 討論 430 第17章 WebKit 432 17.1 開始 433 17.1.1 初始項目 433 17.1.2 創建WKWebView實例 433 17.1.3 加載Web頁 434 17.1.4 監視頁面加載進度 434 17.1.5 頁面導航 436 17.1.6 WKNavigationDelegate協議 436 17.2 WebKit進階 439 17.2.1 腳本調試工具 439 17.2.2 隱藏網頁內容 440 17.2.3 抓取頁面內容 444 17.2.4 顯示PopoverController 448 17.3 討論 450 第18章 Living Rendering 452 18.1 Living Rendering初步 453 18.1.1 開啟Living Redering特性 453 18.1.2 暴露@IBInspectable屬性 454 18.1.3 繪制boxLayer層 456 18.1.4 繪制markLayer層 457 18.1.5 繪制文本圖層 459 18.2 Living Rendering進階 461 18.2.1 使用位圖 461 18.2.2 響應事件 462 18.3 討論 463 第19章 Visual Effects 464 19.1 Visual Effects初步 464 19.1.1 初始項目 465 19.1.2 使用Visual Effect View實現模糊特效 465 19.1.3 使用Visual Effect View實現Vibrancy效果 467 19.2 Visual Effects進階 469 19.2.1 使用UIBlurEffect實現模糊效果 469 19.2.2 使用UIVibrancyEffect實現Vibrancy效果 471 19.3 討論 473 |
序: |