Xcode 9 的全新功能
在 Apple 平臺上打造精彩超凡的 app 所需要的一切,Xcode 9 都已為您準備好。即使在編輯最大的文件時,它也能保持超乎想象的高速流暢。它比以往更了解您的代碼,您可以直接在編輯器中選擇和編輯代碼結構,甚至進行代碼塊的轉換。 有了全新的強大重構任務,現在您能迅速地完成 Swift, Objective-C,甚至用戶界面文件上的變量重命名。基于 Swift 4 的兼容性,Xcode 9 使用同一個編譯器來構建已有的 Swift 3 代碼和最新的 Swift 4 代碼。從此,數據遷移的節奏,您說了算。
全新的編輯器
重新構建后的源代碼編輯器帶來了驚人的速度:無論文件多大,它都可以流暢地上下滾動。您可以通過 Preferences (偏好設置) 更好地掌控行間距,設置字體風格,甚至光標類型,使它更符合您的審美標準。新的 command-click 手勢能根據代碼結構顯示相應的代碼塊,讓代碼選擇更形象清晰。重新設計后的 Issues 模塊讓代碼顯示更直觀,Fix-it 提示將按類別進行分組,方便您一次提交多個更改。
在 Markdown 文件中,標題、粗體、斜體文本、鏈接和其他格式將在您鍵入時同步顯現在編輯器中。 Jump Bar 甚至兼容 Markdown 結構,借此您可以快速瀏覽文檔和 README.md 文件。
重構和轉換
全新的編輯器遠不止于文本輸入,更擁有新的內置重構和轉換引擎。當您選擇一個符號或代碼塊時,編輯器會提供如“Extract (提取)”和“Rename (重命名)”等強大操作。Xcode 隨即會直接在編輯器中更新您的代碼結構,讓您能繼續專注于當下的編程工作。Xcode 9 支持以下的轉換和重構功能:
- 補全缺少的協議要求
- 補全缺少的實現存根
- 為抽象方法添加缺少的重寫
- 提取至局部變量
- 提取方法和表達式
- 在 switch (開關) 語句中展開默認值以生成所有適用的 case
- switch 和 if/else 語句的轉換
- 在 NSLocalizedString 宏中包裹字符串
這僅僅是個開始。 作為 Clang 編譯器項目的一部分,Xcode 的本地轉換引擎也將進行開源。
源代碼管理和 GitHub
Xcode 9 和 GitHub 更緊密整合,讓源代碼管理變得簡單不費力。 您的 GitHub 帳戶將內置于 Xcode 中,克隆窗口會顯示您的全部個人 GitHub 存儲庫,和您標記了 star (星號) 的存儲庫;同時,它也方便您搜索所有的 GuitHub;只需輕輕一點,您即可查看任一項目的詳情。
全新的源代碼管理導航器凸顯了我們對 Git 的支持:您可以快速瀏覽每個分支,標簽及遙控提交更改的計劃表;檢查某一條目以查看所有受影響的文件,或雙擊某次提交以查看所有更改內容;如創建和合并分支等常見操作也能在導航器中快速訪問。
Swift 4
得助于 Apple 領導的 Swift.org 開源社區, Swift 中的構建過程非常高速,同時,它也能生產出運行更快的 app 及體積更小的可執行文件。新的 Swift 4 編譯器現已兼容 Swift 3 代碼。您可以輕松地在眨眼之間遷移數據至 Xcode 9:在您的 app 中選擇準備轉移至 Swift 4 的部分,余下部分可稍后再進行遷移。其語言更具有增強的 String (字符串) 類型。
無線調試,剪斷束縛
選擇本地網絡上的任何 iOS 或 tvOS 設備來安裝、運行和調試您的 app,而無需使用 USB 線連接您的 Mac。 首次使用新的 iOS 設備時,只需點擊 Connect via Network (通過網絡連接),從此該設備即可通過網絡無線調試。 無線開發也適用于諸如 Instruments,Accessibility Inspector,Quicktime Player 和 Console 等其他的 app。
模擬和測試
新的模擬器有了顯著的升級,使其不但啟動得更快,還有了新的外觀 — 現在的模擬器看起來和它正在模擬的設備一模一樣。模擬器中的設備按鈕全都具備真實設備按鈕的功能,您甚至可以模擬屏幕邊緣手勢。它對 Touch Bar 的支持更帶來了便捷的快速操作 (例如:只需輕點一下,即可旋轉)。
現在您可以并行運行多個模擬器實例以加快測試過程,也可以測試能協調多個任務 (如跨設備進行 iCloud 同步) 的 app。您能進行完美的自動化測試 — 即使在驅動多個實例時,您也可以簡單地從 command-line 中啟動模擬器。您也能更簡單地在所有 Mac 上設置 Xcode Server:它現在內置于 Xcode 中,不再需要另外的 macOS Server app。無間斷地構建和測試您的 app,從來沒有像此刻一樣輕松簡單過。
50X倍 速 搜 索
全方位提速
作為構建過程的一部分,全新的索引引擎幫助 Xcode 自動理解您的代碼。如 Open Quickly 等使用索引的任務都將顯著提速。大型項目搜索將變得驚人地迅速 — 比起以往,最快可達 50 倍之多。而新的構建系統更大大降低了協調編譯器、鏈接器和其他工具的任務開銷。
您會喜歡的工具。
Xcode IDE 是 Apple 開發體驗的核心。Xcode 與 Cocoa 和 Cocoa Touch 框架緊密集成,為您帶來效率驚人的開發環境,助您為 Mac、iPhone、iPad、Apple Watch 和 Apple TV 構建 app。
從概念到代碼再到客戶,Xcode 帶您順利完成。
一切都完美集成,讓工作流程自然順暢。當您編寫新界面時,Assistant 編輯器會在拆分窗格中直觀地呈現相關源代碼。只需拖動鼠標,即可將 UI 控件與實現代碼關聯起來。Apple LLVM 編譯器技術可解析代碼,使您在 LLDB 調試器中看到的每個符號都與編輯器和編譯器中的內容保持一致。當您打字時,同一引擎持續處于工作狀態,查找錯誤并提供代碼錯誤修復。
Xcode 甚至能夠與 Apple 開發者網站通信,因此您只需點擊一下,即可在 app 中啟用 Game Center 或 Passbook 等服務。與 macOS Server 搭配使用時,Xcode 可以設置遠程 bot,以便連續構建、分析、測試甚至封裝 app。當 app 完成時,Xcode 將打包 app 并將其提交至 App Store。
Assistant 編輯器
Assistant 按鈕將 Xcode 編輯器拆分為兩部分,左側為主工作文稿,右側為智能 Assistant 編輯器窗格。根據您在主編輯器中執行的工作,Assistant 編輯器會自動顯示 Xcode 確定為對您最有幫助的文件。例如,如果您正在編輯器中編輯 MyClass.m,Assistant 將自動顯示對應的 MyClass.h。
Jump Bar (跳轉欄)
點按位于每個編輯器窗格頂部的 Jump Bar,可以快速選擇要在 Assistant 編輯器中查看的信息。例如,當在主編輯器中編輯源代碼時,Assistant 可以顯示對應標題、子類或父類或者相關測試。
Interface Builder
Interface Builder 設計畫布完全集成在 Xcode IDE 中,可以輕松呈現完整用戶界面的原型,而無需編寫任何代碼。在數分鐘內創建出原型,然后以圖形方式將界面關聯到 Xcode 編輯器中的源,設置窗口、按鈕和滑塊的布局,從而創建能夠正常運行的 Mac、iPhone 或 iPad 用戶界面。使用 Assistant 編輯器,您可以使用實現源代碼并行操作圖形設計。只需用鼠標將 UI 控件拖入源窗格,即可創建代碼與界面之間的關聯,甚至可以為您創建代碼存根。了解詳情
版本編輯器和源代碼控制
版本編輯器可以輕松比較文件的兩個版本,查看提交日志,檢查誰更改了代碼,甚至可以縱觀提交時間線。版本編輯器拆分窗格,以顯示同一文件的兩個不同版本。當您查看拆分編輯器視圖的時間線時,差異會突出顯示。Xcode 還可為新項目創建本地 Git 存儲庫,或簽出托管的 Subversion 或 Git 存儲庫。頂層源代碼控制菜單可輕松執行分離和合并操作,非常適用于分散式團隊。
測試
測試驅動的開發是 Xcode 中一流的工作流程。使用 Test Navigator (測試導航器),可以輕而易舉地跳轉到項目中的任何測試、執行一個單獨的測試或者執行一組測試。Assistant 編輯器擁有針對測試的新型視圖,可以自動跟蹤哪些測試在執行當前編輯的代碼,從而讓您的測試和代碼始終保持同步。
自定義
Xcode 環境可以配置,幾乎可以滿足所有工作流程,包括諸如標簽、行為和代碼段的自定義功能。
標簽
使用標簽為項目創建獨一無二的視圖。每個標簽都有自己的導航器、編輯器、助理和實用工具布置區域。您可以為特定任務創建命名標簽,重新排列標簽,或撤銷標簽以創建獨立的窗口。
行為
告訴 Xcode 對事件(比如啟動調試會話或構建時遇到錯誤)執行什么操作。結合標簽,您可以為自己的編輯、設計、構建或調試任務創建自定義工作環境。自定義行為還可通過單一的組合鍵,徹底重新排列您的窗口。
代碼段
代碼段庫中有數十種預配置代碼實現方式,比如定義新類或方法。通過自定義或添加代碼段,只需鍵入少量字符即可插入那些頻繁輸入的代碼。
Open Quickly (快速打開)
使用 Open Quickly (Command-Shift-O) 功能,可快速訪問項目使用的任何文件。Xcode 即刻提供搜索的實現方式,您可以選擇一個方式,然后點擊 Return 來打開文件,或點擊 Option-Return 在 Assistant 編輯器中打開文件。
方案
根據調試、剖析、執行代碼分析或運行測試套件等具體操作,自定義 Xcode 構建和運行 app 的方式。例如,默認方案是運行時在“Debug”(調試) 模式下構建 app,執行 Profile (剖析) 或 Archive (歸檔) 命令時,將針對“Release”(釋放) 構建相同的方案設置。執行各個任務時,無需更改項目設置。Xcode 會自動配置方案,也可使用“Manage Schemes”(管理方案)菜單進行自定義。
內建 Interface Builder
借助 Xcode 內置的 Interface Builder 編輯器,您無需編寫任何代碼,即可輕松設計完整的用戶界面。只需將窗口、按鈕、文本字段和其他對象拖放到設計畫布上,即可創建有效的用戶界面。
Cocoa 和 Cocoa Touch 使用“模型-視圖-控制器”模式構建,因此可以輕松地獨立設計界面,不受實現方式的限制。用戶界面實際上是 Cocoa 或 Cocoa Touch 歸檔對象(保存為 .nib 文件),當 app 運行時,macOS 和 iOS 會自動在 UI 與代碼之間建立關聯。
Storyboard
完整的 iOS app 是由多個供用戶導航的視圖組成的。這些視圖之間的關系由 Storyboard 定義,Storyboard 顯示 app 流的完整視圖。Interface Builder 的 Storyboard 設計器可輕松創建和設計新視圖,并將它們鏈接在一起,形成適用于自定代碼的完整用戶界面。
Xcode 包括以下 Storyboard 控制器:
- 表格視圖控制器
- 集合視圖控制器
- 導航控制器
- 標簽欄控制器
- 頁面視圖控制器
- GLKit 視圖控制器
- 或自定義
Assistant
編輯 Storyboard 或 .xib 文件時打開 Assistant,可以迅速將 UI 控件與實現其行為的代碼關聯起來。如果您尚未編寫代碼,Xcode 將提出為操作創建存根(啟動方法)或出口(保留數據的變量),它們將為界面提供邏輯。
自動布局
iOS 和 macOS 均擁有名為“自動布局”的強大布局系統,該系統為 Interface Builder 提供卓越的內建支持。自動布局基于這樣一種概念:界面中的每個對象均可定義約束條件,用于控制其對父視圖和其他界面控件的響應。例如,當顯示不同語言時,可以讓按鈕優先保持特定大小或擴展以容納更大的文本。
Interface Builder 可自動為您創建所有限制條件,確保提供一套兼容的規則。您還可以直接控制約束條件來定義每個條件的確切優先級,以此定義當屏幕尺寸不同、設備旋轉或在新區域下運行時 app 的工作方式。
預覽
利用預覽模式,您可在不同的環境中快速查看界面,無需運行 app,從而大大加快了迭代設計過程。您可以在縱向或橫向模式下、在以前版本的 iOS 上、在不同的屏幕尺寸下等環境下查看 app。
Xcode IDE
源代碼編輯器
編寫代碼使用的編輯器非常專業,它具有高級的代碼補全功能、代碼折疊功能、語法高亮功能、消息泡泡功能。消息泡泡可以顯示警告信息,錯誤信息以及其他對上下文敏感且與代碼一致的信息。
Assistant Editor
“助理”按鈕將編輯器分為兩部分,創建了一個輔助窗格,它會根據您當前編輯的代碼自動顯示對您最有幫助的文件。該按鈕可以顯示與標頭對應的內容、超類、調用方、被調用方或其他有幫助的文件。
版本編輯器
Xcode 的版本編輯器顯示了一條正在運行的提交時間線,從而幫助您決定責任歸屬,可以回返到以前的某個時刻,然后對源文件進行比較。而且完全支持 Subversion 以及 Git 源代碼控制 (SCM) 系統。
內建 Interface Builder
無需編寫代碼即可設計和測試您的用戶界面,幾分鐘就能設計出原型,然后以圖形方式將界面關聯到 Xcode 編輯器中的源。
模擬器
通過 SDK,Xcode 可以在基于 Mac 的 iOS Simulator 中構建、安裝、運行和調試 Cocoa Touch app,從而獲得無縫開發流程。
集成構建系統
處理最復雜的構件、擴展以最大限度地利用多核 Mac 的功能以及進行自動標記、預置并將 iPad 和 iPhone apps 安裝到設備中。
編譯器
功能強大的 C、C++ 和 Objective-C 開放源 LLVM 編譯器已構建在 Xcode 中,并可從“終端”獲得。借助此編譯器,您的代碼可以快速編譯,并且由 Apple 優化后,可以生成專為 iPhone、iPad 和 Mac 中的 CPU 調試的超快 app。
圖形調試器
在 Xcode 編輯器內直接調試 app。將鼠標懸停在任何變量上可深入分析其內容,使用 Quick Look 可查看其中包含的數據,或者右鍵點按將變量添加到監測列表中。
連續集成
Xcode IDE 配置這些 bot,分析夜間構建和測試結果,以及可以查到哪次入庫破壞了記錄。
資產目錄
Xcode 中的資產目錄編輯器管理 app 的圖像,可將相同資產的各種分辨率圖像分組歸類。構建時,Xcode 將資產目錄編譯成最高效的最終分發捆綁包。
快速打開
使用主編輯器,只需按 Cmd-Shift-O 即可立即打開您工作區內的任何文件,或者在選擇文件的同時按住 Option 鍵即可在助理編輯器中打開。在以鍵盤驅動的任何工作流程中,快速打開是一個必要工具。
OpenGL 幀捕捉
只要按下一個按鈕,即可對 iOS 設備中的當前 OpenGL 幀捕捉其完整的表現。Xcode 顯示著色器的信息,還可以直觀地構建幀在 Xcode 調試器中組合的方式。
完整文檔
文檔查看器將會找到任何您在 Xcode 中搜索的東西,不論是在您的 Mac 上還是在 Apple Developer 網站上。
Live Issues
Live Issues 的工作方式與文字處理工具高亮拼寫錯誤類似,不需要點擊‘構建’命令便可高亮顯示出常見的編碼錯誤。
Fix-it
Xcode 能做的不僅僅是報告錯誤。如果您犯了一個編碼錯誤,Xcode 會立即提醒您。您只需敲一下鍵盤快捷鍵,它就能立刻幫您修正錯誤,這樣就不需要停下來修改錯誤再繼續編碼。
快速幫助
編程時為您顯示簡練的 API 文檔,其中包括為代碼撰寫的注釋。在填寫代碼過程中顯示簡短的概述,并在實用工具區域內提供更多鏈接和參考。
XCTest 框架
有了 XCTest API,構建在 Mac、iPad、iPhone 或 Simulator (模擬器) 上運行 app 功能的單元測試變得更容易簡單。
靜態分析
讓內建的靜態分析工具在數秒內嘗試數千種可能的代碼路徑,這樣甚至可以在 app 運行前找到代碼漏洞。您將獲得一份潛在漏洞的報告,其中列出了也許會一直隱藏或幾乎不可能重現的那些漏洞。
Instruments
記錄數據
告訴 Instruments 分析哪個 app,收集哪類數據,然后只需點擊紅色大按鈕,數據就會被收集并存儲以待進一步分析。
可視化比較
記錄下數據并按時間顯示數據后,很容易看出不同類型數據的關系或多次運行后同類型數據的關系。
深入分析
觀察圖中的數據高峰,查看此時正在執行的代碼,從而方便地進入 Xcode 中解決該問題。
工具庫
在庫中選擇任何捆綁的工具,包括從低層 CPU、網絡或文件活動到高級圖形和用戶事件工具。
Zombie 檢測
當 app 嘗試訪問不再可用的內存時,您可以在 Instruments 內捕獲難以發現的錯誤和崩潰。
源代碼視圖
通過數據點深入分析、進行排序以找出最消耗 CPU 的方法,并直接在 Instruments UI 中查看代碼以查明問題所在。
低開銷取樣
使用低開銷收集高保真信息,只需簡單按鍵即可對性能數據進行取樣。
自定 Instruments
使用 DTrace 和 Instruments 自定構建器創建自己的 Instruments。
系統跟蹤
僅占用非常少的資源,Instruments 即可錄制有關系統中所有進程的信息,從而顯示進程交互引發的性能瓶頸。
macOS 包含的其他工具
命令行工具
下載 macOS SDK,標題和構建工具 (如 Apple LLVM 編譯器和 Make)。 這些工具能助您輕松安裝開源軟件或在終端內的 UNIX 上進行開發。 macOS 可以在您首次嘗試構建軟件時自動下載這些工具,您也可以隨時在下載頁面 (英文) 找到它們。
腳本語言
macOS 自帶的 AppleScript、Perl、Python 和Ruby 皆已默認安裝。 并由于 macOS 在 UNIX 上構建而成,您可以使用 Xcode 或 macOS 隨附的命令行開發工具,輕而易舉地構建流行的開源語言版本。
Apple Event Bridge
底層的 Apple Event 引擎助 AppleScript 和 Automator 擁有強大的功能,使 macOS上 的任務自動化變得輕松又簡單。Apple Event Bridge 讓您使用與 AppleScript 相同的消息架構來命令并查詢由 Objective-C、Ruby 和 Python 等更多語言構建的 app。
音頻工具
AU Lab 工具讓您可以進行音頻流的混合和處理。
Terminal 2
Terminal 2 提供對 UNIX shell 的訪問,同時支持標簽、顏色和 Unicode。
源代碼控制:Git 和 Subversion
Xcode IDE 在 IDE 環境內直接支持這兩種 SCM 系統,而且可以從命令行調用。
UNIX 工具
包括所有熱門命令行工具,比如 make、awk、sed、ssh、tar 和 zip。
編輯器
macOS 中的編輯器包括 TextEdit、xed(Xcode 編輯器)以及 vim 和 emacs。
FileMerge
比較、區分和合并任何文本文檔。