好久沒有寫過博客了。工作一忙就各種放一邊,這陣子閑下來也沒好好整理一下。抱著“Right Now”的想法拿起鍵盤就啪嗒啪嗒趕緊寫下來再說短纵。開始轉行做iOS開發(fā)時,由于身邊的人很少做iOS的自己本身也是菜鳥什么都不懂僵控,一路摸打滾爬過來一開始也是碰到很多坑香到。從開始學習做個小項目后去小公司當個實習生攢攢經驗,出來后在一個小創(chuàng)業(yè)公司做Self-Manager-.-||报破,那時候學的多不過開發(fā)過程還是有挺多不規(guī)范的悠就,然后到頂個不錯的頭銜去大公司打磨學習(打雜T_T),整個過程也是曲折充易,憑著厚臉皮也算學到一些梗脾。看到網上這些資料也不是很多盹靴,大公司內部的培訓資料比較完整系統(tǒng)但也很少會公開炸茧。所以這篇文章以及接下來幾篇文章主要是針對剛入門的iOS開發(fā)者,根據自己這些年的開發(fā)經驗講一下iOS開發(fā)的大致學習路線稿静,算是一點建議吧梭冠,雖然我也不是大神,不過也希望能給新手們帶來點小幫助哈哈哈改备。寫的不是很全但思路應該是沒問題的控漠,有見解的歡迎補全或更正。
初階
基礎
- C語言基本語法悬钳、Objective-C基本語法
- 面向對象特性(類盐捷、對象柬脸、繼承、多態(tài)毙驯、動態(tài)類型倒堕、動態(tài)綁定)
- 協議(Protocol)與分類(Category)
- KVO、Delegate爆价、Notification垦巴、Block的簡單使用
- 基礎內存管理、ARC铭段、屬性關鍵字的使用
數據
- 容器類(NSData/NSMutableData骤宣、NSArray/NSMutableArray、NSSet/NSMutableSet序愚、NSString/NSMutableString憔披、NSDictionary/NSMutableDictionary)
- 可持續(xù)永久存儲(沙盒機制、序列化爸吮、Plist文件芬膝、文件管理、NSUserDefaults)
- JSON/XML格式解析
- 網絡處理(Http協議形娇、NSURLConnection锰霜、NSURLSession、NSURL桐早、NSURLRequest癣缅、NSURLResponse等)
UI
- UIKit的類與結構
- UIView、UIWindow哄酝、UIApplication(使用與生命周期)
- 基礎控件(UIButton友存、UILabel、UIImageView陶衅、UITextField屡立、UITextView、UITableView万哪、UISwitch侠驯、UICollectionView抡秆、UIScrollView奕巍、Cell等)
- 基礎控制器(UIViewController、UITableViewController儒士、UICollectionViewController的止、UIAlertViewController(iOS8.0以下是UIAlertView)
- xib文件、storyboard着撩、Autolayout
- 事件的傳遞與響應(UITouch诅福、UIEvent匾委、UIGestureRecognizer)
- 繪圖與動畫(CALayer、UIBezierPath氓润、基礎動畫[UIView animate…])
第三方庫
使用AFNetworking赂乐、SDWebImage、MJRefresh等
工具
- 調試分析工具Instrument
- 版本管理工具Git/SVN
- 依賴管理工具CocoaPod
- Xcode各類提升開發(fā)效率的插件:譬如包管理插件Alcatraz咖气、文檔注釋插件VVDocument挨措、對齊插件XAlign、沙盒查看插件ZLGotoSandbox崩溪、圖片名字迅速匹配插件KSImageNamed
其他
單例模式浅役、MVVM模式、工廠模式伶唯、Objective-C編程規(guī)范觉既、AppStore上架指南
PS:扎扎實實學完上面的內容就可以應付大部分普通的iOS開發(fā)需求了-。-
進階
- KVC/KVO手動管理與原理乳幸、Block的理解與原理
- 多線程開發(fā)的深層應用(NSThread瞪讼、NSOperation、GCD)
- SQLite3粹断、CoreData以及CoreData的多線程開發(fā)
- 內存管理的底層理解
- CoreText/UITextKit富文本開發(fā)尝艘、CoreImage開發(fā)
- 高級繪圖與動畫(CA開頭框架內容CAShapePath、CADisplayLink等姿染、UIDynamic等)
- Runtime機制原理與應用(消息機制背亥、動態(tài)選擇/攔截調用、動態(tài)添加悬赏、關聯對象狡汉、方法交換等)
- RunLoop的底層原理(應用的流暢度優(yōu)化等)
再往上就不是什么具體知識點能來說了(主要是因為我也不懂-.-),每個大牛都會說到開發(fā)思想這個問題上闽颇,更深層次的能力就不能以單一一種語言來衡量的了盾戴,畢竟萬法歸一。實踐是檢驗真理的唯一標準兵多,經驗尖啡、實踐也是很重要的。所以剩膘,去吧騷年衅斩。
Tips:
* 沒事閱讀理解下大牛的代碼是有利于自己的學習的
* 沒事爬爬blog或者開源社區(qū)也是挺好的
* Apple的開發(fā)文檔就是最好的文檔
* 開發(fā)思路與開發(fā)規(guī)范很重要