一直想寫這麼一個東西,長期以來我發現很多初學者的問題在於不掌握學習的方法,所以,Xcode那麼好的SDK文檔擺在那裡,對他們也起不到什麼太大的作用。從論壇、微博等等地方看到的初學者提出的問題,也暴露出他們不知道很多他們的疑惑其實在文檔裡面寫的非常清楚。而有時候當他們想從文檔去找解決方案的時候,也往往找不到。或者有些人意識到了,閱讀文檔是學習的好辦法,但是不得要領。
中國的技術社區有一個很沒意思的毛病,就是技術深了,看不懂罵不知所雲,技術淺了,看得懂罵沒有技術含量。不過管那麼孫子做啥,對於現在可能還不知道怎麼閱讀文檔的人,希望這篇文章有所教益吧。
Xcode文檔的結構
如上圖,打開後,整個文檔界面有左面的側欄和右面的內容區域構成。左面的側欄可以選擇不同的文檔庫。你的Xcode裡面一般來說有一組不同版本的iOS文檔庫、一組不同版本的OS X文檔庫,以及一個Xcode文檔庫。
如果你這裡沒有你要查看的文檔庫,你可以選擇Xcode的Preferences菜單,然後選擇Downloads -> Documentation。在這裡可以看到已經下載安裝了的文檔庫,還沒有下載的文檔庫,可以酌情選擇。如下圖:
然後我們看,文檔內容區域的左側導航區域,這裡揭示了文檔庫的結構。如下圖:
首先是,Resource Types,也就是資源類型。文檔庫裡面全部的文檔都是這幾個類型中的一個:
Getting Started —— 新手入門,一般來說,是給完全的新手看的。建議初學者看看,這裡面有一些建立觀念的東西,有了這些建立觀念的東西,後面的學習就比較容易了。Guides —— 指南,指南是Xcode裡面最酷最好的部分,學會看指南則大多數情況完全不用買書。Xcode文檔裡面的指南,就是一個一個問題的,從一個問題,或者系統的一個方面出發,一步一步詳細介紹怎麼使用Cocoa庫的文檔。一般程序員比較熟悉的是Reference,就是你查某個類、方法、函數的文檔時候,冒出來的東西。那些其實是一點一點的細碎知識,光看那些東西就完全沒有脈絡。而Guides就是幫你整理好的學習的脈絡。Reference —— 參考資料。一個一個框架一個一個類組織起來的文檔,包含了每個方法的使用方法。Release Notes —— 發布說明。一個iOS新版本帶來了哪些新特性,這樣的信息,熟悉新iOS,比較不同iOS版本API不同,都需要參考這些文檔。Sample Code —— 示例代碼。蘋果官方提供的一些示例代碼,幫助你學習某些技術某些API。非常強烈建議學習的時候參考,一方面光看文檔有時候還是很難弄明白具體實現是怎麼回事兒。另外一方面這些示例代碼都是蘋果的工程師寫的,你從示例代碼的變遷可以看到蘋果官方推薦的代碼風格流變。Technical Notes —— 技術說明。一些技術主題文章,有空的時候可以浏覽一下。往往會有一些收獲。Technical Q&A —— 常見技術問答。這是技術社區裡面一些常見問題以及回答的整理。Video —— 視頻。目前主要是WWDC的視頻,實際上是登錄到開發者網站上去浏覽的,這裡就是快捷方式。想深入學習的話,一定不能錯過,大量的看,不僅可以學好技術,還可以練好英文。
總結一下,這裡面的Reference、Release Notes、Sample Code、Technical Notes、Technical Q&A,一般來說只是備查的。主要要看的是Getting Started和Guides。
然後下面是Topics,也就是話題,被分為:
Audio & Video —— 音視頻Languages & Utilities —— 語言和工具,Objective-C的一些知識,App Store的管理工具等。Mathematical Computation —— 數學計算。XcodeData Management —— 數據管理。General —— 一般性的問題。Graphics & Animation —— 圖形和動畫。Networking & Internet —— 網絡問題。Performance —— 性能。Security —— 安全。User Experience —— 用戶體驗。
這裡不多說,大多數都是顧名思義的問題。但是值得一提的就是有很多初學者說,我想好好了解下圖形和動畫的技術,但是文檔裡面找不到,這就只能說,你睜著大大的眼睛,為毛左看右看看不到呢?
最下面是Frameworks(框架),分為:
Cocoa Touch Layer Media LayerCore Services LayerCore OS Layer
這裡我們先不討論這個東西,後面會仔細講。
總體來說左邊的導航區域就是用三種不同的維度,來幫你精准定位你需要的內容。
現在我們看內容區域的右邊。注意上面的文檔過濾器。如下圖:
假設,你現在想看關於性能方面的Guides,那麼你應該做的就是在左面的導航,點擊Topics -> Performance,然後在右邊的文檔過濾器上面輸入Guides。或者你也可以在左邊的導航,點擊 Resource Types -> Guides,然後在文檔過濾器裡面輸入 Performance。
熟練使用導航和文檔過濾器的話,學習就會非常方便快捷。
文檔蘋果Apple閱讀
猜你喜歡:蘋果Xcode幫助文檔閱讀指南
共149條回復 回復 樓長
tinyfool 回復於 2013年08月21日 | 更新於 2月前
文檔導讀
前面我們講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裡面別的文檔講的內容雖然不同,但是結構你已經很清楚了,你學習起來很方便。
閱讀本文的目的和檢測標准是,遇到問題,知道看什麼文檔,想提升自己技術的時候,知道按照什麼脈絡自己組織閱讀。
回復2樓
tinyfool 回復於 2013年08月21日 | 更新於 2月前
如何查詢文檔
Quick Help
最快捷的查詢幫助文檔的方法是不需要鍵入任何關鍵詞的。你只需要在Xcode代碼編輯器裡,按住Option鍵,然後點擊你想查詢的關鍵詞,就會獲得關鍵詞的幫助信息。如下圖:
幫助信息會包括,一些簡單的描述、哪個iOS操作系統開始提供,頭文件,參考文檔。頭文件和參考文檔是可以直接點擊的。
即使你點擊的關鍵字不是Cocoa庫的內容,是自己代碼裡面的類或者方法,也可以獲得相關的定義信息。如下圖:
與之相關的熱鍵是Command鍵加鼠標點擊,即可跳到任何一個類名或者方法名的所定義的頭文件。
快速查詢幫助的另外一個方法是直接打開Quick Help欄,如下圖,首先找到“右側欄開關”,然後找到“Quick Help”開關即可打開。
Quick Help欄的作用機制是,只要它在打開狀態,只要輸入光標在什麼關鍵字上,Quick Help欄就會顯示跟關鍵字相關的簡要幫助信息,跟Option鍵加點擊的信息基本一致,但可能略微豐富一點。
寫代碼的時候,在大多數情況下,查詢下快速幫助,看看頭文件,就足以了。
搜索幫助
文檔閱讀界面最左面的上端的放大鏡按鈕就是搜索界面。下圖是我們搜索uiimage,得到的搜索結果。
首先值得注意的是,結果也是分類的,分為Reference、System Guides、Tools Guides、Sample Code這四類。類別很利於我們快速找到我們需要的信息。前面已經介紹過類別,跟那個基本一致,參照即可。
另外需要注意的是,搜索框下面的選項,首先是Hits Must(什麼樣的結果才會命中),包含了三項:
contain search term 這是最常見的就是結果包含搜索詞start with search term 由搜索詞開始match search term 必須完全匹配搜索詞
然後是Languages(語言選項),包含Javascript、C++、Java、Objective-C、C語言。
然後是,Find in(在哪些文檔庫搜索),包含了你Xcode裡面安裝的全部文檔庫。
閱讀文檔
最後,我們簡單介紹下怎麼閱讀文檔。文檔的閱讀界面如下圖:
值得注意的是,標題下面這幾樣:
Inherits from 繼承關系,繼承自Conforms to 遵循什麼協議Framework 屬於什麼框架Availability 從什麼iOS版本開始支持Declared in 頭文件Related sample code 相關例子代碼Companion guide 相關的指南(UIImage沒有,很多其他的類有)
在其次一個很重要的東西,其實是標題上面那一條窄窄的導航欄,那是一個多層樹狀導航欄,看文檔的時候,可以點擊那個欄的不同位置浏覽。
其實這個欄包含了整個文檔庫的組織結構樹狀圖,可惜只有在這個界面才能浏覽。有興趣的可以慢慢浏覽,裡面信息量其實非常大。