這份學習資料是為 iOS 初學者所准備的, 旨在幫助 iOS 初學者們快速找到適合自己的學習資料, 節省他們搜索資料的時間, 使他們更好的規劃好自己的 iOS 學習路線, 更快的入門, 更准確的定位的目前所處的位置.
該文檔會持續更新, 同時也歡迎更多具有豐富經驗的 iOS 開發者將自己的常用的一些工具, 學習資料, 學習心得等分享上來, 我將定期篩選合並, 文檔尚有一些不完善之處, 也請不吝指出, 感謝您對 iOS 所做的貢獻, 讓我們一起把國內的 iOS 做得更好, 謝謝.
如果您有任何意見也可以通過郵件或微博聯系我
該文檔托管在 GitHub 上, 項目地址: https://github.com/Aufree/trip-to-iOS
TODO
, FIXME
, ???
, !!!
KSImageNamed-Xcode自動補全圖片命名的一款插件VVDocumenter一個自動生成代碼注釋的工具ImageOptim用於壓縮圖片一款工具iOS 必備的 75 個工具其中包含了非常多好用的工具, 涉及到設計, 分析, 部署等, 總結的十分詳細, 有中文翻譯更多唐巧總結的一些圖形應用工具, 命令行工具, Xcode 插件, 並介紹了一點基礎的用法主要對當前 GitHub 排名前 50 的項目做一個簡單的簡介, 方便初學者快速了解到當前 Objective-C 在 GitHub 的情況.
項目名稱項目信息1. AFNetworking作者是 NSHipster 的博主, iOS 開發界的大神級人物, 畢業於卡內基·梅隆大學, 開源了許多牛逼的項目, 這個便是其中之一, AFNetworking 采用 NSURLConnection + NSOperation, 主要方便與服務端 API 進行數據交換, 操作簡單, 功能強大, 現在許多人都用它取代 ASIHTTPRequest2. 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 iOSFacebook 官方的 iOS SDK, 方便開發者集成 Facebook 的一些功能到自己的 iOS APP 裡面14. JSONKit主要用於解析 JSON, 適用於 iOS6 以下環境, 自從 iOS5 開始 Apple 官方給出了 NSJSONSerialization API, 自此大家都用官方的了15. Slate一款窗口管理應用程序, 但在兩年前就已經停止更新了16. Nimbus作者 Jeff 曾為 Facebook, Google 做過不少好東西, 也是 three20 的成員之一, three20 停更後, 他創造出這個框架來代替 three20, 文檔齊全17. FastImageCachePath 公司出品的 iOS 庫, 作者 Mallory Paine 是蘋果前員工, 此類庫適用於在滾動時快速顯示圖像, 高速持久是其最大的特點18. SVProgressHUD又一款輕量級的 iOS 第三方控件, 用於顯示任務加載時的動畫, 非常輕便, 容易使用19. ShimmerFacebook 推出的一款具有閃爍效果的第三方控件, 供它旗下一款名為 Paper 的應用使用, 安裝使用整個過程都十分簡單20. CocoaLumberjack這是 Mac 和 iOS 的一款強大的日志框架, 配置簡單, 多線程, 提供更高級的 log 功能, 可用於代替默認的 NSLog 語句21. ViewDeck一款開源的 iOS 活動面板組件, 還原 Path 2.0 的側滑效果, 作者因為時間關系在兩年前停止對其更新22. AlcatrazAlcatraz 是一款管理 Xcode 插件、模版以及顏色配置的工具, 可以集成到 Xcode 的圖形界面中, 安裝刪除都是幾條命令的事, 很方便, 支持自己開發插件並上傳23. OpenEmu超強的游戲模擬器, 做游戲開發必備, 官網做得也很不錯24. AsyncDisplayKitFacebook 開源的一款 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. ReachabilityReachablity 是用於檢測 iOS 設備網絡環境的庫38. RESideMenu作者 Roman Efimov 是雅虎的 iOS 工程師, 這個項目實現了 iOS 上的菜單側滑效果, 創意來源於 dribbble, 該項目支持 iOS839. CocoaAsyncSocket一個功能強大、簡單易用的異步 socket 通訊類庫, 支持 TCP 和 UDP 協議, 可用於 Mac 和 iOS 設備上, 作者 Robbie Hanson 是 Deusty 的首席軟件工程師40. ECSlidingViewController一個視圖控制器容器, 將子視圖處理成兩層, 通過滑動來處理層的切換, 創作靈感來自 Facebook 和 Path的 APP, 作者是 Cleveland 的員工41. SWTableViewCellUITableViewCell 的子類, 實現了左右滑動顯示信息視圖並調出按鈕42. TTTAttributedLabelUILabel 的替代品, 使 iOS 上的 Label 功能更加豐富, 可支持鏈接植入等功能43. Canvas無需編碼實現牛逼的動畫效果的庫, 連設計師都可以快速上手44. SocketRocketSquare 公司開源的一個 WebSocket 客戶端, 穩定並且易用, 做實時應用常會用到, 受廣大開發者喜愛45. TweaksFacebook 開源的一款工具, 旨在幫助 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)
iOS Developer Library (iOS 開發必看, 有此文檔足矣, 內容非常之詳細)
Awesome iOS
Awesome-Swift(1)
Awesome-Swift(2)
如何才能系統的學習 iOS 開發,理解一些規則和深層次的機制原理?
沒有 C 和 Objective-C 基礎如何快速學習 iOS 開發?
iOS 開發怎麼入門?
iOS 開發入門需要學習哪些知識,從一無所知到精通需要多長時間?
12 歲如何入門 iOS 編程?
GitHub 上都有哪些值得關注學習的 iOS 開源項目?
What are the best resources to learn iOS development?
What are the best new resources for learning iOS development in 2014?
點擊該鏈接查看該項目的所有貢獻者
以上內容采用 CC BY-NC-SA 3.0 進行許可, 轉載請注明出處, 版權歸本人及所有貢獻者所有