初級iOS開發
iOS中級開發說白了,就是你學會了基本的UI界面搭建,上架,沉澱一段時間,你以爲本身還適合這門行業,還適合,還能接受 這個所謂的iOS開發工程師的行業.你就能夠說是一名中級iOS開發. 這個沉澱時間 大約在1年的實際工做中,就能夠完成. 若是你以爲這門行業不適合你,請仔細結合自身狀況,是否轉另外一門計算機語言,仍是完全轉行.html
- 是否瞭解AFNetworking 的實現原理
- 是否瞭解SDAutolayout/Masonry 一種佈局庫的原理
- 是否可以處理基本的iOS崩潰緣由/沒法編譯緣由/沒法上架緣由?
- 是否擁有了必定的工做效率,穩定的工做效率.(而不是說,上面派了一個活下來,忙都忙不完,每天加班,還一堆bug)
- 是否可以處理第三方庫引發的崩潰.
- 是否能夠很好的融入工做環境,完成每一階段的工做指標,而不會讓本身疲憊不堪.
- Xcode的使用
- 第三方庫的靈活使用 AFN MJRefresh 各類網站的使用
說明:做爲一名初級的iOS開發,你須要具有以上技能
必備技能(所有都會的狀況下查看下一項) 如何判斷是否能夠升階 結論前端
中級iOS開發
如何判斷是否能夠升階 結論python
- 應用的內存處理
- 應用的推送處理
- 應用的模塊化/單元測試
- 應用的第三方集成/集中化管理/穩定迭代
- 閱讀強大的第三方源碼/擁有快速上手新的第三方庫的能力.
- 可以接受各類新功能的開發(這裏是指,即便你沒有作過,可是你仍然能夠憑藉着學習,解決任何業務需求:例如:藍牙.AR.攝像頭.硬件交互.等)
- 清楚明白數據的傳遞方式,應用與後臺如何交換數據,交換數據的過程,結果,格式.
- 多線程的靈活使用.
- 各類併發事件的處理/以及界面的合理性/流暢度
- 設計模式的靈活使用.
說明:做爲一名中級的iOS開發,你須要具有如下技能
必備技能(所有都會的狀況下查看下一項)ios
高級iOS開發
- 應用的組件化/架構分層
- 數據結構,操做系統,計算機網絡都有本身的瞭解和認知
- Shell腳本/python/Ruby/JS 至少會一種.
說明:做爲一名高級的iOS開發,你須要具有如下技能(我不是高級開發,因此這裏只能給大家提供建議.)
必備技能程序員
詳細學習路線
學習路線
簡介
這裏只簡單闡述一些概念性的東西,以及學習路線規劃,真正的知識請從iOS基礎知識點往下開始看.
-
Objective-C算法
- 概念
- 編譯原理
- 程序啓動原理
- 結束程序.
- 監聽系統事件
- Info.plist
- .pch
-
App組成數據庫
- 打開程序
- 執行main函數
- 執行UIApplicationMain函數
- 初始化UIApplication(建立設置代理對象,開啓事件循環) 語法.(此處定義可能略失嚴謹,口頭教學爲主)
-
基礎語法設計模式
- 對象.
- 屬性
- 數據類型
- 方法
- 繼承
- Frame/CGRect/CGPoint和CGSize
- 內存(針對MRC下狀況進行介紹)
- ARC/MRC
- 弱引用/強引用
- Assign,retain,copy,strong
- import 和@class的區別
-
Xcode使用瀏覽器
首先是針對Xcode菜單欄,但願本身能夠去翻譯一下每一個菜單裏每項功能的英文都是什麼意思,有助於本身熟悉並加深印象的使用Xcode.服務器
-
熟悉Xcode的各個功能.
-
UIKit控件.
-
界面分析(下載App進行學習).
-
界面適配
在這裏推薦有興趣的開發人員,下載並分析,AppStore中的每項分類的top50的應用,多學習大公司以及流行應用是如何開發應用的,其中流行的,新穎的開發界面的方式能夠總結下來,猜測在大應用中,別的程序員是如何開發的.
代碼架構文章推薦:casatwy.com/iosying-yon… 各類工具、第三方的使用.
其實每一個項目的創建都大體分爲:項目框架搭建,原生界面搭建,嵌入第三方庫.有不少功能都會用到第三方庫,大多數第三方庫都是本着快速開發,完整功能實現的目的存在的.須要開發人員可以根據業務邏輯不一樣,選擇最好最優質的第三方庫進行使用.
-
代碼封裝 當使用較多第三方庫後,要求開發人員學習其開發特色,以及其封裝手法,運用在本身的項目上,封裝本身的代碼.靈活運用.
-
完整項目.
-
開發技巧
-
我的心得
小編這呢,給你們推薦一個優秀的iOS交流平臺,平臺裏的夥伴們都是很是優秀的iOS開發人員,咱們專一於技術的分享與技巧的交流,你們能夠在平臺上討論技術,交流學習。歡迎你們的加入(想要進入的可加小編微信)。18174412518
iOS基礎知識點
iOS基礎知識點
如何學習iOS
開始涉獵不止於iOS領域中的知識,會去了解相關職位的基礎知識,例如前端和後臺或者服務器運維,或者項目相關知識,具體往本身的職業規劃靠攏
- 多看開源或者註明的第三方庫.
- 收藏並閱讀各類大神的博客或者論壇.
- 開始考慮項目中的細節優化,內存處理和耗電狀況
- 打好基礎,學習OC中各類經常使用語法.
- 學習如何上架,上架會由於什麼被拒,瞭解App上架規則.
- 多學習官方說明文檔.
- 剛剛入門(如何學習)
- 剛剛入職1年(如何穩定)
- 入職3年(如何進階)
- 框架的學習
- AFNetworking
- SDAutoLayout
- YYKit
- SDWebImage
- MJRefresh
- MJExtension
- Bugly
- Qiniu
- Masonry
- TZImagePickerController
- Hyphenate_CN
第三方框架
蘋果自帶框架
基礎UI控件
- UILabel 標題欄
- UIButton 按鈕
- UIImageView 圖片視圖
- UITextField 文本輸入框
- UITextView 文本展現視圖
- UIProgressView 進度條
- UISlider 滑動開關
- UIGesture 手勢
- UIActivityIndicator 菊花控件
- UIAlertView(iOS8廢除) 警告框
- UIActionSheet(iOS8廢除) 操做表單
- UIAlertController(iOS8出現) 警告視圖控制器
- UIScrollView 滾動視圖
- UIPageControl 頁面控制器
- UISearchBar 搜索框
- UITableView 表視圖
- UICollectionView集合視圖
- UIWebView網頁瀏覽器
- UISwitch開關
- UISegmentControl選擇按鈕
- UIPickerView選擇器
- UIDatePicker日期選擇器
- UIToolbar工具欄
- UINavigationBar通知欄
- UINavigationController通知視圖控制器
- UITabbarController選擇視圖控制器
- UIImagePickerController相冊
- UIImage圖片
- Xcode的使用
- 內存監測
- 全局斷點
- 全局搜索替換
- 界面適配
- StoryBoard
- 界面預覽
- 基礎操做 狀態欄
- 偏好設置
- Xcode Source Control 源代碼管理器
- Xcode workSpace工做組
- Xcode Scheme 計劃
- Xcode AutoLayout 約束
- Xcode CoreData數據庫
- LLDB 斷點調試
- 數據存儲
- 沙盒存儲
- NSDictionary歸檔
- NSUserDefault
- CoreData
- NSKeyedArchiver
- SQLite
- FMDB
- plist
- App生命週期
- alloc
- init
- 建立View
- ViewDidLoad
- ViewWillAppear
- ViewDidAppear
- ViewWillDisappear
- ViewDidDisappear
視圖將要消失 (作一些視圖將要消失時的UI的處理)
視圖已經消失 (作一些視圖消失以後數據的處理)
- viewDidDisappear銷燬定時器
- dealloc
- didReceiveMemoryWarning
- 控制器生命週期
- 應用生命週期
- 開發者帳號&上架流程
經常使用知識
- 響應鏈
- 異常捕捉
- 國際化
- 代碼模塊化
- 類別/擴展
- iPad與iPhone的區別
- 靜態庫
- 內存管理
- Quartz2D
- 真機調試
- isKindOfClass 與 isMemberOfClass
- Return/Break/Continue
- Core Animation
- CALayer
- AutoLayout
- KVC/KVO
- 謂詞NSPredicate
- 幀動畫
- 界面旋轉+狀態欄隱藏
- plist文件
- 通訊
- NS系列
- 宏定義
- 視圖層次
- 切換視圖
- 深淺拷貝
- 對象序列化
- 寫入文件
- 獲取沙盒路徑
- 翻轉視圖
- 延伸視圖
九大基本數據類型
- 九宮格
- 座標比較
- UIColor 、CIColor和CGColor 之間的關係
- 畫圖
- 靜態變量
- tag值
- 延時執行方法
中級知識點
設計模式
- UIScrollView/UITableView/UICollectionView 的嵌套
- 動態行高
- 通知/代理/block
- 程序啓動原理
- 觸摸事件/手勢
- 圖文混編
- Runtime
- NSRunLoop
- GCD
- ReactiveCocoa開發
- 3DTouch
界面渲染
區分模擬器/真機項目
經常使用知識
-
Block
-
藍牙/傳感器
-
物理仿真器UIDynamic
-
通信錄獲取
-
音頻/視頻/二維碼
-
真機調試
-
蘋果內購/廣告
-
推送/遠程推送
-
單例模式
-
多線程
-
網絡請求
-
定位
-
源代碼管理Git
-
iOS高級知識點
-
iOS高級知識點
-
Socket
-
XMPP
加密
- MD5詳解
- Base64加密解密
- RSA非對稱加密
- AES對稱加密
音頻
基礎
- Core Audio
- Audio Toolbox
- OpenAL
- AVFoundation
- Speex語音聊天
- AudioQueue/AudioSession
- Speex簡介
- 視頻
- AAC視頻.H264推流
- P2P傳輸 直播
RTMP協議
- RTMP直播應用與延時分析
- 若是作一款inke版的App
- 推流發佈和播放RTMP
- FFmpeg
- 基於FFmpeg的推流器
- HLS流媒體傳輸協議(HTTP Live Streaming)
- FFmpeg
- ijkPlayer
- 直播的技術分析與實現
算法
簡介
- 冒泡排序
- 快速排序
- 插入排序
- 歸併排序
- 二分查找
- 希爾排序
- 動態規劃
- 堆排序
官方Kit
- ARKit.
- SiriKit
- HealthKit
- HomeKit
- SearchKit
- IOKit
- PDFKit
- CloudKit
- GameplayKit
- SpriteKit
- SceneKit
- MusicKit
- ResearchKit
- MapKit
- StoreKit
- AVKit
轉載連接:blog.csdn.net/wtdask/arti…