標籤:
1零基礎小白如何進行 iOS 系統學習首先,學習目標要明確;其次,有了目標,要培養興趣,經常給自己一些正面的反饋,比如對自己的進步進行鼓勵,在前期小步快走;再次,學技術最重要的一點就是多動手。推薦書目:《Objective-C 基礎教程》《iOS 編程》 《iOS 開發指南》推薦兩個開源的 APP:SegmentFault、懶人筆記2基礎入門後,如何進行進階進階2.1 原理和基礎:掌握紮實的原理和基礎是進階的必要條件首先是語言。入門時候可能只要對語言看得懂,會寫即可。但是在進階階段,看懂會寫是遠遠不夠的。這個時候,編碼規範就很重要,我們不能隨心所欲的寫,推薦書目《Effective Objective-C2.0》。除此之外,我們還需熟練掌握Objective-C Runtime。我推薦的素材有http://opensource.apple.com/source/objc4/ ,這門語言比較好的是它開源,所以我們可以去看它的源碼。第二是蘋果的這篇文檔:Objective-C Runtime Programming Guide ,我們可以仔細去閱讀。從我自身經曆來看,對 Objc_msgSend 實現細節的理解程度很大程度上反映了我們對 Objective-C Runtime的掌握程度。再推薦大家一篇文檔 The Swift Programming Language ,蘋果官方的文檔,大家可以反反覆複去看。2.2 iOS GUI 學習我聽到有些人說 GUI 學習太簡單了,我隨便看看能刷幾個頁面就可。還會有這樣一種說法,GUI 的代碼太難看了。我個人十分重視 GUI,我認為這是真正挑戰的地方,因為這能真正反映我們的熟練程度,是否真正懂得其背後的設計原理。 APP Guide:l View Programming guidel View Controller Programming Guidel Event Handling Guidel Drawing and Printing Guidel Core Animation Programming Guide2.3 Xcode學習工欲善其事,必先利其器。在我看來,Xcode 就是這個器,因此需要十分重視。Apple Guide:| Xcode Overview| Xcode Project Management Guide 關於 Xcode 的流程,我們需要清晰的知道 Xcode 編譯、連結、打包的流程,配置和 Xcodeconfig的操作。另外,還需知道 Xcode 管理多工程、多 Target。還需熟練使用 cocoapods、plugin。當然,IIvm 調試工具也是必不可少的。2.4 網路理解 NSUPLConnection、NSURLSession、NSURLProtocolApple Guide:| URL Loading System Programming Guide| Introduction to CFNetwork Programming Guide2.5 多線程推薦書目《Objective-C 進階編程 iOS 與OS X多線程和記憶體管理》,這本書的特點是透徹,全面。Apple Guide:| Concurrency Programming Guide| Threading Programming Guide2.6 逆向安全(瞭解層面)《iOS 應用逆向工程》對我們去瞭解逆向這些事情和應用的保護是很有協助的。Apple Guide:| Keychain Services Programming Guide2.7 學習資源| WWDC Session| Objc.io此外,優秀的開源庫也值得我們學習,如:| SDWebImage| AFNetworking/Restkit| Facebook的三個庫:AsyncDisplayKit / POP / ReactNative| ReactiveCocoa3iOS 能力清單3.1 GUI自訂 UI、熟悉 UI 渲染機制掌握基本排版機制,掌握 AutoLayout熟悉事件傳遞機制,自訂手勢掌握基本動畫,動畫原理3.2 Controller熟悉基本 ViewController 使用、transition熟悉 MVC 等設計模式3.3 熟悉常見網路程式庫使用熟悉 NSURLConnection, NSURLSession, NSURLProtocol, AFNetworking, 熟悉 Cache, cookie 管理3.4 熟悉 Sqlite 使用,熟悉常見 ORM 系統設計和實現,熟悉系統常用本機存放區機制熟悉 CoreData, sqlite, UserDefault3.5 熟悉多線程訊息傳遞,同步機制,線程池設計和實現掌握NSOperation、GCD 、Runloop 機制和實現3.6 熟悉音頻、視頻基本概念,熟悉相關係統介面熟悉拍照、錄影等相關介面3.7 程式設計語言熟悉 C/C++、Objective-C、Swift3.8 效能優調熟悉移動端常見效能問題和解決方案:主線程 CPU 密集操作,主線程 IO 操作,排版、渲染耗時網路效能分析和調優 (《Web效能權威指南》)熟練使用Instrument進行效能調優3.9 安全熟悉常見 iOS 應用安全機制(keychain,codesign),熟悉常見應用資料保護機制熟悉常見加解密演算法熟悉 iOS 逆向與安全4走向專家的知識體系內功而非招式,更看重基礎的掌握。所以,我們需要加強自身實際的能力,主要包括:l 數學基礎l 作業系統l 程式的編譯上,連結與載入,推薦《程式員的自我修養》l ARM體系架構,推薦ARM體繫結構與編程》l 學習多範式的程式設計語言l 設計模式l 電腦網路l 資料庫5企業需要怎樣的 iOS 人才| 大公司更看重基礎,成長性| 技術熱情| 系統學習的能力| 聽說能力| 敢於承擔、敢於挑戰
這可能是最詳細的 iOS 學習入門指南(含書目/文檔/學習資料)