iOS開發完全上手——使用iOS 7和Xcode 5開發移動與平板應用( 簡體 字) | |
作者:[美]Maurice Sharp,Erica Sadun,Rod Strougo著 | 類別:1. -> 程式設計 -> 手機程式 -> iPhone |
譯者:張杰、歐陽柳 譯 | |
出版社:清華大學出版社 | 3dWoo書號: 39228 詢問書籍請說出此書號! 有庫存 NT售價: 300 元 |
出版日:8/1/2014 | |
頁數:420 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302368120 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章 初識iOS SDK 1
1.1 安裝Xcode 1 1.2 關于iOS SDK 2 1.2.1 免費獲取的開發者計劃 3 1.2.2 iOS開發者計劃標準版(個人和公司) 4 1.2.3 企業開發者計劃 4 1.2.4 大學開發者計劃 5 1.2.5 注冊 5 1.2.6 iTunes U和在線課程 5 1.2.7 iOS SDK工具 5 1.3 測試應用程序:模擬器和設備 7 1.3.1 模擬器的局限 8 1.3.2 接線 9 1.3.3 對iOS設備的考量 10 1.4 理解設備型號間的差異 14 1.4.1 屏幕尺寸 14 1.4.2 攝像頭 14 1.4.3 音頻 15 1.4.4 電話通信 15 1.4.5 Core Location和Core Motion之間的差異 15 1.4.6 搖晃支持和接近 16 1.4.7 處理器速度 16 1.4.8 OpenGL ES 17 1.4.9 iOS 17 1.5 小結 18 第2章 Objective-C新手訓練營 19 2.1 使用模板創建Hello World應用程序 19 2.1.1 創建Hello World項目 19 2.1.2 Xcode項目界面快速導航 23 2.1.3 添加Hello World標簽 24 2.2 Objective-C新兵訓練營 26 2.2.1 Objective-C編程語言 27 2.2.2 類和對象 30 2.3 CarValet應用程序:實現Car類 35 2.3.1 實現Car方法 39 2.3.2 屬性 43 2.3.3 創建并打印Car對象 45 2.4 屬性:另外兩個特性 46 2.5 子類化和繼承:挑戰一下 49 2.6 小結 52 2.7 挑戰題 53 第3章 故事板介紹 55 3.1 故事板的基礎知識 55 3.2 場景1:構建“Add/View”場景 57 3.2.1 在“Add/View”場景中添加可視化元素 57 3.2.2 添加“Add/View”初始化行為 61 3.2.3 加入顯示汽車行為 69 3.2.4 添加Previous和Next汽車按鈕 72 3.3 場景2:添加一個編輯器 75 3.3.1 添加Editor場景的可視化元素 77 3.3.2 添加Editor場景中的行為 78 3.3.3 將一切都關聯起來 82 3.3.4 為何不用segue返回? 87 3.4 改進故事板Ⅰ 87 3.5 改進故事板Ⅱ 91 3.6 小結 94 3.7 挑戰題 94 第4章 自動布局 95 4.1 自動布局的基礎知識 95 4.2 完美縱向顯示 106 4.2.1 以約束的方式思考 106 4.2.2 完整的規定 107 4.3 添加/查看汽車:設計和實現約束 108 4.3.1 設計與實現添加汽車約束 118 4.3.2 編輯汽車場景:初始的樣子 123 4.4 添加橫向屏幕支持 123 4.5 小結 142 4.6 挑戰題 143 第5章 本地化 145 5.1 本地化的基礎知識 145 5.1.1 重定向 146 5.1.2 格式 148 5.2 為本地化而準備應用程序 150 5.3 德語國際化 162 5.3.1 添加德語區域 162 5.3.2 更改設備語言 163 5.3.3 更新德語版的Localizable.strings 164 5.3.4 修改標簽約束 166 5.3.5 格式化和讀取數字 169 5.4 從右至左:阿拉伯語國際化 170 5.4.1 添加阿拉伯語字符串 170 5.4.2 讓日期和數字能夠工作 173 5.4.3 文本對齊 175 5.5 小結 176 5.6 挑戰題 177 第6章 滾動 179 6.1 滾動的基礎知識 179 6.2 彈跳滾動 180 6.3 處理鍵盤 183 6.3.1 添加滾動視圖 183 6.3.2 調整鍵盤大小 186 6.3.3 添加調整大小 190 6.4 在內容中滾動 190 6.4.1 填充滾動視圖 191 6.4.2 添加分頁 193 6.4.3 添加縮放 194 6.4.4 旋轉 197 6.4.5 這是什么車? 198 6.5 小結 198 6.6 挑戰題 199 第7章 導航控制器I:層次結構和標簽 201 7.1 導航控制器 201 7.1.1 導航控制器類 203 7.1.2 基于消息的導航 209 7.1.3 少許顏色 210 7.2 標簽欄控制器 212 7.2.1 標簽欄的工作原理 213 7.2.2 CarValet應用程序:添加標簽欄 214 7.2.3 CarValet:移動Info 216 7.3 小結 217 7.4 挑戰題 218 第8章 表視圖I:基礎知識 219 8.1 表視圖介紹 219 8.2 階段I:替換Add/View場景 226 8.2.1 添加汽車查看單元格 228 8.2.2 添加汽車 229 8.2.3 刪除汽車 230 8.3 階段II:添加Edit屏幕層次結構 233 8.3.1 添加查看汽車場景 233 8.3.2 用數據填充查看汽車場景 234 8.3.3 編輯數據 236 8.3.4 編輯年份 245 8.4 小結 251 8.5 挑戰題 251 第9章 Core Data介紹 253 9.1 介紹Core Data 254 9.2 將CarValet應用程序遷移到Core Data 255 9.2.1 添加CDCar模型 256 9.2.2 添加Core Data樣板代碼 258 9.2.3 轉換CarTableView-Controller 259 9.3 更加簡單的表視圖:NSFetchedResultsController 265 9.3.1 第1部分:集成NSFetched ResultsController 265 9.3.2 第2部分:實現NSFetched ResultsControllerDelegate 268 9.4 小結 271 9.5 挑戰題 271 第10章 表視圖II:高級話題 273 10.1 自定義表視圖單元格 273 10.2 表格段和排序 276 10.2.1 表格段的表頭 277 10.2.2 允許表格段的分組方式發生變化 279 10.3 添加索引 283 10.4 搜索表格 286 10.5 小結 294 10.6 挑戰題 295 第11章 導航控制器II:拆分視圖和iPad 297 11.1 拆分視圖控制器 297 11.2 添加拆分視圖控制器 299 11.2.1 添加拆分視圖控制器 301 11.2.2 添加各部分之間的導航 304 11.3 添加About視圖 306 11.3.1 創建MainMenuView Controller 306 11.3.2 美化菜單圖片 308 11.4 在縱向屏幕中訪問菜單 310 11.5 添加汽車圖片 318 11.6 新增Cars 320 11.6.1 使汽車表格適應iPad 322 11.6.2 汽車詳情控制器 324 11.6.3 汽車詳情控制器:iPad專屬 326 11.7 小結 340 11.8 挑戰題 341 第12章 觸摸基礎 343 12.1 手勢識別基礎 343 12.2 在汽車之間輕掃移動 344 12.2.1 在汽車之間移動 344 12.2.2 調用nextOrPrevious Car: 347 12.2.3 添加動作選擇器 348 12.2.4 添加輕掃手勢 350 12.2.5 阻止識別器工作 351 12.3 自定義識別器 352 12.3.1 識別器的狀態 352 12.3.2 指定的識別器消息 354 12.4 iPad返回Home頁 354 12.4.1 創建返回手勢識別器 355 12.4.2 將手勢識別器添加到當前的詳情視圖 357 12.4.3 創建并響應手勢識別器 358 12.5 再添加一個手勢 359 12.5.1 拖動手勢識別器 359 12.5.2 添加支持拖動的出租車視圖 360 12.6 小結 361 12.7 挑戰題 361 第13章 Block介紹 363 13.1 Block基礎 363 13.1.1 聲明Block 363 13.1.2 使用Block 364 13.1.3 編寫Block 364 13.2 變量的作用域 369 13.3 替換協議 371 13.3.1 步驟(1):修改ViewCarTable ViewController 371 13.3.2 步驟(2):更新CarTable ViewController 372 13.3.3 步驟(3):修改CarDetail ViewController 373 13.3.4 步驟(4):更新MainMenu ViewController 373 13.4 小結 374 13.5 挑戰題 374 第14章 Instruments和調試 375 14.1 Instruments 375 14.1.1 模板和儀器 377 14.1.2 使用Time Profiler的示例 378 14.1.3 關于儀器的最后一句話 382 14.2 調試器 383 14.2.1 調試儀表:微型Instruments 384 14.2.2 斷點、動作、代碼 386 14.3 Bug搜尋:Instruments和調試器 387 14.3.1 從Zombies開始 388 14.3.2 轉移到調試器 390 14.4 小結 391 14.5 挑戰題 392 第15章 部署應用程序 393 15.1 證書、概要和應用程序 393 15.1.1 生成開發證書和profile 395 15.1.2 應用程序ID和provisioning 397 15.2 預發行 403 15.2.1 bug報告 403 15.2.2 度量 404 15.2.3 質量保證測試 405 15.2.4 市場營銷 408 15.3 上傳和發行 409 15.3.1 軟件詳情 410 15.3.2 上傳到App Store 414 15.3.3 在發布之后需要注意的事情 418 15.4 下一步去哪兒 419 15.4.1 網頁 420 15.4.2 開發者小組與會議 420 15.4.3 其他社交媒體 421 15.5 小結 422 15.6 挑戰題 422 對于iOS 7開發新手來說,本書是完美起步。通過學習本書,可為iOS開發奠定堅實基礎,書中涵蓋對Objective-C語言的介紹、Xcode開發工具、用戶界面開發的最佳實踐,以及針對應用開發和部署等各個方面的最佳實踐。
在整本書中,你將隨著創建和擴展一個簡易的代客泊車應用程序來探索iOS開發過程。這個動手實踐項目幫助你盡快創建有意義的代碼,建立自信并掌握知識。帶注釋的代碼清單使用的都是最新的iOS技術,使你為進入激動人心的開發領域做好充分準備。 “移動互聯網是未來”是近來越來越常聽到的短語。提到移動互聯網時,沒有什么設備比得過蘋果公司的用戶友好性更好。
若你想要將iOS開發作為自己的技能集合的技能之一,需要從何處開始呢?需要以及選擇哪些資源呢?這取決于你的學習方式。本書涵蓋的為實際操作的內容,目的是讓你盡可能快地操作。首先以小事情起步,然后會基于你已知的內容,進一步積累知識。 結果就形成了這樣一本書,它用一種易于消化的格式向你傳授編寫應用程序所需的技能。你可以按照自己喜歡的速度來學習,快慢都行。當正在創建應用程序時,可以回頭翻閱本書的特定部分,溫習相關知識。 那么,請找個舒適的位置,將Mac和iOS設備放置身旁,開始深入鉆研! 本書學習前提 在進一步學習iOS開發之前,你需要: ? 一臺Mac電腦——運行當前或上一版本Mac OS操作系統的現代Mac電腦——當本書寫作時,最新的版本是Mac OX Mountain Lion (v.10.8),Mavericks即將推出(本書未采用)。Mountain Lion之前的版本是Mac OS X Lion (v.10.7)。最理想情況是,你的Mac電腦使用最新版本的OS,擁有至少8GB的RAM,以及大量磁盤空間。 ? 一臺iOS設備——盡管Xcode包含能用于開發應用程序的桌面模擬器,但你仍需要在實際設備上運行應用程序以確保它能正確運行。使用目標客戶可能使用的設備型號,有助于確保應用程序能夠在這些設備上良好地運行。 ? 確保Internet連入——下載與開發相關的資源。某些時候,可能還需要測試應用程序的無線功能。而且當然,你會想要向App Store提交你的應用。 ? 熟悉Objective-C——你需要使用Objective-C來創建面向iOS的本地應用程序。Objective-C語言基于ANSI C,帶有面向對象的擴展,這意味著你還需要了解一些C語言的知識。如果曾使用Java或C++語言進行編程,并且熟悉C語言,你會發現使用Objective-C非常簡單。在第2章“Objective-C新手訓練營”中,對Objective-C語言進行了簡短介紹,但更清晰的理解會有助于你更快地學習。 你還需要Xcode,這是開發工具,以及蘋果開發者賬號,這會在第1章“初識iOS SDK”中介紹。 iOS開發路線圖 一本書并不能滿足每個人的所有需求。盡管我們可以嘗試,但是如果我們將你所需了解的所有知識都打包到這本書中,你也不可能全部掌握。確實,針對Mac和iOS平臺進行開發需要你了解很多知識。如果剛剛起步,并且沒有任何編程經驗,你的第一步行動應是選修一門大學級別的C語言編程課程。 在了解C語言以及如何使用編譯器(在基本的C語言課程中會學到)后,接下來的部分應該很簡單。基于這些,你可以立即開展對Objective-C的學習,并且探索如何使用它并依靠Cocoa框架來編程。圖P-1所示的流程圖展示了Pearson Education出版的一些關鍵書目,能向你提供成為熟練iOS開發者所需的訓練。 圖P-1 iOS開發路線圖 在了解C語言之后,學習Objective-C語言編程有多個途徑。如果想獲得對這門語言的深入理解,可以閱讀蘋果公司的文檔,或者挑選以下書籍中的一本: ? Objective-C Programming: The Big Nerd Ranch Guide by Aaron Hillegass (Big Nerd Ranch, 2012) ? Learning Objective-C: A Hands-on Guide to Objective-C for Mac and iOS Developers by Robert Clair (Addison-Wesley, 2011) ? Programming in Objective-C 2.0, fourth edition,by Stephen Kochan (Addison-Wesley, 2012) 有這門語言作為后盾,接下來就是學習Cocoa和開發者工具,也被稱作Xcode。對于這些知識,你有若干不同的選擇。你又一次可以參考關于Cocoa和Xcode的蘋果公司提供的文檔。請參閱Cocoa Fundamentals Guide(http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ CocoaFundamentals/CocoaFundamentals.pdf),初步學習Cocoa。對于Xcode,參見A Tour of Xcode (http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/A_Tour_of_ Xcode/ A_Tour_of_Xcode.pdf)。如果更喜歡書籍,也可以向最牛的人學習。Aaron Hillegass,亞特蘭大州的Big Nerd Ranch(www.bignerdranch.com)的創始人,是Objective-C Programming: The Big Nerd Ranch Guide一書第2版的合著者,也是很快要出第4版的Cocoa Programming for Mac OS一書的作者。Aaron所著的書在Mac開發者圈子評價很高,并且是你在cocoa-dev郵件列表中可以看到的推薦書目。至于Xcode的更多知識,在學完Sams Publishing出版,由Firiz Anderson所著的Xcode 4 Unleashed后,你就已經學得足夠深入了。 注意: 市面上有很多其他出版商出版的其他書籍,包括最暢銷的Beginning iPhone 4 Development,該書由Dave Mark、Jack Nutting和Jeff LaMarche所著(Apress,2011)。如果完全是編程新手,另外一本值得挑選的書是Beginning Mac Programming,由Tim Isted所著(Pragmatic Programmers, 2011)。不要將自己限制于一本書或一家出版商。正如你通過與不同的開發者交談可以學到很多東西,你可以從市場上別的書籍中學到很多技巧和竅門。 要想真正掌握iOS開發,你需要查看很多信息來源:書籍、博客、郵件列表、蘋果公司的文檔,以及所有這些當中最好的一種——會議。如果得到了參加WWDC(蘋果公司的Worldwide Developer Conference,世界開發者大會)的機會,你會了解我們所說的是什么。你在會議上與別的開發者交談所花費的時間,以及在WWDC的案例中與蘋果工程師交流的時間,是特別值得的,如果你是個認真的開發者的話。 本書組織結構 這本書的目標是使你能夠針對iOS手持設備和平板設備創建iOS應用程序。它假定你熟悉Objective-C語言但是對iOS開發一無所知(盡管第2章有新手訓練營,但是你會發現,如果對這門語言更加熟悉的話,從這本書中學習知識會更加輕松)。每一章會介紹一些新概念,并且如果合適的話,這些概念會基于你在前面章節所學的知識。 大多數章節除了它們的核心內容之外還涵蓋了額外的材料。額外的材料未必適合特定章節的要點,但是創建應用程序時很重要。額外的材料向你展示如何使用特定的UI元素,提供一些技巧與竅門,解釋代碼實踐,并且提供其他的有用信息。 以下是每一章的摘要: ? 第1章,“初識iOS SDK”——了解創建iOS應用程序時所用的工具、程序以及設備。你首先要安裝Xcode,并且還要了解蘋果開發者計劃以及如何報名。最后兩節在你設計應用程序時有用。其中第一節涵蓋了手持設備的限制在各種各樣的iOS技術中的體現,而最后一節介紹了型號之間的差異。 ? 第2章,“Objective-C新手訓練營”——Xcode項目是包含應用程序的代碼、資源和元信息的容器。在這一章,你將創建第一個項目。你還會得到對Objective-C—應用程序開發所用的語言——的一次快速復習。 ? 第3章,“故事板介紹”——應用程序的用戶能夠看到的只有界面。你可能用不可思議的代碼來實現應用程序的行為,但是用戶只能看到效果。在這一章,你要使用故事板,一種一次性看到應用程序的所有屏幕的方式,并開始創建應用程序界面。你要添加屏幕,并將它們連接到一起,并與代碼連接起來。你從這一章得到的這些技巧是創建iOS應用程序的核心部分。 ? 第4章,“自動布局”——迄今為止,iOS手持設備有兩種不同的屏幕尺寸,并且對于每種屏幕尺寸有兩種不同的屏幕方向。支持4種不同的屏幕會很有挑戰性。在這一章,你將學習并使用自動布局——蘋果公司的基于約束的布局引擎,以更簡單地支持多種屏幕尺寸。你甚至在屏幕旋轉時使用它來修改布局。 ? 第5章,“本地化”——iOS設備至少在155個國家有售。當學習這一章時,你將創建一個支持三種語言以及很多國家的應用程序。你將基于第4章構建應用程序,使用自動布局來為不同的本地化字符長度調整界面元素。你還要實現特定于語言和國家的日期與時間格式,還有從左向右和從右向左的書寫方向。 ? 第6章,“滾動”——在典型情況下,你想要顯示的信息可能會超過手持設備的屏幕大小。有時,最好的導航方式是在內容中滾動。從最簡單的用例開始,你使用自帶的滾動視圖UI元素,從簡單地讓屏幕彈跳,直到在多個元素中滾動。你可以添加拖動和縮放功能,并且基于滾動位置顯示元素編號。 ? 第7章,“導航控制器I:層次結構和標簽”——導航復雜信息可能非常有挑戰性,特別是在手機的相對較小的屏幕上。iOS提供了導航控制器來簡化這種工作。首先使用UINavigationController在信息層次結構中移動,然后使用更加先進的特性來提供進一步的定制。下一步,使用標簽欄在不同類型的信息之間移動,并且學習如何操作故事版外的視圖控制器。 ? 第8章,“表視圖I:基礎知識”——表視圖是iPhone和iPad應用程序的重要部分。在學習它們如何工作之后,你將創建汽車表格,然后實現元素的添加和刪除操作。你再深入一點,使用表格的一個變種來處理汽車詳細信息。做這件事時,你使用選擇器視圖來表示日期,使用協議在場景之間傳遞數據和狀態。 ? 第9章,“Core Data介紹”——Core Data實現了只需要做很少的工作即可使用完整的數據管理功能。在這一章,你將為應用程序創建Core Data模型,并且使用這些數據來表示汽車列表和汽車詳細信息。下一步,使用自帶的對象進一步簡化管理表視圖的工作。你還會學習將已有項目改為使用Core Data的辦法,并且你會更加熟悉常見的錯誤。 ? 第10章,“表視圖II:高級話題”——表視圖有一些高級特性可以讓應用程序錦上添花。在這一章中,你會實現不同的特性,包括自定義表單元、表格段、排序、內容索引以及搜索。你還將學習UISegmentedControl,調試的更多相關知識,以及使用#define的更好方法。 ? 第11章,“導航控制器II:拆分視圖和iPad”——iPad應用程序通常需要與iPhone應用程序不同的設計方式。在本章,你將創建一個通用的應用程序,即在iPhone和iPad上都能運行的應用程序。你將使用iPad專用的UISplitViewController構建單獨的界面。你將學習如何將iPhone視圖適配到iPad,以及如何選擇何時使用它們,何時創建新的東西。此外,你將實現單例,一種特殊的只能有一個實例的對象,你還將學習訪問器方法的用處,并且實現自定義轉場動畫。 ? 第12章,“觸摸基礎”——用戶所做的幾乎所有事情都涉及一根或多根手指的手勢。一些特性,如按鈕,很容易添加觸摸功能。其他控件需要更多工作。在這一章,你將學習手勢識別器的基礎知識,并且為汽車詳情視圖添加輕掃手勢。然后你將更加深入,創建自定義的手勢識別器。最后,你將添加一個可拖曳視圖。 ? 第13章,“Block介紹”——從為視圖添加動畫到錯誤響應器,代碼塊是使用系統調用的一種重要工具。你將學習如何創建和使用代碼塊,以及用它們為視圖增加脈動。你還會學習變量的作用域、只讀變量與可修改變量。最后,你將用代碼塊代替協議。 ? 第14章,“Instruments和調試”——應用程序開發中有兩個定律:最初的實現很少能像你所預期的那樣執行,并且總是會有bug。在這一章中,首先使用測量儀器修復性能問題,測量儀器是一種檢查性能、內存占用,以及應用程序中其他重要部分的工具。下一步,你將學習調試器中斷點的一些高級特性。然后,你將同時使用這兩種工具來解決最困難類型的bug。在這一章中,你還會學到一種發現和修復問題的過程,以及使用后臺任務的一種方式。 ? 第15章,“部署應用程序”——在最后一章,你會將應用程序從你的機器搬到App Store。首先,你將創建所需的任意一種開發者證書,以及應用程序安全證書。你將添加圖標和啟動畫面,然后學到對應用程序有用的額外功能,例如數據記錄和bug報告,還有一些主要供應商。在簡要地了解營銷之后,你將使App Store準備好接受應用程序,構建并上傳。本章以匯總繼續創建給力iOS應用程序所需的資源來結尾。 關于示例代碼 在學習本書的過程中,你將開發并改進代客泊車應用程序CarValet。CarValet應用程序被用作對你所學概念的實際實現。它并不是一個向大眾發布的應用程序,盡管它可以作為這樣一個應用程序的基礎。 任一涉及創建代碼的章節通常至少包含兩個項目:一個包含本書之前章節代碼的起始項目,以及一個包含在這一章中所做修改的完結項目。對于本書大部分內容,你可以使用自己的某一章的完整項目作為下一章的起點。有一些地方不是這樣的,在這些章節中會作出解釋。 除了最后的版本,示例代碼項目使用相同的唯一包標識符:com.mauricesharp.CarValet。于是,你無法在虛擬機中或設備上同時安裝多個版本的應用程序。如果想安裝多個版本,只需將唯一的字符串添加到標識符的后邊即可,例如com.mauricesharp.CarValet.CH05.portait。你將在第15章了解包標識符的重要性。 你所寫的所有代碼和所學的概念適用于iOS 7或更新的系統版本。在iOS 7可用的第一天末尾,超過35%的現存設備已經在使用,這是有史以來最快的采用速度。這個份額只會增加。iOS的采用速度通常很快,一般會在幾個月之內達到80%或更高。 獲得示例代碼 所有示例代碼都放到了GitHub上,網址為https://github.com/mauricesharp/Learning- iOS-Development。這些代碼按章節組織,大多數文件夾包含起點項目和完結項目。某些文件夾還包括中間步驟的項目,另一些項目還包含新的資源文件,比如圖片。例如,以下是第6章的文件夾: ? CH06 CarValet Starter——第5章的完結項目,不包含第6章的任何修改。可使用這個項目,也可以使用自己第5章的末尾項目,作為第6章添加代碼的起點。 ? CH06 CarValet Finished——包含第6章所有改動的項目。可使用這個項目作為應做修改的參考,或者作為下一章的起點。 ? CH06 Assets CarImages——一個額外的文件夾,包含本章中所做修改用到的圖片資源。 這些代碼會按需更新。如果看到有些地方需要修改,有遺漏,甚至是實現某些功能的更好辦法,盡管…… 貢獻! 示例代碼從來都不是固定的目標,而是隨著蘋果公司更新SDK以及Cocoa Touch庫而演變。參與進來吧。你可通過建議bug修復與更正來作貢獻,也可擴充所提供的代碼。GitHub允許你對倉庫打分支,用你自己的調整和特性來擴展代碼,并且可以在GitHub上使用Pull Request來將這些修改分享回主倉庫。如果想到新的點子或方法,請告訴我們。我們樂于采納對于示例代碼倉庫或本書下一版本的好建議。 獲取git 可以使用git版本控制系統來下載本書源代碼。git的OS X實現版本位于http://code.google.com/ p/git-osx-installer。OS X git實現同時包含命令行和GUI解決方案,可以四處搜尋最適合開發需要的版本。 還有些第三方的git工具——有些免費,有些收費。以下兩個最流行: ? SourceTree:一個免費的git hub客戶端工具,網址為www.sourcetree app.com。 ? Tower:一個付費的帶有華麗UI的客戶端,網址為www.git-tower.com。 訪問GitHub GitHub(http://github.com)是最大的git托管網站,包含超過150 000個公開倉庫。它既提供免費的公開項目托管服務,又為私有項目提供付費托管選項。擁有可定制的網頁界面,包含wiki托管和問題跟蹤功能,并且著重于項目開發者的社交網絡,是尋找新代碼以及合作開發現存代碼庫的好去處。可以在http://github.com上注冊免費賬戶。當這樣做時,可以復制并修改此書的源代碼倉庫,或者創建自己的開源iOS項目并與他人分享。 聯系作者 如果有關于本書的任何評論、問題或建議,請發Email給我,郵箱地址為learningios@ mauricesharp.com。 本書使用iOS 7和Xcode的開發者預覽版本編寫而成。一些不同版本也被用到,但大多數是使用DP(Developer Preview,開發者預覽版) 4。本書大部分內容都使用DP 6——正式版本發布之前的最后一個預覽版本——進行了檢驗,但是一些早期代碼仍然存在,特別是在CarValet示例代碼中。請檢查勘誤表中的更新。 現在閱讀這些頁面、寫代碼,并且完成挑戰題。最后,你將懂得如何為手持設備與平板設備創建iOS應用程序。 |