這可能是最詳細的 iOS 學習入門指南(含書目/文檔/學習資料)


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 guide
l  View Controller Programming Guide
l  Event Handling Guide
l  Drawing and Printing Guide
l  Core Animation Programming Guide

2.3 Xcode學習

工欲善其事,必先利其器。在我看來,Xcode 就是這個器,因此需要十分重視。

Apple Guide:
| Xcode Overview
| Xcode Project Management Guide
 
關於 Xcode 的流程,我們需要清晰的知道 Xcode 編譯、鏈接、打包的流程,配置和 Xcodeconfig的操作。另外,還需知道 Xcode 管理多工程、多 Target。還需熟練使用 cocoapods、plugin。當然,IIvm 調試工具也是必不可少的。

2.4 網絡

理解 NSUPLConnection、NSURLSession、NSURLProtocol

Apple Guide:
| URL Loading System Programming Guide
| Introduction to CFNetwork Programming Guide

2.5 多線程

推薦書目《Objective-C 高級編程 iOS 與OS X多線程和內存管理》,這本書的特點是透徹,全面。

Apple Guide:
| Concurrency Programming Guide
| Threading Programming Guide

2.6 逆向安全(了解層面)

《iOS 應用逆向工程》對我們去了解逆向這些事情和應用的保護是很有幫助的。

Apple Guide:
| Keychain Services Programming Guide

2.7 學習資源

| WWDC Session
| Objc.io
此外,優秀的開源庫也值得我們學習,如:
| SDWebImage
| AFNetworking/Restkit
| Facebook的三個庫:AsyncDisplayKit / POP / ReactNative
| ReactiveCocoa

3
iOS 能力清單
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, UserDefault

3.5 熟悉多線程消息傳遞,同步機制,線程池設計和實現
掌握NSOperation、GCD 、Runloop 機制和實現

3.6 熟悉音頻、視頻基本概念,熟悉相關系統接口
熟悉拍照、錄像等相關接口

3.7 編程語言
熟悉 C/C++、Objective-C、Swift

3.8 性能優調
熟悉移動端常見性能問題和解決方案:主線程 CPU 密集操作,主線程 IO 操作,排版、渲染耗時
網絡性能分析和調優 (《Web性能權威指南》)
熟練使用Instrument進行性能調優

3.9 安全
熟悉常見 iOS 應用安全機制(keychain,codesign),熟悉常見應用數據保護機制
熟悉常見加解密算法
熟悉 iOS 逆向與安全

4
走向專家的知識體系

內功而非招式,更看重基礎的掌握。所以,我們需要加強自身實際的能力,主要包括:
l  數學基礎
l  操作系統
l  程序的編譯上,鏈接與加載,推薦《程序員的自我修養》
l  ARM體系架構,推薦ARM體系結構與編程》
l  學習多范式的編程語言
l  設計模式
l  計算機網絡
l  數據庫

5
企業需要怎樣的 iOS 人才

| 大公司更看重基礎,成長性
| 技術熱情
| 系統學習的能力
| 聽說能力
| 敢於承擔、敢於挑戰

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM