ios 學習路線總結

來源:互聯網
上載者:User

標籤:top   有助於   actions   xmpp   協議   cat   retain   alert   動態規劃   

學習方法

面對有難度的功能,不要忙著拒絕,而是挑戰一下,學習更多知識.

盡量獨立解決問題,而不是在遇到問題的第一想法是找人.

多學習別人開源的第三方庫,能夠開源的庫一定有值得學習的地方,多去看別的大神的部落格.

作為一個程式員,如果你停止了學習,你也必將會被這個團隊淘汰.

要把學習的技能當做興趣,而不是為了掙錢去學習,是為了學習技能而學習.

有給自己定製一個詳細的職業規劃和人生規劃,大到5~10年,小到近3年(並且細化到月)的計劃.

不要盲目的面試,要針對即將面試的工作,準備面試.

首先針對一個自己沒有接觸到的知識,先使用 百度\Google等網站搜尋資料.然後進行學習

這是個好東西,我勸你多用用https://developer.apple.com/search/

嘗試寫一個demo,對新技術進行熟悉.

如果市面上有成熟的Demo或者第三方庫,下載下來進行學習.

在熟悉的過程中,遇到了任何問題,再進行百度/Google,學習不同人的不同看法和解決方案.

做一個負責任的開發人員

那麼現在說正題,如何成為負責任的開發人員?

首先要負責,對自己的項目負責。如果是自己新開的項目,要保證隨時都能清晰的想到項目當中每個地方是怎麼實現的,測試或者使用者反饋了問題以後,能立馬想到可能的錯誤原因。

如果是接手的項目,就要儘快去瞭解主要的介面和功能是如何?的。你只有先做好自己分內的事,才有機會去顧暇別人的事。

1.保持一個良好的代碼規範以及檔案架構。2.每天要給自己做一個TodoList 和一個BugList,時刻保持自己是在有效率的工作,嚴重的需要時間修複的bug彙報上去,小bug自己記下來偷偷修複。3.有空時將熱門排行榜上的應用下載排名靠前的應用,去欣賞並分析主流app的介面,功能實現,在拿到設計圖時,去考慮介面的合理性,功能怎麼實現最符合使用者的操作習慣。4.要有一定的協調能力,交流能力,稍微瞭解一點後台知識以及前端知識。5.信念,一個不做初級iOS開發的信念。多去瞭解,不會被別人當小白,學多少都是自己的,至於在你去學習的時候,有人會說風言風語,這就是區別,他們活該初級,自己不會的東西,也看不慣別人去學習。所以,一定要有一個規劃,按照自己正確的規划去學習,去成長,別原地踏步。

關於後台你需要懂什麼呢,如何設計介面文檔,介面怎麼設計合理,後台拿到你請求的資料是怎麼儲存的,你需要的資料後台又是怎麼查詢給你的,請求方式什麼時候用get什麼時候適合post,JSON格式的資料以及XML資料又有什麼好處。

關於前端你需要瞭解什麼呢,這裡大致提一下H5和app互動,比如H5怎麼調你的方法,你怎麼調H5的方法,資料如何傳遞,圖片如何交給H5顯示,這些都需要去瞭解。

有些人會覺得,我上面說的這都是廢話,或者說你知道有什麼用嗎,又沒你提意見的資格。iOS的群普遍是什麼風氣,就是你提出來一個建議或者意見,如果路人甲會,他就趾高氣昂懟你一頓,如果他不會,他就會說,會這個又沒用,懂這麼多又沒用什麼的bulabulabula。這就是第五點。

如果你想變強,那就做點什麼.

iOS開發學習路線iOS定位
  • iOS定位

    • 簡介:這裡的定位,僅僅代表我個人意見,僅符合本筆記如何學習從哪裡開始學習,怎麼去學習來說.

    • 尚未入門

      • 如何判斷自己是否入門

        • 是否瞭解Mac

        • 是否瞭解Xcode

        • 是否瞭解Objective-C

        • 是否會使用UI控制項.

        • 如果上面的都不瞭解,那說明你還沒有入門,請從iOS學習路線開始學習.

    • 初級iOS開發

      • 說明:作為一名初級的iOS開發,你需要具備以下技能

      • 必備技能(全部都會的情況下查看下一項)

        • Xcode的使用

        • 第三方庫的靈活使用

          • AFN

          • MJRefresh

        • 各種網站的使用

      • 如何判斷是否可以升階

        • 是否瞭解AFNetworking 的實現原理

        • 是否瞭解SDAutolayout/Masonry 一種布局庫的原理

        • 是否能夠處理基本的iOS崩潰原因/無法編譯原因/無法上架原因?

        • 是否擁有了一定的工作效率,穩定的工作效率.(而不是說,上面派了一個活下來,忙都忙不完,天天加班,還一堆bug)

        • 是否能夠處理第三方庫引起的崩潰.

        • 是否可以很好的融入工作環境,完成每一階段的工作指標,而不會讓自己疲憊不堪.

      • 結論

        • iOS中級開發說白了,就是你學會了基本的UI介面搭建,上架,沉澱一段時間,你覺得自己還適合這門行業,還適合,還能接受 這個所謂的iOS開發工程師的行業.你就可以說是一名中級iOS開發.

        • 這個沉澱時間 大約在1年的實際工作中,就可以完成.

        • 如果你覺得這門行業不適合你,請仔細結合自身情況,是否轉另一門電腦語言,還是徹底轉行.

    • 中級iOS開發

      • 說明:作為一名中級的iOS開發,你需要具備以下技能

      • 必備技能(全部都會的情況下查看下一項)

        • 應用的記憶體處理

        • 應用的推送處理

        • 應用的模組化/單元測試

        • 應用的第三方整合/集中化管理/穩定迭代

        • 閱讀強大的第三方源碼/擁有快速上手新的第三方庫的能力.

        • 能夠接受各種新功能的開發(這裡是指,即使你沒有做過,但是你仍然可以憑藉著學習,解決任何業務需求:例如:藍芽.AR.網路攝影機.硬體互動.等)

        • 清楚明白資料的傳遞方式,應用與後台如何交換資料,交換資料的過程,結果,格式.

        • 多線程的靈活使用.

        • 各種並發事件的處理/以及介面的合理性/流暢度

        • 設計模式的靈活使用.

      • 如何判斷是否可以升階

      • 結論

    • 進階iOS開發

      • 說明:作為一名進階的iOS開發,你需要具備以下技能(我不是進階開發,所以這裡只能給你們提供建議.)

      • 必備技能

        • 應用的組件化/架構分層

        • 資料結構,作業系統,電腦網路都有自己的瞭解和認知

        • Shell指令碼/python/Ruby/JS 至少會一種.

詳細學習路線
  • 學習路線

    • 簡介
      這裡只簡單闡述一些概念性的東西,以及學習路線規劃,真正的知識請從iOS基礎知識點往下開始看.

    • Objective-C

      • 介紹

      • 概念

      • 編譯原理

    • 程式啟動原理

      • App組成

        • Info.plist

        • .pch

      • 開啟程式

      • 執行main函數

      • 執行UIApplicationMain函數

      • 初始化UIApplication(建立設定代理對象,開啟事件迴圈)

      • 監聽系統事件

      • 結束程式.

    • 文法.(此處定義可能略失嚴謹,口頭教學為主)

      • 基礎文法

      • 對象.

      • 屬性

      • 資料類型

      • 方法

      • 繼承

      • Frame/CGRect/CGPoint和CGSize

      • 記憶體(針對MRC下情況進行介紹)

      • ARC/MRC

      • 弱引用/強引用

      • Assign,retain,copy,strong

      • import 和@class的區別

    • Xcode使用

      • 首先是針對Xcode功能表列,希望自己可以去翻譯一下每個菜單裡每項功能的英文都是什麼意思,有助於自己熟悉並加深印象的使用Xcode.

      • 熟悉Xcode的各個功能.

    • UIKit控制項.

    • 介面分析(下載App進行學習).

      • 在這裡推薦有興趣的開發人員,下載並分析,AppStore中的每項分類的top50的應用,多學習大公司以及流行應用是如何開發應用的,其中流行的,新穎的開發介面的方式可以總結下來,猜想在大應用中,別的程式員是如何開發的.

      • 介面適配

    • 代碼架構.

      • 代碼架構文章推薦:https://casatwy.com/iosying-yong-jia-gou-tan-kai-pian.html

    • 各種工具、第三方的使用.

      • 其實每個項目的建立都大致分為:項目架構搭建,原生介面搭建,嵌入第三方庫.有很多功能都會用到第三方庫,大多數第三方庫都是本著快速開發,完整功能實現的目的存在的.需要開發人員能夠根據商務邏輯不同,選擇最好最優質的第三方庫進行使用.

    • 代碼封裝

      • 當使用較多第三方庫後,要求開發人員學習其開發特點,以及其封裝手法,運用在自己的項目上,封裝自己的代碼.靈活運用.

    • 完整項目.

    • 開發技巧

    • 個人心得

iOS基礎知識點
  • iOS基礎知識點

    • 如何學習iOS

      • 剛剛入門(如何學習)

        • 打好基礎,學習OC中各種常用文法.

        • 學習如何上架,上架會因為什麼被拒,瞭解App上架規則.

        • 多學習官方說明文檔.

      • 剛剛入職1年(如何穩定)

        • 多看開源或者註明的第三方庫.

        • 收藏並閱讀各種大神的部落格或者論壇.

        • 開始考慮項目中的細節最佳化,記憶體處理和耗電情況

      • 入職3年(如何進階)

        • 開始涉獵不止於iOS領域中的知識,會去瞭解相關職位的基礎知識,例如前端和後台或者伺服器營運,或者項目相關知識,具體往自己的職業規劃靠攏

    • 架構的學習

      • 蘋果內建架構

      • 第三方架構

        • 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的使用

      • 基礎操作 狀態列

      • 喜好設定

      • Xcode Source Control 原始檔控制總管

      • Xcode workSpace工作群組

      • Xcode Scheme 計劃

      • Xcode AutoLayout 約束

      • Xcode CoreData資料庫

      • LLDB 斷點調試

      • StoryBoard

      • 介面預覽

      • 介面適配

      • 記憶體監測

      • 全域斷點

      • 全域搜尋替換

    • 資料存放區

      • plist

      • NSKeyedArchiver

      • SQLite

      • FMDB

      • CoreData

      • NSUserDefault

      • 沙箱儲存

      • NSDictionary歸檔

    • App生命週期

      • 應用生命週期

      • 控制器生命週期

        • alloc

        • init

        • 建立View

        • ViewDidLoad

        • ViewWillAppear

        • ViewDidAppear

        • ViewWillDisappear

          • 視圖將要消失 (做一些視圖將要消失時的UI的處理)

        • ViewDidDisappear

          • 視圖已經消失 (做一些視圖消失之後資料的處理)

          • viewDidDisappear銷毀定時器

        • dealloc

        • didReceiveMemoryWarning

    • 開發人員帳號&上架流程

      • 文章推薦:

        • https://www.jianshu.com/p/6601a241da8e

        • https://www.jianshu.com/p/7c98651d3532

        • https://www.jianshu.com/p/9b994a019ee6

      • 個人

      • 公司

      • 企業

    • 常用知識

      • 通訊

      • NS系列

      • 宏定義

      • 視圖層次

      • 切換視圖

      • 深淺拷貝

      • 對象序列化

      • 寫入檔案

      • 擷取沙箱路徑

      • 翻轉視圖

      • 延伸視圖

      • 九大基礎資料型別 (Elementary Data Type)

      • 九宮格

      • 座標比較

      • UIColor 、CIColor和CGColor 之間的關係

      • 畫圖

      • 靜態變數

      • tag值

      • 延時執行方法

      • 介面旋轉+狀態列隱藏

      • plist檔案

      • KVC/KVO

      • 謂詞NSPredicate

      • 幀動畫

      • AutoLayout

      • isKindOfClass 與 isMemberOfClass

      • Return/Break/Continue

      • Core Animation

      • CALayer

      • Quartz2D

      • 真機調試

      • 靜態庫

      • 記憶體管理

      • iPad與iPhone的區別

      • 響應鏈

      • 異常捕捉

      • 國際化

      • 代碼模組化

      • 類別/擴充

中級知識點
  • 設計模式

  • UIScrollView/UITableView/UICollectionView 的嵌套

  • 動態行高

  • 通知/代理/block

  • 程式啟動原理

  • 觸摸事件/手勢

  • 圖文混編

  • Runtime

  • NSRunLoop

  • GCD

  • ReactiveCocoa開發

  • 3DTouch

  • 介面渲染

  • Charles花瓶抓包

  • 區分模擬器/真機項目

  • 常用知識

    • 單例模式

    • 多線程

    • 網路請求

    • 定位

    • 原始程式碼控制Git

    • 真機調試

    • 蘋果內購/廣告

    • 推送/遠程推送

    • 音頻/視頻/二維碼

    • Block

    • 藍芽/感應器

    • 物理模擬器UIDynamic

    • 通訊錄擷取

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

ios 學習路線總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.