標籤:
文檔導讀
https://developer.apple.com/legacy/library/navigation/
前面我們講Xcode的文檔結構是在介紹如何能夠快速定位到你要找的內容。但是很多人的問題可能是一開始就根本不知道要讀什麼。
這裡我們就介紹自學iOS開發應該遵循或者說我們推薦的必讀文檔的讀取順序。
讀取順序:
- 《馬上著手開發 iOS 應用程式 (Start Developing iOS Apps Today)》
- 《Your First iOS App》
- 《Your Second iOS App: Storyboards》
- 《Your Third iOS App: iCloud》
- 《iOS Technology Overview》
- 《iOS Human Interface Guidelines》
- 《Learning Objective-C: A Primer》和《Programming with Objective-C》
- 《iOS App Programming Guide》
- 《View Programming Guide for iOS》和《View Controller Programming Guide for iOS》
- 《Table View Programming Guide for iOS》
首先應該看的是Getting Started裡面的《馬上著手開發 iOS 應用程式 (Start Developing iOS Apps Today)》(中英文版本皆有,蘋果官方的翻譯)。這個文檔講的很淺,但是是建立概念的文檔,你以後在開發裡面經常遇到的概念,在這裡都有包含,特別注意是,這個文檔看起來簡單,但是每頁下面的相關文章,不是選讀,都是必讀。
即使是很多做了iOS開發很久的同學,其實也有很多概念上的誤解,現代程式開發越來越簡單,工具越來越強大,往往有些誤解也可以繼續前行,但是實際上不建立紮實的基礎是很吃虧的,往往後面理解和解決一個不難解決小問題都要付出很多辛苦。
閱讀這個文檔的目的和檢測標準是,以後你看到iOS開發中的基本概念,都大致所有瞭解。
讀完《馬上著手開發 iOS 應用程式 (Start Developing iOS Apps Today)》後,應該去看Your XXX iOS App系列這個系列不是什麼很難的文章,你也不必著急先去學習Objective-C,學什麼C語言就更不要著急。我推薦的學習方法是有成就的逐步學習法。在學習系統體系架構、Objective-C之前,你可以先按照文檔寫一個全天下最簡單的App,完成學習過程中第一個裡程碑。在這個過程中不用擔心有什麼疑問,有什麼不懂,先照著做就是。
閱讀這三個文檔的目的和檢測標準是,把這三個Demo App做出來在模擬器上跑起來。
在這個過程中,你對開發工具的基本認識就建立起來了,也有了成就感,去了魅(就是消除了對iOS開發的神秘感)。
再往下,建議你去看《iOS Technology Overview》(iOS技術概覽),iOS不是一個技術,而是一堆技術,前一篇講到文檔導航地區的分類,架構分類的時候,我說不細講的原因就在於此,你要做一個動畫應該用Core Animation還是OpenGL?你要做一些文本相關操作應該用Core Text還是什麼,就是看這裡。
學習現代的程式開發,語言和架構並重。我們Tiny4Cocoa叫做這個名字的原因就是,iOS/Mac開發人員的代表往往就是這個Cocoa架構,就是這個SDK。大多數你所需要的功能都躺在架構裡面,你知道架構的結構,你才知道怎麼去尋找相關的技術資料。
閱讀這個文檔的目的和檢測標準是,遇到具體問題,知道應該去看哪方面的文檔。
再下來,建議閱讀的是《iOS Human Interface Guidelines》,Mac/iOS平台雖然也是百花齊放各類程式、App都有,但是總體看來,大多數優秀App的UI看起來都和整個系統很協調。這和Windows以及很多其他平台完全不同。這是為什麼呢?
很大程度就歸功於《Human Interface Guidelines》文化,所謂Human Interface Guidelines就是使用者介面的規範,在蘋果它還專門有一個縮寫叫做HIG,是天條一樣的東西。所有的App都推薦遵循HIG,遵循了HIG,你做的東西使用者看起來就會覺得和整個系統很協調。即使是你要做一些創新的設計,你勢必會打破HIG的限制,但是你這個時候仍舊應該遵循HIG的精神。
此外,你閱讀HIG的很重要一點是瞭解整個UI結構和UE行為的邏輯機理,這樣才能在你設計介面的時候有所依據。
閱讀這個文檔的目的和檢測標準是,看到任何一個App,你可以知道它的任何一個UI是系統控制項,還是自訂控制項,它的層次關係等等。
《Learning Objective-C: A Primer》是非常初級和簡單的入門,適合先閱讀。《Programming with Objective-C》超微複雜一點點,適合後閱讀。
一般人建議先學習語言,我反之建議先做了一個App,然後再學習語言。原因有幾個,首先現代開發工具,往往不是用來開發控制台程式的,上來就會有架構,光懂語言不會使用IDE,甚至可能會更麻煩。再其次就是,其實現代語言發展到了物件導向以後,庫往往比語言更複雜,更重要,或者說更多的時候,我們是在學習庫,而不是語言,語言只是庫的一個載體。
比如,Delegate和Block等等都和Cocoa的UI非同步機制關係緊密,光看代碼,這些語言元素非常難以學習,也完全不知道其意義在哪裡。
閱讀這個文檔的目的和檢測標準是,看得懂基本的Objective-C代碼,方便後面的學習和閱讀各種範例程式碼。
《iOS App Programming Guide》基本上介紹的就是開發一個App的完整流程,包括App的生命週期、休眠、啟用等等,裡面介紹的細節頗多。正式開發第一個上線的App之前必看。或者開發了一個App,臨到提交前必看才文檔。
閱讀這個文檔的目的和檢測標準是,瞭解全部流程和很多細節問題。
《View Programming Guide for iOS》和《View Controller Programming Guide for iOS》非常重要。View是整個圖形介面裡面最重要的概念。所有的圖形、介面繪製都基於View。你看到的一切複雜的使用者介面,就是各種不同的View的組合堆疊。
View Controller是View和某種邏輯在一起的組合,本質上這種組合不是必須的,但是是大大降低編程複雜度的一種設計。很多人不懂什麼是View什麼是View Controller,這樣寫起代碼來就很痛苦。
閱讀這個文檔的目的和檢測標準是,深刻理解什麼是View,什麼是View Controller,理解什麼情況用View,什麼情況用View Controller。
UITableView是最重要的一個控制項,是最常用的UI介面元素。在UICollectionView出現之前,大量的內容列表展示的自訂控制項都是基於UITableView,比如很多書架、圖片Grid其實都是UITableView做的。
所以《Table View Programming Guide for iOS》非常重要,一定要好好閱讀。
閱讀這個文檔的目的和檢測標準是,深刻理解UITableView/UITableViewController的理論和使用方法。
我推薦的必讀文檔就這麼多,仔細看的話,最多也就是今天就看完了。學習一個東西,如果有一點點耐心,有正確的方法其實不難,不是說腦子非要很聰明,大多數人都可以做到一個星期就學會iOS開發,其實就是讀完這些文檔,大多數人就會了。
就像我強調了無數次,閱讀英文文檔不難,我自己從當年看英文文檔非常吃力,必須查詞典開始,認真的看英文文檔,不會就查詞典,一個多月過去,讀英文文檔就完全不需要查詞典了。
我們公司主程 @sycx 老師,也說他原來英語也很不好,甚至現在英語仍舊很爛,但是看英文文檔完全沒有問題,也就是幾個星期的認真學習以後就突破了。
其實學習iOS也如此。當然我不是說你看懂這10組文檔就再也不用看別的了。而是說,如果你看懂了這10組文檔,你就從初學者,或者是雖然會寫一些程式,但是對iOS其實還不懂的狀態,變成了一個入門者。
我不希望這個文章可以一句一句的幫你學會iOS是什麼,這個文章的目的是幫你快速入門。一旦你入門了,你再遇到問題該看什麼,你就不需要我講了,你自己就知道了。一旦入門了,你就會發現,Xcode裡面別的文檔講的內容雖然不同,但是結構你已經很清楚了,你學習起來很方便。
閱讀本文的目的和檢測標準是,遇到問題,知道看什麼文檔,想提升自己技術的時候,知道按照什麼脈絡自己組織閱讀。
蘋果Xcode協助文檔閱讀指南