如何成爲一名入門級 iOS 開發者

做者:Weston Hanners,原文連接,原文日期:2016-01-26
譯者:ray16897188;校對: 定稿:小鍋ios

最近我一直在幫個人幾個朋友開始學習 iOS 開發,而後被問到一個開始學習須要的清單。聽起來很適合爲此寫一篇博客。閒話少說,我給你列出來要成爲一名入門級的 iOS 開發者必須掌握的知識清單(不分前後順序)。git

基本的 CS 知識

我不以爲投身開發移動應用必須得有一個計算機科學的博士學位,我認爲這應該歸爲「加分項」那一欄,可是對數據結構和算法有必定基本的瞭解確定會防止開發新手們寫代碼把本身寫到死衚衕裏去。因此對新手來講,我推薦大家去看Youtube上的哈佛CS50課程,把它看作是你入門的開始,這些課程淺顯易懂,還十分有意思。github

Swift 仍是 Objective-C

仍是那個觀點,你無需到達可以寫這兩種語言的技術性博客的水平,或者是到可以教課的程度,可是你仍是至少得能用這兩種中其一來編程,不用過於頻繁的查看語法。API是另一碼事兒,尤爲是在 iOS 中,框架每一年更新,不少方法也常常被棄用。對我來講大多數工做時間開一個 Safari 頁面去看 Apple 的文檔並非偶然的事情。嘗試着記着全部的太讓人厭煩了。要讓你本身達到在沒有幫助的狀況下能夠寫類、結構體、循環、函數(類和實例)、分配變量、表達式求值的水平。面試

目前咱們正處於一個比較奇怪的時段,這個時候招只會 Objective-C 的人仍是能被接受的。Swift 仍是很新,除非你進的公司裏有頻繁的項目更替,不然你就得基本上用 Objective-C。也就是說,有不少的公司正決定轉向 Swift(個人公司就是),若是你就會 Swift 的話,找一個工做也不會特別難。重要的是要對你所選擇的那個語言足夠熟練,而後至少對另一個也要熟悉到能讀懂代碼的程度。算法

框架和 API

仍是和我以前說過的道理相似,我不認爲你必須能對全部的 iOS API 滾瓜爛熟,可是你須要清晰的知道到哪裏找起。編程

  • UIKit (UITableView, UIButton, UINavigationController, GestureRecognizers)swift

  • Interface Builder (Storyboards, Segues, and the odd .xib)設計模式

  • Foundation 類型 (NSArray, NSDictionary, NSString) 以及它們的 Swift 對應 (Array, Dictionary 和 String)HTTP API (NSURLSession, 基本的 REST API 概念, 用 NSJSONSerializatio n 作 JSON 解析)數據結構

  • Grand Central Dispatch (GCD, NSOperationQueue)app

  • 數據持久化 (NSCoding, NSUserDefaults, CoreData)

  • 內存管理 (什麼是循環引用,以及 ARC 的基本原理)

開發中的設計模式

模式很重要,它讓你的開發變得容易、代碼變得清晰。要確保你瞭解基本的設計模式,這些模式在 iOS 的框架中被普遍使用,你在不知道它們的狀況下不大可能作出來不少東西(還有不少其餘模式,可是你能夠隨作隨學)。

  • 代理模式(大多數iOS API的主要模式,你必須理解掌握它)

  • 模型-視圖-控制器模式(MVC,我並不以爲 Apple 在鼓勵使用最佳 MVC 分離上作的很好,可是它也是個很重要的設計模式,若是你花時間將其合理實現的話它能幫你改進你的代碼。還有,能夠十分確定的是:關於 MVC 的問題確定會出如今任何一個 iOS 工做的面試題裏。)

  • 繼承(幾乎全部用戶界面的代碼都會是某個類的子類。)

  • 單例模式(絕對會被濫用的模式...保守點兒用吧。)

熟悉開發環境

這彷佛是顯而易見的,但若是你尚未一臺 Mac 的話,弄一臺!若是你沒有任何一個 iOS 設備,弄一個!若是你沒有使用過或者不熟悉設備的話,爲它作開發會很難。相似的是,若是你沒 Mac 寫代碼的話也很難。我是在2009年從一臺 MacBook 13'' 和第一代 iPod Touch 開始的 。用低配置的設備也是能湊合的。當時是接近$1500的投資,可是長遠來看絕對值得的。

UX/UI

一般來講 UX(用戶體驗)和 UI(交互界面)是由設計師負責的,可是你也應該瞭解 Apple 的人機交互指南。你應該要了解產品原型和線框圖的區別,以及在開發的過程當中如何使用它們。

工具

你應該熟悉一些常見的開發工具。

  • Xcode(廢話)

  • Git 版本控制(一些公司可能會用 Subversion 或者 Mercurial,可是 git 把你領進門應該是足夠的。)

  • JIRA 或者 Bugzilla(基本就是 JIRA,你也是不須要成爲使用它的專家,可是你應該至少把它玩個大概,第一次看見它界面的時候別怕)

  • CocoaPods(這是管理依賴性和第三方代碼的工具,我還沒聽過哪一個公司不用它)

看法

對 iOS,Swift 或甚至對某個 API 有你本身的看法能特別有效的讓面試官知道你對某個知識點的瞭解到底有多深。這還會讓咱們能看到你的熱情。若是你參加一個面試被問到「你以爲 Swift 如何?」,回答「我以爲,還行吧」可不是正確的答案,你能夠告訴他們你對 optionals 的見解,你有多喜歡某個 feature。這裏不會有太多錯誤的答案,重要的是你得有東西可說。

做品集

事實勝於雄辯。若是你想在面試中表現優異的話,能夠把一些簡單 app 合在一塊兒(或者更好的是把它們發佈在 AppStore 上)。展現出你可以獨立完成一個項目的能力。我怎麼推薦這點都不嫌多。GitHub 也很好,可是若是你選擇這條路,面試官想測試一下你的代碼的話,要儘量讓它可以輕鬆經過編譯。

我寫了篇文章介紹怎樣作一個應用程序,能夠點擊這裏看看。

結論

若是你還須要更多的入門資源,請查看個人iOS Developer Resources頁面,裏面我附了我開始作開發的時候以爲有用的博客和網頁。

我想我要說的最後一件事就是JUST DO IT!現階段對 iOS 開發者的需求量仍是很大的,若是你想達到一個不錯的技術水準,努力工做一點時間是必不可少的。這是一份有回報性的工做,可以鍛鍊你的工程技能和創造力。

Shia LaBeouf "Just Do It" Motivational Speech (Original Video)(01:04)

我漏掉了什麼了嗎?請在Twitter (@WestonHanners)上告訴我。我想把這篇文章作成新手開啓他們事業所需的百科全書

另外說一下我所在的公司如今招全部技術水平的 iOS 開發者,若是你感興趣的話點擊下面的連接。

Y Media Labs Careers

告訴他們你是從我這裏知道他們的。

  • 2016-01-26 更新:添加內存管理,UI/UX,MVC。添加工具小節。

  • 2016-01-27 更新:佈局調整。

本文由 SwiftGG 翻譯組翻譯,已經得到做者翻譯受權,最新文章請訪問 http://swift.gg

相關文章
相關標籤/搜索