如何成為一名入門級 iOS 開發者及Demo

desaco發表於2016-02-16

58 同城 iOS 客戶端搜尋模組元件化實踐- http://blog.csdn.net/csdnnews/article/details/78088447

最受歡迎的開源專案資訊(iOS)- http://www.csdn.net/tag/%E6%9C%80%E5%8F%97%E6%AC%A2%E8%BF%8E%E7%9A%84%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE/news

如何成為一名入門級 iOS 開發者- http://swift.gg/2016/02/15/how-to-become-a-developer-1/#基本的_CS_知識
原文連結- https://www.alloc-init.com/blog/2016.01.26

iOS - http://blog.csdn.net/u012515223/article/category/3225739

iOS開發 非常全的三方庫、外掛、大牛部落格等- http://www.jianshu.com/p/247a75c0fdd8#

  最近我一直在幫我的幾個朋友開始學習 iOS 開發,然後被問到一個開始學習需要的清單。聽起來很適合為此寫一篇部落格。閒話少說,我給你列出來要成為一名入門級的 iOS 開發者必須掌握的知識清單(不分先後順序)。
1. 基本的 CS 知識
我不覺得投身開發移動應用必須得有一個電腦科學的博士學位,我認為這應該歸為“加分項”那一欄,但是對資料結構和演算法有一定基本的瞭解肯定會防止開發新手們寫程式碼把自己寫到死衚衕裡去。所以對新手來說,我推薦你們去看Youtube上的哈佛CS50課程,把它看做是你入門的開始,這些課程淺顯易懂,還十分有意思。


2. Swift 還是 Objective-C
還是那個觀點,你無需到達能夠寫這兩種語言的技術性部落格的水平,或者是到能夠教課的程度,但是你還是至少得能用這兩種中其一來程式設計,不用過於頻繁的檢視語法。API是另外一碼事兒,尤其是在 iOS 中,框架每年更新,很多方法也經常被棄用。對我來說大多數工作時間開一個 Safari 頁面去看 Apple 的文件並不是偶然的事情。嘗試著記著所有的太讓人厭煩了。要讓你自己達到在沒有幫助的情況下可以寫類、結構體、迴圈、函式(類和例項)、分配變數、表示式求值的水平。
目前我們正處於一個比較奇怪的時段,這個時候招只會 Objective-C 的人還是能被接受的。Swift 還是很新,除非你進的公司裡有頻繁的專案更替,否則你就得基本上用 Objective-C。也就是說,有很多的公司正決定轉向 Swift(我的公司就是),如果你就會 Swift 的話,找一個工作也不會特別難。重要的是要對你所選擇的那個語言足夠熟練,然後至少對另外一個也要熟悉到能讀懂程式碼的程度。


3. 框架和 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)
資料持久化 (NSCoding, NSUserDefaults, CoreData)
記憶體管理 (什麼是迴圈引用,以及 ARC 的基本原理)
開發中的設計模式
模式很重要,它讓你的開發變得容易、程式碼變得清晰。要確保你瞭解基本的設計模式,這些模式在 iOS 的框架中被廣泛使用,你在不知道它們的情況下不大可能做出來很多東西(還有很多其他模式,但是你可以隨做隨學)。


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

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

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

7. 工具
你應該熟悉一些常見的開發工具。
Xcode(廢話)
Git 版本控制(一些公司可能會用 Subversion 或者 Mercurial,但是 git 把你領進門應該是足夠的。)
JIRA 或者 Bugzilla(基本就是 JIRA,你也是不需要成為使用它的專家,但是你應該至少把它玩個大概,第一次看見它介面的時候別怕)
CocoaPods(這是管理依賴性和第三方程式碼的工具,我還沒聽過哪個公司不用它)
見解
對 iOS,Swift 或甚至對某個 API 有你自己的見解能特別有效的讓面試官知道你對某個知識點的瞭解到底有多深。這還會讓我們能看到你的熱情。如果你參加一個面試被問到“你覺得 Swift 如何?”,回答“我覺得,還行吧”可不是正確的答案,你可以告訴他們你對 optionals 的看法,你有多喜歡某個 feature。這裡不會有太多錯誤的答案,重要的是你得有東西可說。

8. 作品集
事實勝於雄辯。如果你想在面試中表現優異的話,可以把一些簡單 app 合在一起(或者更好的是把它們釋出在 AppStore 上)。展示出你能夠獨立完成一個專案的能力。我怎麼推薦這點都不嫌多。GitHub 也很好,但是如果你選擇這條路,面試官想測試一下你的程式碼的話,要儘可能讓它能夠輕鬆通過編譯。

我寫了篇文章介紹怎樣做一個應用程式,可以點選這裡看看。
--------------------------------------------------------------

Objective-C基礎- http://blog.csdn.net/q4878802/article/category/6057250
IOS開發入門- http://blog.csdn.net/q4878802/article/category/6055667

相關文章