摘要
我看很多人在開始投向ios開發的懷抱,也有很多問我該怎么學ios,我也想單憑自己的學習來總結下ios學習的過程和規劃,希望是有幫助的,而不是誤導了大家。
前言:我看很多人在開始投向ios開發的懷抱,也有很多問我該怎么學ios,我也想單憑自己的學習來總結下ios學習的過程和規劃,希望是有幫助的,而不是誤導了大家。
1.準備
1)準備?Mac,mac是必須的,可以選擇的是mac mini(最便宜的,不過要自配顯示器)、mac book(有三種,推薦pro)、imac(最合適的開發設備,就是太貴)、黑蘋果(最實惠,最難搞,學習推薦遠景)
2)準備iphone,手機盡量要有,不然模擬器很多東西都模擬不出來的(比如攝像頭,重力什么的),如果真買不起iphone,ipod touch 也是可以代替的
3)開發者賬號,開發者賬號是為了能真機調試,不然你有手機也不能調試,可以到官網買一個(一年688元人民幣,可以一群人一起買),配置下證書,買了賬號還可以發布你的應用。
4)在app store 下載xcode開發工具
2.入門(初級)
1)基本語法
基本語法看看基礎書和視頻就可以了,如果是自己學習的話可以直接研究swift,如果是為了找工作和公司認可的話還是建議要學objective-c。(下面都以oc為例)
2)界面學習(紅色重點)
ios的UI一般有三種方式:手寫?布局、xib、storyboard
常用的控件:UIView、UIButton、UILabel、UIImageView、UITextFiled、UITableView、UITableViewCell
ios的MVC模式:M(數據層單獨創建Model、Info)、V( 分散在xib、storyboard、view、UIViewController)、C(UIViewController)
頁面切換結構:UINavgationController(pushViewController)、UITabbarViewController(setSelectedViewContoller)、UIViewController(PresentViewController)、UIView(AddSubView)
3)持久化存儲數據
FMDB(sqlite)、NSUserDefault
4)數據結構
NSArray(數組)、NSDictionary(字典)、NSMutableArray(可變數組)、NSMutableDictonary(可變字典)、NSData(二進制數據)、NSDate(時間)、NSString(字符串)、double、int、float
5)層間回調
NSNotificationCenter(通知)、Delegate(協議)、Block(塊)
6)網絡(學會使用)
ASINetWork、AFNetWorking
7)靜態數據、全局數據、外部定義數據、宏定義、常量數據
8)多看別人的代碼,github
推薦幾個我自己寫的,合適入門的應用源碼:
rando(圖片分享):http://git.oschina.net/jonear/Rando
消消豆(小游戲):http://git.oschina.net/jonear/LianLianDots
Demo(一些實例):https://github.com/Jonear/iosDemo
9)推薦書:《Objective-C 基礎教程》
3.進階(中級)
1)界面學習
常用的控件(補充):UICollectionView、UITextView、UIScrollView、UIActivityIndicatorView、UISegmentedControl、UIPageControl、UISlider、UISwitch、UIProgressView、UIWebView、UIMapView、UISearchBar、UIWindow
手勢:touchBegin、touchMove、touchEnd、UIGestureRecognizer(tap/pan/long)、搖一搖
MVC:學習層級結構,層級調用、搭建框架
app通知:UIApplicationDidEnterBackgroundNotification等(UIApplication.h)
自動布局:autoLayout、autoResizing、code By ScreenSize
3)圖片處理(切圓、濾鏡、縮放等)
《ios圓角圖片的實現》《ios圖片拉伸》《UIImageView中圖片的大小縮放》
4)VC、view加載結構和過程(viewWillAppear\viewWillDisappear\viewdidload)
5) 多線程與安全(NSThead、GCD、NSOpration)《ios多線程總結》
6)內存管理(ARC、autoreleasepool、@property)
7)持久化存儲數據(補充)
coreData、文件、cSqlite、plist
8)分類(類別)、常用分類庫(BFKit)
9)網絡(補充)
NSUrlConnection、TCP/UDP
網絡數據結構:json、xml,解析和生成
學習第三方庫源碼結構:ASI、AF
10)強化學習UITableView(自定義Cell,重用優化)
11)性能調試工具 Instruments
12)字符串處理(剪切、匹配、反轉等)
13)動畫(UIView動畫,UILayer動畫) 《ios隱性動畫》
14)內外部推送處理、推送證書、發布證書
15)語音視頻播放、錄制、處理
16)毛玻璃、高斯模糊(FXBlurView、UIBlurEffect)
17)多看第三方庫的代碼《記錄ios第三方庫》
18)推薦書:《Effective Object-C》
4.熟練(高級)
1)界面學習:(補充)
手勢沖突處理、UIWebView js交互、MVC結構搭建和優化
2)runtime(非常重要)
3)runloop
4)逆向工程分析
5)MRC性能管理
6)多線程優化、隊列、鎖優化
7)網絡結構、底層協議、安全(加解密方法、https)
8)keychain
9) 音視頻處理(裁剪,合成、除噪、濾鏡)GPUImage、直播、格式轉換
10)高階動畫(貝塞爾、阻尼、正弦RBBAnimation、pop)
11) 數據統計,埋點(方案、優化)
12)即時通信(方案、網絡、刷新)
13)編寫SDK、xcode插件、FrameWork
14)apple ?watch
15) CGContextRef 繪圖
16)多看官方貼:https://developer.apple.com/library/prerelease/ios/navigation/
17)core、coreText、coreImage...
18)推薦書:《ios逆向工程》
原文地址:iOS學習規劃?