1.準(zhǔn)備
1)準(zhǔn)備Mac,mac是必須的证薇,可以選擇的是mac mini(最便宜的度苔,不過要自配顯示器)、mac book(有三種浑度,推薦pro)寇窑、imac(最合適的開發(fā)設(shè)備,就是太貴)箩张、黑蘋果(最實(shí)惠甩骏,最難搞窗市,學(xué)習(xí)推薦遠(yuǎn)景)
2)準(zhǔn)備iphone,手機(jī)盡量要有饮笛,不然模擬器很多東西都模擬不出來的(比如攝像頭咨察,重力什么的),如果真買不起iphone福青,ipod touch 也是可以代替的
3)開發(fā)者賬號(hào)摄狱,開發(fā)者賬號(hào)是為了能真機(jī)調(diào)試,不然你有手機(jī)也不能調(diào)試无午,可以到官網(wǎng)買一個(gè)(一年688元人民幣媒役,可以一群人一起買),配置下證書指厌,買了賬號(hào)還可以發(fā)布你的應(yīng)用刊愚。
4)在app store 下載xcode開發(fā)工具
2.入門(初級(jí))
1)基本語法
基本語法看看基礎(chǔ)書和視頻就可以了,如果是自己學(xué)習(xí)的話可以直接研究swift踩验,如果是為了找工作和公司認(rèn)可的話還是建議要學(xué)objective-c鸥诽。(下面都以oc為例)
2)界面學(xué)習(xí)(紅色重點(diǎn))
ios的UI一般有三種方式:手寫布局、xib箕憾、storyboard
常用的控件:UIView牡借、UIButton、UILabel袭异、UIImageView钠龙、UITextFiled、UITableView御铃、UITableViewCell
ios的MVC模式:M(數(shù)據(jù)層單獨(dú)創(chuàng)建Model碴里、Info)、V( 分散在xib上真、storyboard咬腋、view、UIViewController)睡互、C(UIViewController)
頁面切換結(jié)構(gòu):UINavgationController(pushViewController)根竿、UITabbarViewController(setSelectedViewContoller)、UIViewController(PresentViewController)就珠、UIView(AddSubView)
3)持久化存儲(chǔ)數(shù)據(jù)
FMDB(sqlite)寇壳、NSUserDefault
4)數(shù)據(jù)結(jié)構(gòu)
NSArray(數(shù)組)、NSDictionary(字典)妻怎、NSMutableArray(可變數(shù)組)壳炎、NSMutableDictonary(可變字典)、NSData(二進(jìn)制數(shù)據(jù))逼侦、NSDate(時(shí)間)冕广、NSString(字符串)疏日、double、int撒汉、float
5)層間回調(diào)
NSNotificationCenter(通知)沟优、Delegate(協(xié)議)、Block(塊)
6)網(wǎng)絡(luò)(學(xué)會(huì)使用)
ASINetWork睬辐、AFNetWorking
7)靜態(tài)數(shù)據(jù)挠阁、全局?jǐn)?shù)據(jù)、外部定義數(shù)據(jù)溯饵、宏定義侵俗、常量數(shù)據(jù)
8)多看別人的代碼,github
推薦幾個(gè)我自己寫的丰刊,合適入門的應(yīng)用源碼:
rando(圖片分享):http://git.oschina.net/jonear/Rando
消消豆(小游戲):http://git.oschina.net/jonear/LianLianDots
Demo(一些實(shí)例):https://github.com/Jonear/iosDemo
9)推薦書:《Objective-C 基礎(chǔ)教程》
3.進(jìn)階(中級(jí))
1)界面學(xué)習(xí)
常用的控件(補(bǔ)充):UICollectionView隘谣、UITextView、UIScrollView啄巧、UIActivityIndicatorView寻歧、UISegmentedControl、UIPageControl秩仆、UISlider码泛、UISwitch、UIProgressView澄耍、UIWebView噪珊、UIMapView、UISearchBar齐莲、UIWindow
手勢(shì):touchBegin痢站、touchMove、touchEnd选酗、UIGestureRecognizer(tap/pan/long)阵难、搖一搖
MVC:學(xué)習(xí)層級(jí)結(jié)構(gòu),層級(jí)調(diào)用星掰、搭建框架
app通知:UIApplicationDidEnterBackgroundNotification等(UIApplication.h)
自動(dòng)布局:autoLayout多望、autoResizing嫩舟、code By ScreenSize
3)圖片處理(切圓氢烘、濾鏡、縮放等)
《ios圓角圖片的實(shí)現(xiàn)》《ios圖片拉伸》《UIImageView中圖片的大小縮放》
4)VC家厌、view加載結(jié)構(gòu)和過程(viewWillAppear\viewWillDisappear\viewdidload)
5) 多線程與安全(NSThead播玖、GCD、NSOpration)《ios多線程總結(jié)》
6)內(nèi)存管理(ARC饭于、autoreleasepool蜀踏、@property)
7)持久化存儲(chǔ)數(shù)據(jù)(補(bǔ)充)
coreData维蒙、文件、cSqlite果覆、plist
8)分類(類別)颅痊、常用分類庫(BFKit)
9)網(wǎng)絡(luò)(補(bǔ)充)
NSUrlConnection、TCP/UDP
網(wǎng)絡(luò)數(shù)據(jù)結(jié)構(gòu):json局待、xml斑响,解析和生成
學(xué)習(xí)第三方庫源碼結(jié)構(gòu):ASI、AF
10)強(qiáng)化學(xué)習(xí)UITableView(自定義Cell钳榨,重用優(yōu)化)
11)性能調(diào)試工具 Instruments
12)字符串處理(剪切舰罚、匹配、反轉(zhuǎn)等)
13)動(dòng)畫(UIView動(dòng)畫薛耻,UILayer動(dòng)畫) 《ios隱性動(dòng)畫》
14)內(nèi)外部推送處理营罢、推送證書、發(fā)布證書
15)語音視頻播放饼齿、錄制饲漾、處理
16)毛玻璃、高斯模糊(FXBlurView候醒、UIBlurEffect)
17)多看第三方庫的代碼《記錄ios第三方庫》
18)推薦書:《Effective Object-C》
4.熟練(高級(jí))
1)界面學(xué)習(xí):(補(bǔ)充)
手勢(shì)沖突處理能颁、UIWebView js交互、MVC結(jié)構(gòu)搭建和優(yōu)化
2)runtime(非常重要)
3)runloop
4)逆向工程分析
5)MRC性能管理
6)多線程優(yōu)化倒淫、隊(duì)列伙菊、鎖優(yōu)化
7)網(wǎng)絡(luò)結(jié)構(gòu)、底層協(xié)議敌土、安全(加解密方法镜硕、https)
8)keychain
9) 音視頻處理(裁剪,合成返干、除噪兴枯、濾鏡)GPUImage、直播矩欠、格式轉(zhuǎn)換
10)高階動(dòng)畫(貝塞爾财剖、阻尼、正弦RBBAnimation癌淮、pop)
11) 數(shù)據(jù)統(tǒng)計(jì)躺坟,埋點(diǎn)(方案、優(yōu)化)
12)即時(shí)通信(方案乳蓄、網(wǎng)絡(luò)咪橙、刷新)
13)編寫SDK、xcode插件、FrameWork
14)apple watch
15) CGContextRef 繪圖
16)多看官方貼:https://developer.apple.com/library/prerelease/ios/navigation/
17)core美侦、coreText改基、coreImage...
18)推薦書:《ios逆向工程》