如何成為一名入門級 iOS 開發(fā)者

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

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

基本的 CS 知識

我不覺得投身開發(fā)移動應用必須得有一個計算機科學的博士學位,我認為這應該歸為“加分項”那一欄,但是對數(shù)據(jù)結構和算法有一定基本的了解肯定會防止開發(fā)新手們寫代碼把自己寫到死胡同里去。所以對新手來說,我推薦你們去看Youtube上的哈佛CS50課程,把它看做是你入門的開始,這些課程淺顯易懂,還十分有意思。

Swift 還是 Objective-C

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

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

框架和 API

還是和我之前說過的道理類似,我不認為你必須能對所有的 iOS API 倒背如流,但是你需要清晰的知道到哪里找起。

  • UIKit (UITableView, UIButton, UINavigationController, GestureRecognizers)
  • 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)
  • 數(shù)據(jù)持久化 (NSCoding, NSUserDefaults, CoreData)
  • 內存管理 (什么是循環(huán)引用,以及 ARC 的基本原理)

開發(fā)中的設計模式

模式很重要,它讓你的開發(fā)變得容易、代碼變得清晰。要確保你了解基本的設計模式,這些模式在 iOS 的框架中被廣泛使用,你在不知道它們的情況下不大可能做出來很多東西(還有很多其他模式,但是你可以隨做隨學)。

  • 代理模式(大多數(shù)iOS API的主要模式,你必須理解掌握它)
  • 模型-視圖-控制器模式(MVC,我并不覺得 Apple 在鼓勵使用最佳 MVC 分離上做的很好,但是它也是個很重要的設計模式,如果你花時間將其合理實現(xiàn)的話它能幫你改進你的代碼。還有,可以十分肯定的是:關于 MVC 的問題肯定會出現(xiàn)在任何一個 iOS 工作的面試題里。)
  • 繼承(幾乎所有用戶界面的代碼都會是某個類的子類。)
  • 單例模式(絕對會被濫用的模式...保守點兒用吧。)

熟悉開發(fā)環(huán)境

這似乎是顯而易見的,但如果你還沒有一臺 Mac 的話,弄一臺!如果你沒有任何一個 iOS 設備,弄一個!如果你沒有使用過或者不熟悉設備的話,為它做開發(fā)會很難。類似的是,如果你沒 Mac 寫代碼的話也很難。我是在2009年從一臺 MacBook 13'' 和第一代 iPod Touch 開始的 。用低配置的設備也是能湊合的。當時是接近$1500的投資,但是長遠來看絕對值得的。

UX/UI

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

工具

你應該熟悉一些常見的開發(fā)工具。

  • Xcode(廢話)
  • Git 版本控制(一些公司可能會用 Subversion 或者 Mercurial,但是 git 把你領進門應該是足夠的。)
  • JIRA 或者 Bugzilla(基本就是 JIRA,你也是不需要成為使用它的專家,但是你應該至少把它玩?zhèn)€大概,第一次看見它界面的時候別怕)
  • CocoaPods(這是管理依賴性和第三方代碼的工具,我還沒聽過哪個公司不用它)

見解

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

作品集

事實勝于雄辯。如果你想在面試中表現(xiàn)優(yōu)異的話,可以把一些簡單 app 合在一起(或者更好的是把它們發(fā)布在 AppStore 上)。展示出你能夠獨立完成一個項目的能力。我怎么推薦這點都不嫌多。GitHub 也很好,但是如果你選擇這條路,面試官想測試一下你的代碼的話,要盡可能讓它能夠輕松通過編譯。

我寫了篇文章介紹怎樣做一個應用程序,可以點擊這里看看。

結論

如果你還需要更多的入門資源,請查看我的iOS Developer Resources頁面,里面我附了我開始做開發(fā)的時候覺得有用的博客和網頁。

我想我要說的最后一件事就是JUST DO IT!現(xiàn)階段對 iOS 開發(fā)者的需求量還是很大的,如果你想達到一個不錯的技術水準,努力工作一點時間是必不可少的。這是一份有回報性的工作,能夠鍛煉你的工程技能和創(chuàng)造力。

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

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

另外說一下我所在的公司現(xiàn)在招所有技術水平的 iOS 開發(fā)者,如果你感興趣的話點擊下面的鏈接。

Y Media Labs Careers

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

  • 2016-01-26 更新:添加內存管理,UI/UX,MVC。添加工具小節(jié)。
  • 2016-01-27 更新:布局調整。

本文由 SwiftGG 翻譯組翻譯,已經獲得作者翻譯授權,最新文章請訪問 http://swift.gg。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 今天是2016年的最后一天,回想起來2014年高考結束開啟了大學生活之旅,有甜有苦。剛開始的大學生活要經歷4次of...
    水蘊草Julinia閱讀 208評論 0 0
  • 鸚鵡曲 (1)長河落日風輕揚,層巒疊翠綴霞光。柳起舞,遠處鶯唱,離愁別緒涌如浪。夜來香,一抹芬芳,凝眸顧盼回望。情...
    秦居隱客閱讀 303評論 0 0
  • 想知道工作遇啥情況會讓你心堵得慌嗎?職場里充滿著爾虞我詐的競爭,頂著生活的壓力我們只能硬著頭皮上。在職場中,未必所...
    天天愛分享的最新資訊閱讀 554評論 0 1
  • 讀萬卷書,行萬里路。這八個字督促著太多的人。然而好奇心和無知總會讓人們產生懷疑和鄙夷。在你專注于閱讀某本書的時候總...
    繁輝閱讀 365評論 0 0

友情鏈接更多精彩內容