iOS 學習資料整理

Paul_King發表於2015-01-08

這份學習資料是為 iOS 初學者所準備的, 旨在幫助 iOS 初學者們快速找到適合自己的學習資料, 節省他們搜尋資料的時間, 使他們更好的規劃好自己的 iOS 學習路線, 更快的入門, 更準確的定位的目前所處的位置.

該文件會持續更新, 同時也歡迎更多具有豐富經驗的 iOS 開發者將自己的常用的一些工具, 學習資料, 學習心得等分享上來, 我將定期篩選合併, 文件尚有一些不完善之處, 也請不吝指出, 感謝您對 iOS 所做的貢獻, 讓我們一起把國內的 iOS 做得更好, 謝謝.

如果你想幫忙完善這份文件的話, 歡迎上 GitHub 發 PR: https://github.com/Aufree/trip-to-iOS

如果您有任何意見或建議也可以通過郵件微博聯絡我

視訊教程(英文)

視訊 簡介
Developing iOS 7 Apps for iPhone and iPad 史丹佛開放教程之一, 課程主要講解了一些 iOS 開發工具和 API 以及 iOS SDK 的使用, 屬於 iOS 基礎視訊
iPad and iPhone Application Development 該課程的講師 Paul Hegarty 是史丹佛大學軟體工程學教授, 視訊內容講解得深入, 權威, 深受好評
Advanced iPhone Development – Fall 2010 iOS 開發的進階課程, 開始涉及到 Core Animation, Core Data, OpenGL 等框架的應用
iOS Dev Center 蘋果官方提供的 iOS 學習視訊
Lynda Lynda 上面 iOS 和 Objective-C 的學習資料比較多, 從初級到高階的都有, 覆蓋面比較廣, 無論 iOS 走到哪個層次, 都可以在上面挑到適合自己的課程
Code School CodeSchool 上面的 iOS 不多, 不過質量都不錯, 一些課程也挺有趣的
Udemy Udemy 幫助初學者規劃了視訊學習路線, 從新手到高階分的比較詳細

視訊教程(中文)

視訊 簡介
iOS 7應用開發 史丹佛白鬍子老爺爺的系列視訊, 所有視訊皆完成翻譯, 視訊較新, 翻譯質量也很高
iPhone開發教程2010年冬 全部視訊翻譯完畢, 較為深入的講解 iPhone 開發, 視訊適合給有一定 Objective-C 基礎的人觀看
使用Swift開發iOS8 App實戰 慕課網的視訊, 主要講 Swift 的一些基本使用, 並在講解的過程中做了幾個小 APP, 最後還講了 Sketch 製作分享按鈕
征戰Objective-C 視訊還未完結, 講了一些 C 和 Objective-C 的基本語法, 適合零基礎的人觀看

書籍

書籍名稱 推薦理由
Objective-C Programming 內容不多, 卻都是精華, 有了一點 C 語言基礎可以快速閱讀此書, 大概一天時間就可以看完, 看完後對 iOS 開發能夠有個基本的印象, 該書的官方論壇有各個章節習題的解答.
iOS Programming 這本書在 Quora 上被評為 iOS 入門最佳書籍, 具體評價可見豆瓣下方該書籍的評論
Cocoa Design Patterns 適合打算深入瞭解 Cocoa 的人看
Learn Objective-C 短小精練, 適合有程式設計基礎的人在半小時內對 Objective-C 有個一定了解
Programming with Objective-C 看完 Learn Obj-C 可以接著看這個官方對 Objective-C 更為深入的介紹
Objective-C 基礎教程 該書作者 Scott Knaster 是 Mac 開發界的傳奇人物, 目前在 Google 出過多數書籍都廣受許多程式設計師好評, 此書適合從初級跳到中級的 iOS 開發者閱讀
iOS 開發進階 該書作者唐巧是國內 iOS 開發界的名人, 曾參與多個知名軟體的開發, 目前該書尚在預售中, 書本內容由淺入深, 將讀者一步一步引入到 iOS 中去, 同樣適合初級跳到中級的 iOS 開發者閱讀
Programming in Objective-C 這本書在亞馬遜上面深受歡迎, 有關 Objective-C 的東西講得非常詳細
iOS 測試指南 該書作者是豆瓣的員工, 書中寫的多數內容都是作者在平時的工作實踐當中提煉出來的測試經驗, 重點講述了各個測試階段的具體實踐方法, 並且通過持續整合串聯了各個測試階段的活動。
Objective-C程式設計之道 解析 iOS 的開山之作, 詳細介紹了 MVC 在 Cocoa Touch 上的運作過程, 該書適用於 iOS 中級開發者閱讀
Objective-C高階程式設計 本書主要介紹 iOS 與 OS X 多執行緒和記憶體管理, 深入破析了蘋果官方公佈的原始碼, 告訴你一些蘋果公司官方文件中不會出現的知識, 適合中級以上 iOS 開發人員閱讀
Effective Objective C 2.0 書裡寫了編寫高質量iOS與OS X程式碼的52個有效方法, 適合 iOS 開發的進階使用
Swift Fundamentals 估計將來這本書會成為 Swift 的經典入門書籍, 它的 Stars 數說明了一切
The Swift Programming Language 中文版 90 後開發者樑傑組織翻譯的 Swift 程式語言中文版

部落格

部落格地址 博主資訊
OneV`s Den 王巍(喵神), 現居日本, 就職於 LINE, 知名 iOS 開發者, 寫的文章大多深入淺出, 內容廣泛, 目前在維護的 Swifter 也值得收藏
唐巧的技術部落格 唐巧, 國內知名 iOS 開發者, 現就職於猿題庫, 部落格推出的 iOS 移動開發週報很受歡迎, 更新頻繁
txx`s blog 90 後 iOS 開發者, 人稱蝦神, 文章內容講解大多淺白易懂, 很值得看
破船之家 博主也是 iOS 大神一個, 經常更新一些 iOS 教程, 文章的質量都很高, 非常值得看
NSHipster NSHipster 的中文網站, 主要對 NSHipster 的英文網站進行翻譯, 博文出自 Mattt 大神之手, 文章大都寫得很深入, 詳細, 每週一更
Limboy 無網不剩 李忠, 知乎前員工, 目前在負責花瓣 iOS 開發, 不少文章裡面有介紹博主個人的學習方法, 讓讀者在學到技術的同時也掌握學習的技巧
念茜的部落格 iOS 圈的女神人物, 寫的關於安全問題的文章都值得一看, 由於新部落格剛開通不久, 目前文章較少, 可以去看下她以前的部落格
iOS技術週報 吳發偉, 天貓資深軟體開發工程師, iOS 技術週報每週一更, 推送一些 iOS 技巧, 程式碼庫, 設計等資訊.
iWangKe.me 王軻, IndieBros Studio 創始人, 優秀的 iOS 開發工程師, 寫的文章深入淺出, 很多問題分析透徹, 非常有條理性
葉孤城 葉孤城, 優秀 iOS 開發工程師, 發表的文章都有很多幹貨, 對原始碼解析類文章寫得淺顯易懂, 並時常總結一些 iOS 開發技巧, 值得一讀
Kevin Blog 周楷雯, 秒視創始人, 知名 iOS 工程師, 做出了 PNChartWaver 這樣的好專案, 在部落格中也有談到具體的實現過程
IMTX 圖拉鼎, 知名 Apple 平臺開發者, 曾經的 Ubuntu 平臺開發者, 文章有不少乾貨, 大多講解技術實現和學習經驗
更多 唐巧收集的中文 iOS/Mac 開發部落格列表, 更新頻繁, 值得收藏

文章

標題 內容簡介
Learn Objective C: The Path to iPhone Development Udemy 寫的文章, 說明了一些學習 Objective-C 的前提條件, Objective-C 的發展歷史, 學習方法以及學習資源
I Want to Write iOS Apps. Where Do I Start? 主要對 iOS 的開發環境進行了介紹, 並且涉及到了 Swift 的學習, iOS 上架的注意事項, iOS 的設計, 測試, 程式碼託管等, 講解較為廣泛, 同時也給出不少學習資源
How to become a professional iOS developer 文章寫的很有條理, 文中多次強調了版本控制系統的重要性, 主要內容是對學習 iOS 開發到就職, 給出了自己的建議
Learning iOS Programming 作者總結了一些自己學習 iOS 的血的教訓, 最後給出了一些不錯學習建議
Become an iOS Developer 作者列舉了一些學習 iOS 的方法以及常用的庫, 以及自學 iOS 的一些建議
iOS開發如何提高 唐巧寫的一篇文章, 主要是對 iOS 技術的提高做的一個總結, 文中不少資源, 工具, 學習方法
自學 iOS 開發的一些經驗 文章從入門到進階到高階, 分為三個階段, 有條理的講出了 iOS 的整個學習過程中開發者可能遇到的問題, 並給出瞭解決辦法, 奉獻了不少好工具, 資源還有珍貴的學習經驗
如何從 0 開始學 iOS 開發 作者給出了學習 iOS 的流程, 並給出一些不錯的學習資源
如果我可以重新學習iOS開發 作者在文中給出了學習的一些建議, 也談到了自己的學習方法
iOS開發學習路徑的一些建議 文中談到了英語的重要性, 以及寫部落格, 看原始碼的好處
iOS 開發入門 作者分享了自己學習 iOS 的經驗和資源
Mac 和 iOS 開發資源彙總 破船之家釋出的資源彙總

相關網站

網站 簡介
tutsplus 不定時更新一些 iOS 教程
WWDC 蘋果官方每年一度的 WWDC 視訊, 可以瞭解歷年有關 iOS 釋出的內容
ASCIIwwdc WWDC 的文字版
Awesome Swift 該網站收集了很多關於 Swift 的學習資料, 新聞
Appcoda 經常釋出一些 iOS 程式設計教程, 更新比較頻繁, 想了解更多可以檢視該網站的 About 介面
NSHipster NSHipster is a journal of the overlooked bits in Objective-C, Swift, and Cocoa. Updated weekly.
Think and Build Some tutorials about Core Graphic and Core Animation.
Tutorials 大把的 Objective-C, Swift, iOS 教程, 且全部免費, Raywenderlich 真是業界良心, 贊!

社群

社群 簡介
CocoaChina 全球最大蘋果開發者中文社群
code4app 經常更新一些很不錯的 iOS 程式碼片段和一些 iOS 資源
objc 定期釋出一些有關 Objective-C 的高質量的文章
objc中國 喵神組織的對 objc.io 的翻譯網站, 旨在推進國內技術圈整體水平, 翻譯質量非常高
DevDiv 釋出一些 iOS 的最新資訊及教程
Cocos2d-x Cocos2d-x 論壇
iPhone Dev SDK 國外較有名的 iOS 開發者論壇
Learn Cocoa and iOS Development Forum Learn Cocoa on the MacBeginning iOS 7 Development 這兩本書籍的官方論壇, 使用者活躍度較高
Apple Developer Forums 蘋果官方的開發者論壇
Swiftist Swift 中文社群

工具/外掛

工具/外掛 簡介
CocoaPods 開發 OS X 和 iOS 應用程式的一個第三方庫的依賴管理工具, 本身是 Ruby 的一個 gem, 極大的簡化了 Objective-C 的開發流程
Alcatraz Alcatraz 是一款管理 Xcode 外掛、模版以及顏色配置的工具
XcodeColors 使 Xcode 除錯控制檯色彩更豐富
xctool Facebook 開源的一個 iOS 編譯和測試的工具
XToDo 一款註釋輔助外掛,主要用於收集並列出專案中的TODO, FIXME, ???, !!!
KSImageNamed-Xcode 自動補全圖片命名的一款外掛
VVDocumenter 一個自動生成程式碼註釋的工具
ImageOptim 用於壓縮圖片一款工具
iOS 必備的 75 個工具 其中包含了非常多好用的工具, 涉及到設計, 分析, 部署等, 總結的十分詳細, 有中文翻譯
更多 唐巧總結的一些圖形應用工具, 命令列工具, Xcode 外掛, 並介紹了一點基礎的用法

GitHub Top 50 簡介

主要對當前 GitHub 排名前 50 的專案做一個簡單的簡介, 方便初學者快速瞭解到當前 Objective-C 在 GitHub 的情況.

專案名稱 專案資訊
1. AFNetworking 作者是 NSHipster 的博主, iOS 開發界的大神級人物, 畢業於卡內基·梅隆大學, 開源了許多牛逼的專案, 這個便是其中之一, AFNetworking 採用 NSURLConnection + NSOperation, 主要方便與服務端 API 進行資料交換, 操作簡單, 功能強大, 現在許多人都用它取代 ASIHTTPRequest
2. GPUImage 一款強大的圖片濾鏡工具, 支援自定義濾鏡, 可用來實時處理圖片和視訊流, 作者是 SonoPlot 公司的 CTO, 在很小的時候便開始接觸程式設計, 他在 SO 上面的回答也有很多值得閱讀, GPUImage 這個專案從 2012 年開始, 使用 OpenGL 圖形程式介面編寫, 效能非常好, 現在很多 iOS 程式設計師都用它來實現 iOS 的模糊效果
3. three20 由 Facebook iOS 客戶端衍生出的一款 iPhone 框架, 內建許多豐富的功能, 有豐富的介面, 對底層的操作便捷, 為開發者省下了很多時間, 但現在已經停止了更新, 一個 PR 把程式碼刪得乾乾淨淨, 不要好奇去點開 Files changed, 我點開後該頁面直接卡死, three20 當中的一位作者建立了 Nimbus, 算是 three20 的一個替代品
4. RestKit 主要用於 iOS 上網路通訊, 允許與 RESTful Web 服務互動, 常用於處理 API, 解析 JSON, 對映響應物件等操作, 簡單易用, 方便你把所有精力都放在對資料的操作上
5. SDWebImage 作者 Olivier Poitrey 是 Dailymotion 的 CTO, 擁有多個不錯的開源專案, 此專案常用於對從 Web 端接受到的圖片進行快取, 是 UIImageView 的擴充套件, 應用起來比較簡單
6. ReactiveCocoa 由 GitHub 工程師們開發的一個應用於 iOS 和 OS X 開發的函式響應式程式設計新框架, Matt 稱其為 “An open source project that exemplifies this brave new era for Objective-C”, 也有人說它是 Cocoa 的未來, 具體可看唐巧寫的這篇文章
7. MBProgressHUD 作者 Matej Bukovinski 是一位全棧工程師, UI/UX 設計師, 此專案是一款提示框第三方庫, 幫助開發者快速應用到專案中)
8. MagicalRecord 作者是 Coursera 的 iOS 工程師, 該專案創作靈感來自於 Ruby on Rails 的 Active Record, 主要為方便操作 CoreData 而生, 幫助清除 CoreData 引用的程式碼, 協助方便 CoreData 的工作
9. FMDB 一個對 SQLite 進行封裝的庫, 使用起來方便, 簡單
10. ASIHTTPRequest 一個輕量級的 iOS 網路通訊類庫, 基於 CFNetwork 框架開發, 但現在已經停止更新, 多數開發者改用 AFNetworking 替代)
11. Mantle 作者是 GitHub 的員工, 文件寫的很清楚: Mantle makes it easy to write a simple model layer for your Cocoa or Cocoa Touch application, 主要用來將 JSON 資料模型化為 Model 物件, 唱吧在前段時間也改用 Mantle 了.
12. FlatUIKit 收集了很多扁平化 UI 的 iOS 元件, 方便使用
13. Facebook SDK for iOS Facebook 官方的 iOS SDK, 方便開發者整合 Facebook 的一些功能到自己的 iOS APP 裡面
14. JSONKit 主要用於解析 JSON, 適用於 iOS6 以下環境, 自從 iOS5 開始 Apple 官方給出了 NSJSONSerialization API, 自此大家都用官方的了
15. Slate 一款視窗管理應用程式, 但在兩年前就已經停止更新了
16. Nimbus 作者 Jeff 曾為 Facebook, Google 做過不少好東西, 也是 three20 的成員之一, three20 停更後, 他創造出這個框架來代替 three20, 文件齊全
17. FastImageCache Path 公司出品的 iOS 庫, 作者 Mallory Paine 是蘋果前員工, 此類庫適用於在滾動時快速顯示影像, 高速持久是其最大的特點
18. SVProgressHUD 又一款輕量級的 iOS 第三方控制元件, 用於顯示任務載入時的動畫, 非常輕便, 容易使用
19. Shimmer Facebook 推出的一款具有閃爍效果的第三方控制元件, 供它旗下一款名為 Paper 的應用使用, 安裝使用整個過程都十分簡單
20. CocoaLumberjack 這是 Mac 和 iOS 的一款強大的日誌框架, 配置簡單, 多執行緒, 提供更高階的 log 功能, 可用於代替預設的 NSLog 語句
21. ViewDeck 一款開源的 iOS 活動皮膚元件, 還原 Path 2.0 的側滑效果, 作者因為時間關係在兩年前停止對其更新
22. Alcatraz Alcatraz 是一款管理 Xcode 外掛、模版以及顏色配置的工具, 可以整合到 Xcode 的圖形介面中, 安裝刪除都是幾條命令的事, 很方便, 支援自己開發外掛並上傳
23. OpenEmu 超強的遊戲模擬器, 做遊戲開發必備, 官網做得也很不錯
24. AsyncDisplayKit Facebook 開源的一款 iOS UI 框架, Paper 用的就是該框架, 另外框架還用到了 Facebook 早期開源 Pop 動畫引擎
25. Xctool 是 Facebook 開源的一個命令列工具,用來替代蘋果的 XcodeBuild 工具, 極大的方便了 iOS 的構建和測試, 輸出錯誤資訊也比較友好, 受到許多 iOS 開發者的稱讚, 經常與其搭配使用的還有 OCUnit, Travis CI, OCLint 等測試工具
26. iCarousel 作者是英國 Charcoal Design 公司的創始人, 開源領域的貢獻頗為卓著, 這個專案就是其中之一, 這是一款可以在 iOS 上實現旋轉木馬檢視切換效果的第三方控制元件, 並提供多種切換效果
27. FLEX 這是 Flipboard 官方釋出的一組專門用於 iOS 開發的應用內除錯工具, 開發者無需將其連線到 LLDB/Xcode 或其他遠端除錯伺服器,支援直接在 App 中執行
28. Cocos2D Swift 這是 Swift 語言版本的 Cocos2D 遊戲開發引擎, 核心開發者是 Ricardo Quesada, 已經為該專案貢獻了 100W 行左右程式碼, GitHub 上更新較為頻繁
29. TapkuLibrary 作者是 Devin Ross, 這是在 iOS 上一款功能強大的 UI 效果類庫, 可以實現多種酷炫的效果, 目前仍在更新中
30. Masonry 一個輕量級的佈局框架, 同時支援 iOS 和 Mac OS X, 語法優雅, 幫助開發者快速適配不同解析度的 iOS 裝置
31. AwesomeMenu 作者是一位中國人, 該專案主要是使用 CoreAnimation 還原了 Path menu 的動畫效果
32. PonyDebugger 由 Square 公司推出的一款優秀的 iOS 應用網路除錯工具, 使用者可以實時看到應用程式的網路請求, 也可以對 iOS 應用程式的核心資料棧進行遠端除錯
33. NewsBlur 作者獨自一個人 Samuel Clay 做出來的一款名為 NewsBlur 的新聞閱讀器, 很多人都稱其為 Google Reader 的替代品, 這是它的原始碼
34. JVFloatLabeledTextField 作者是 Thumb Labs 的聯合創始人, JVFloatLabeledTextField 是 UITextField 的子類, 主要實現輸入框標籤浮動效果, 創作靈感來自 Dribbble, 已出現多個移植版本
35. Json Framework 用於解析 JSON 資料的一個框架, 但是在 iOS5 以上版本大多數人都選擇使用 NSJSONSerialization 來解析 JSON, 該專案現在在 GitHub 上也幾乎沒怎麼更新了
36. The Physical Web 由 Chrome 團隊主導的一個專案, 意在用 URL 連線世界, 方便使用者接受資料, 目前尚處在實驗階段
37. Reachability Reachablity 是用於檢測 iOS 裝置網路環境的庫
38. RESideMenu 作者 Roman Efimov 是雅虎的 iOS 工程師, 這個專案實現了 iOS 上的選單側滑效果, 創意來源於 dribbble, 該專案支援 iOS8
39. CocoaAsyncSocket 一個功能強大、簡單易用的非同步 socket 通訊類庫, 支援 TCP 和 UDP 協議, 可用於 Mac 和 iOS 裝置上, 作者 Robbie Hanson 是 Deusty 的首席軟體工程師
40. ECSlidingViewController 一個檢視控制器容器, 將子檢視處理成兩層, 通過滑動來處理層的切換, 創作靈感來自 Facebook 和 Path的 APP, 作者是 Cleveland 的員工
41. SWTableViewCell UITableViewCell 的子類, 實現了左右滑動顯示資訊檢視並調出按鈕
42. TTTAttributedLabel UILabel 的替代品, 使 iOS 上的 Label 功能更加豐富, 可支援連結植入等功能
43. Canvas 無需編碼實現牛逼的動畫效果的庫, 連設計師都可以快速上手
44. SocketRocket Square 公司開源的一個 WebSocket 客戶端, 穩定並且易用, 做實時應用常會用到, 受廣大開發者喜愛
45. Tweaks Facebook 開源的一款工具, 旨在幫助 iOS 開發者更快的迭代應用, 方便使用者動態的調整引數, 是的, Paper 這個專案也用到了
46. JSQMessagesViewController 優雅的 iOS 訊息類庫, 常用於聊天應用中, 可定製性高
47. PNChart 作者周楷雯是 90 後, 秒視的創始人, 該專案是一個帶動畫效果的圖表控制元件, 簡約易用, 受到不少開發者喜愛
48. VVDocumenter-Xcode 作者是王巍國內著名的 iOS 開發者, 人稱喵神, 目前在日本 LINE 公司工作, 該專案幫助開發者輕鬆的生成註釋文件, 節省了不少工作量, 贊
49. Appirater 一款用於提醒使用者給你的 APP 打分的工具
50. BlocksKit 一個開源的與 Cocoa 緊密集合的基礎性框架

郵件訂閱

  • iOS Dev Weekly (每週一期,內容多為這一星期裡值得關注的 GitHub 專案、文章、工具等)
  • iOS Design Weekly (Tips, news and inspiration delivered each week)

文件

指南/教程

網址 簡介
App Store Review Guidelines iOS 應用商店稽核指南, 有中文翻譯版
Swift 語言指南 有很多豐富的 Swift 學習資料, 學習 Swift 有這份資料可以省下很多力氣
蘋果 Xcode 幫助文件閱讀指南 Tinyfool 推出的一篇對於幫助新手閱讀官方文件的指南
Get started with your iOS developer pragram 蘋果寫的一篇入門指南, 粗略講解了 iOS 程式從開發到上架的整個流程
Teamtreehouse 文章主要講解 Objective-C 的一些語法, 文章內容有趣且通俗易懂
A map for iOS development 一張 iOS 開發地圖, 做得很贊, 看完對 iOS 開發流程有一定的認知
Start Developing iOS Apps Today 蘋果官方給出的 iOS 入門教程, 看過之後能夠做一個 To-Do 小程式
Ry’s Objective-C Tutorial 講解 Objective-C 的教程, 圖文並茂, 適合新手閱讀

Awesome 系列

知乎上的討論

Quora 上的討論

貢獻者

點選該連結檢視該專案的所有貢獻者

License

以上內容採用 CC BY-NC-SA 3.0 進行許可, 轉載請註明出處, 版權歸本人及所有貢獻者所有

GitHub 地址: https://github.com/Aufree/trip-to-iOS
未來我會在微博不定時推送一些較新的第三方的庫的使用, 歡迎關注 ?

相關文章