iOS_高效開發之道

iOS_高效開發之道

話很少說, 總結一下我的感受有利於提升iOS開發效率的幾個小技巧。html

本文將從下面幾方面介紹:ios

  • Xcode常用快捷鍵
  • Xcode調試技巧
  • Objc常用代碼片斷
  • Xcode插件
  • Mac工具

1. Xcode常用快捷鍵


導航快捷鍵


command+1-8:git

打開 Project/Symbol/Find/Issue/Test/Debug/Breakpoint/Log 導航欄github

command+0:數據庫

顯示/隱藏 左側 tool panel編程

option+command+0:vim

顯示/隱藏 右側 tool panelwindows

option+command+1:xcode

顯示 右側 the file inspector瀏覽器

option+command+2:

顯示 右側 quick help inspector

Option+左鍵點擊操做

一個高速打開Assistant Editor的方式–僅僅需要按住Option鍵並點擊你想要在當前編輯框右邊打開的文件就能夠。

shift+command+J:

在項目導航中定位當前文件(Reveal in Project Navigator)。

command+J:

焦點切換(Move Focus),可高速定位到編輯界面

shift+command+Y:

顯示/隱藏 控制檯


搜索快捷鍵


Command+Shift+F

使用項目搜索可以找到某個變量或方法名的被提到的次數。

可以依據實例來匹配。並可忽略大寫和小寫字母。另外還可以對查找的變量名進行替換。

Command + Shift + O

可以直接跳轉到某個方法定義或者指定的代碼文件。

Control+6

(鍵入方法/變量名+Enter跳轉)

跳轉至當前代碼文件裏的代碼行。假設文件裏有上千行代碼。你可以經過該快捷操做來縮小查找範圍。從而在需要的地方插入代碼以加入新的功能。

Control + Command + Up/Down Arrow

.h 和 .m文件間的高速切換

Control + 1

該快捷鍵可打開’Show Related Items‘彈出菜單’。假若你已經將光標放在了不論什麼方法中,並點擊‘CTRL + 1 ’就可以很是方便地經過彈出的視圖訪問該方法的所有調用者和被調用者。


執行調試快捷鍵


Command + R

執行應用程序

Command + B

構建應用程序

Command + .

中止執行(Stop)

Command + \

C前行設置/取消斷點;經過鼠標點擊藍色斷點來啓用/禁用當前行斷點。

Command + Y

全局激活或禁用所有的斷點,激活進入調試模式(此時斷點藍色可見)。

Command + Shift + K

清除project(clean)


編輯快捷鍵


command+[/]

向前/向後縮進

command+/

凝視選中的代碼

option+command+←/→

摺疊當前代碼塊

option+shift+command+←/→

摺疊該文件內所有代碼塊(方法/函數)

option+command+[/]

Move Line Up/Down

Ctrl + F

前移光標

Ctrl + B

後移光標

Ctrl + P

移動光標到上一行

Ctrl + N

移動光標到下一行

Ctrl + A

移動光標到本行行首

Ctrl + E

移動光標到本行行尾

Ctrl + T

交換光標左右兩邊的字符

Ctrl + D

刪除光標右邊的字符

Ctrl + K

刪除本行

Ctrl + L

將插入點置於窗體正中

2. Xcode調試技巧


加入異常斷點


有時候在程序出錯的時候不能能準肯定位到奔潰的那一行代碼,而是直接跑到main循環或者Appdelegate裏面, 或者會給你這種提示:

EXEC_BAD_ACCESS:

是否是有種想哭的衝動?然而你僅僅需要這樣設置全局斷點, 它就會本身主動定位到出錯的位置:


Enable NSZombie Objects(開啓殭屍對象)


Enable NSZombie Objects多是整個Xcode開發環境中最實用的調試技巧。這個技巧很是很是easy追蹤到反覆釋放的問題。該技巧會以很是簡潔的方式打印指出反覆釋放的類和該類的內存地址。

怎麼開啓殭屍對象呢?首先打開’Edit Scheme’(或者經過熱鍵⌘<),而後選擇’Diagnostics’選項卡,勾選Enable NSZombie Objects選項。


unrecognized selector send to instancd 高速定位


在Debug菜單中Breakpoints->Create Symbolic Breakpoint

在Symbolic中填寫例如如下方法簽名:

-[NSObject(NSObject) doesNotRecognizeSelector:]

設置完畢後再遇到類似的錯誤就會定位到詳細的代碼。


條件斷點


顧名思義, 可以依據你指定的條件執行斷點。

這樣僅僅有遍歷到 c==「H」 的時候 斷點纔會被觸發。

至於其它的 ignore, Action 等, 可以本身嘗試下, 都是神器。


Xcode視圖調試


執行app過程當中,按下底部的Debug View Hierarchy button,或者從菜單中選擇Debug > View Debugging > Capture View Hierarchy 來啓動視圖調試。

啓動視圖調試後,Xcode會相應用程序的視圖層次拍一個快照並展現三維原型視圖來探究用戶界面的層級。該三維視圖除了展現app的視圖層次外,還展現每個視圖的位置、順序和視圖尺寸。以及視圖間的交互方式。

在Xcode的調試區有9個視圖調試過程當中要用到的button和滑塊兒。

從左到右控件排序:

  • 調整視圖間距:調整不一樣視圖間的間距。
  • 展現被剪切的內容:當前展現視圖中被剪切的部分。

  • 展現約束:展現選中視圖的約束。

  • 重置查看區域:將3D渲染透視圖恢復至默認狀態。
  • 調整查看模式:選擇性地展現3D渲染透視圖,比方僅展現內容。僅展現框架以及同一時候展現內容和框架。
  • 縮小:縮小3D渲染透視圖
  • 恢復:將3D渲染透視圖恢復至默認尺寸。

  • 放大:放大3D渲染透視圖
  • 調整可視視圖範圍:隱藏視圖或展現視圖。一步步解析3D渲染視圖,向左或者向右滑動滑塊兒有相反的效果。

iOS模擬器調試功能


編譯並執行應用程序,選中模擬器,從 Debug菜單中選擇Color Blended Layers選項。

除了標記圖層外,還有其它一些實用的功能可幫開發人員在iOS模擬器中調試應用。下面是當中一些比較實用的:

  • Toggle Slow Animations in Frontmost App: 選中模擬器,打開Debug菜單選中Toggle Slow Animations in Frontmost App。該功能可以減小app中動畫的執行速度,適合調試包含複雜動畫的應用程序。

    也但是使用快捷鍵Command-T來操做。

  • Color Copied Images:該選項可以給繪製時被Core Animation複製的圖片加入藍綠色疊加層。
  • Color Misaligned Images:假設圖片邊界沒有與目標像素完美對齊,該功能可爲圖片疊加上一層品紅色。假設圖片使用肯定的比例大小繪製,那麼該功能會爲圖片加入一層黃色疊加。

  • Color Off Screen Rendered:.該選項爲離屏渲染內容加入一個黃色的疊加層。
    很是多開發人員會忽略接入電話時應用狀態欄的設計問題,你可以經過觸發通話中狀態欄來簡單測試。

    在iOS模擬器中,從Hardware菜單中選中Toggle In-Call Status Bar。


Quick Look Debugging


自從版本號 5 開始。Xcode 在調試器已經附帶了高速查看顯示。

正如你可以在桌面上高速點擊空格鍵來查看文件的內容。在 Xcode 中你可以用可視化的高速查看各類數據類型。

在咱們的 color 變量上按空格鍵當即給出了一個答案,你腦海中應該當即浮現起了需要 RGB 轉化計算:

同一時候。你還可以直接從代碼的調試中調用高速查看。比方下面的方法,buildPathWithRadius(_:steps:loopCount:)

它創造了某種形式的 UIBezierPath,但你已經忘了,而這段代碼到底是否工做

- (UIBezierPath *)buildPathWithRadius:(CGFloat)radius steps:(CGFloat)steps loopCount:(CGFloat)loopCount {
    CGFloat x, y;
    CGFloat away = radius / steps;
    CGFloat around = loopCount / steps * 2 * M_PI;

    UIBezierPath *path = [UIBezierPath bezierPath];
    [path moveToPoint:CGPointZero];

    for (int i = 1; i <= steps; i++) {
        x = cos(i * around) * i * away;
        y = sin(i * around) * i * away;

        [path addLineToPoint:CGPointMake(x, y)];
    }

    return path;
}

爲了看到結果,你確定可以爲這個 bezier 路徑新建一個本身定義視圖或畫成一個 UIImage。但更好的是。你可以在方法結尾插入一個斷點並把鼠標移上去查看 path:

高速查看支持大多數你想要可視化的數據類型。

Xcode 已經爲你覆蓋了下面幾種類型:

類型 說明
圖片 UIImage,NSImage,UIImageView,NSImageView,CIImage,和 NSBitmapImageRep 都可以高速查看。
顏色 UIColor 和 CGColor。
字符串 NSString 和 NSAttributedString。
幾何 UIBezierPath 和 NSBezierPath,以及 CGPoint,CGRect,和 CGSize。
地區 CLLocation 將顯示一個很是大的,互動的映射位置,並顯示高度和精度的細節。

URLs NSURL 將顯示 URL 所指的本地或遠程的內容。

SpriteKit SKSpriteNode。SKShapeNode。SKTexture,和 SKTextureAtlas 都會被顯示。
數據 NSData 將美麗的顯示出偏移的十六進制和 ASCII 值。

視圖 最後但並不是最不重要的。不論什麼 UIView 子類都將在高速查看彈出框中顯示其內容,方便極了。

3. Objc常用代碼片斷

很是多 Objective-C 代碼事實上都不是必需去手寫。不管是 @interface 聲明仍是 if (!self) return nil; 之類的咒語。Xcode 代碼塊可以把這些反覆的模式和樣板提取出來進行復用。


使用 Xcode 代碼塊


打開編輯器右側的工具面板。就能看到所有可用的代碼塊。在工具面板的下方,有 4 個水平分佈的小圖標。


點擊 { } 圖標可以查看代碼塊倉庫。

有兩種方法將一個代碼塊插入你的代碼:

你可以從代碼塊倉庫拖到你的編輯器裏面:

亦或那些有快捷輸入碼的代碼塊,你可以這樣:


建立 Xcode 代碼塊


建立代碼塊的過程不是很是直觀很是難用文字去描寫敘述。

它使用了 OS X 系統中一個比較隱晦的功能。讓用戶拖拽選中文本生成「剪切文本」。

看下實際操做就很是好理解:

用戶將本身定義的代碼塊加入到庫裏面後,可以雙擊列表中的塊去編輯。

每個塊都有下面內容:

  • Title 標題 - 塊的名字(出現在代碼補全和代碼塊庫列表中)
  • Summary 簡單介紹 - 簡單描寫敘述下它是幹嗎的(僅僅出現在代碼塊庫列表中)
  • Platform 平臺 - 限制可訪問該代碼塊的平臺。OS X,iOS,或者(「所有」)
  • Language 語言 - 限制可訪問該代碼塊的語言。常見的有 C。Objective-C,C++。或 Objective-C++
  • Completion Shortcut 輸入碼 - 快捷輸入碼。常用塊的輸入碼應該很是簡練。

    Xcode 不會警告衝突 / 反覆的輸入碼,因此必定要確保新加入的不要和已有的衝突。

  • Completion Scopes 有效範圍 - 限制可訪問該代碼塊的範圍。if / else 語句的本身主動補全應該僅僅在方法或者函數的實現中有效。下面這些選項可以隨意組合:
    • All 所有
    • Class Implementation 類實現
    • Class Interface Methods 類接口方法
    • Class Interface Variables 類接口變量
    • Code Expression 代碼表達式
    • Function or Method 函數或方法
    • Preprocessor Directive 預處理指令
    • String or Comment 字符串或凝視
    • Top Level 最高層

~/Library/Developer/Xcode/UserData/CodeSnippets/目錄存放了所有 Xcode 代碼段的文件表示


佔位符


在你使用其它代碼塊時你可能已經注意到了這些佔位符:

在 Xcode 中,佔位符使用 <# 和 #>來分隔。中間是佔位文本。
趕忙使用佔位符給你的代碼塊加入一點動態效果吧!


第三方 Xcode 代碼塊


你可以在 這個 GitHub 項目 找到一些好用的代碼塊。

4. Xcode插件

Xcode插件可以大大提升開發效率。


插件安裝方式


  1. 推薦! 使用Alcatraz安裝,commannd + sift + 9 調出圖形界面。而後使用搜索插件安裝
  2. 手動安裝:相應有些好的插件,Alcatraz找不到的話,可以手動下載插件包,而後安裝。 安裝方法:下載附件,解壓後放在:你的用戶/Library/Application Support/Developer/Shared/Xcode/Plug-ins目錄

Alcatraz安裝



推薦插件


  1. KSImageNamed
    • Xcode資源文件在代碼中加入僅僅能感應,好比: [UIImage imageNamed: 會出現項目中的資源文件的智能感應
  2. OMColorSense

    • Xcode 代碼中可以經過選擇顏色生成uicolor代碼
    • 使用:先隨便寫個顏色,而後點擊顏色行。改行的右上角會出現色快,點擊可以選擇顏色。或點擊Xcode導航中的Edit-》insert color
  3. VVDocumenter-Xcode

    • Xcode 按三次斜槓(///)後本身主動生成方法的凝視
  4. fuzzyAutocomplete 。hou或是AutoresizeMask-for-Xcode
    • 增強版僅僅能感應,僅僅是模糊匹配,必裝!

  5. SCXcodeMiniMap
    • 類似Sublime Text 右側的迷你預覽圖
  6. XToDo
    • 代辦列表管理
    • 支持//TODO: //FIXME: //!!!: //???: 快捷鍵各自是 : control + shift + T ,control + shift + X ,control + shift + ! ,control + shift + Q
    • 打開list 快捷鍵control + T
  7. injectionforxcode
  8. XAlign
    • 說明:本身主動對齊代碼
    • 快捷鍵:command+shift+X
  9. Code Pilot
    • Xcode查找文件插件
    • 快捷鍵:command+shift+X,建議替換爲control+X
  10. CocoaPods
    • CocoaPods插件
  11. Peckham
    • 本身主動import頭文件
  12. Dash for Xcode
    • Xcode文檔插件

假設Xcode插件不能知足本身的需求,怎麼辦?

請看本身動手豐衣足食-Xcode插件開發

5. Mac工具

假設你去到一位熟練的木匠的工做室。你老是能發現他/她有一堆工具來完畢不一樣的任務。

軟件開發相同如此。你可以從軟件開發人員怎樣使用工具中看出他水準怎樣。有經驗的開發人員精於使用工具。對你眼下所使用的工具不斷研究,同一時候瞭解一些替代品的使用,當你眼下所用的工具沒法知足你的需要時可以填補空缺。


靈感


  • pttrns - 一個很是棒的按任務分類的iOS屏幕設計圖庫。舉例來講。假設你想看其它應用怎樣處理活動feed。在這兒你可以找到一堆的樣例。
  • TappGala - 還有一個很是棒的優美應用設計的集合站。它不是按任務來分類的。僅僅是一個優秀應用的列表。你可以在此獲取靈感。
  • Cocoa Controls - 一些很是棒的你可以用在你的iOS應用中的組件(代碼)的列表。有時你可以找到一段優秀代碼來節省時間,有時你也可以學習其它開發人員是怎樣完畢某個功能的。訂閱他們的每週一報吧,都是精華,極少糟粕。
  • IICNS - 真正優秀圖標的集合。

    獲取靈感吧。但不要抄襲。

  • Dribbble - 最優秀的設計師們在上面展現他們的做品。真正的精品。
  • Capptivate - 給人靈感的設計做品圖庫。

    有些帶有動畫。

    感謝你,@joaopmaia!


設計


  • Mocks ($) – 一個簡單應用的高速建立iOS應用原型的工具。自帶一些默認控件,你可以高速搭建原型。
  • Briefs ($) – 一個很是實用的應用,可以讓你建立應用原型。將原型連起來造成交互。

    你可以部署到真實設備上,看看在你手上是什麼樣的感受。

  • Acorn ($) – Photoshop的有力競爭者,比ps廉價多了。我發現本身近期用Photoshop愈來愈少了。該項目在積極的開發維護中。
  • Sketch ($) - 一個基於矢量的繪圖工具,隨着屏幕尺寸和像素密度的改變。這個工具愈來愈實用。

    僅僅需要設計一次。而後可以依據需要進行縮放。

    同一時候還帶有一個很是強大的導出系統。

    對於Sketch演示樣例項目。請看Sketchmine。個人 screencast on Sketch上有視頻演示。

  • iOS 7 PSD by Teehan+Lax - 假設你(或者你的設計師)用Photoshop的話,這是個超實用的資源。

    也有 iOS 6版本號的。

  • Bjango’s Photoshop Actions - 假設你用Photoshop來設計iOS應用的話絕對能幫你省時間。一次點擊就能夠重設畫布大小。縮放200%(或50%),設置全局亮度爲90等等。他們的 博客中也有不少Photoshop的工做技巧。

  • xScope ($) – 一把不可或缺的瑞士軍刀。指導。像素放大鏡。屏幕度量等等。想知道某個像素點的顏色值?想知道某個Mac應用的一個button和窗體之間有多少像素?xScope都能幫你。可以看下他們爲鏡像設計所開發的iPhone應用,看鏡像設計在你的蘋果設備上是多麼的像素完美。

  • Glyphish ($) – 一個很是讚的有很是多你的iOS應用可以使用的高質量圖標的集合。

    蘋果提供的內置圖標並很少,所有擁有這麼一個囊括各類概念的圖標集合很是實用。我還在尋找關於嬰兒的一些圖標。Glyphish是以包的形式公佈的,最新的包裏有iOS7的「細線條」圖標,當設計iOS7應用的時候很是實用。

  • Fontastic Icons for iOS - 一個使用圖標字體的開源類集合,好比iOS應用中的Font Awesome

    可以在不論什麼像素維度上高速簡便的獲得一個圖標。

    因爲字體在本質上可以輕鬆縮放。用這種辦法可以很是方便的在不一樣平臺使用的圖標,而無需依據不一樣尺寸導出不一樣的版本號。

  • PaintCode ($) -一個基於向量的繪圖工具。可以將你的做品導出爲Core Graphics源碼。用來學習Core Graphics繪圖是很是棒的,同一時候假設你想要動態繪圖也是很是方便。

    個人screencast on PaintCode上有視屏演示。

  • Edge Insets ($) – 一個幫助你定義可重用圖片邊距的簡單工具。在Mac App Store上有售。
  • LiveView - 一個iOS上的遠程屏幕查看器,在你的設備上可以馬上輕鬆地看到你的設計圖。謝謝你,@_funkyboy!
  • Skala Preview ($) – 還有一個很是棒的可以在真實設備上高速看到你的設計圖的工具。Bjango的朋友們很是給力。這個應用物有所值。謝謝你,jn40!

源碼控制


  • Git - 假設你沒有使用源碼控制的話。停下手中的活馬上作出改變吧。我使用git作不論什麼事情。我超愛它的。

  • Kaleidoscope ($) – 最優秀的diff/merge工具。三路合併,看着很是美麗。我天天都用。
  • p4merge - 一個免費的、簡陋的Kaleidoscope的替代品。

    強大的三路合併功能,但找下載連接不easy啊。我每次要找的時候都認爲在他們站點上藏的很是深啊。

  • Git X - 一個簡單強大的GUI工具,可以看到git的時間線。輕鬆簡便地實現暫存區提交。我一般在終端上使用git,但當我需要將暫存區的改變作一次提交的時候就會想到這個應用。

    這是原來(已經廢棄)的GitX的一個衍生品,我在這個衍生品列表上找到的。

  • Source Tree - 一個免費功能很是全的Git應用。我沒用過是因爲我喜歡命令行的方式,但假設你喜歡用GUI工具的話,可以看看這個。


剖析應用


  • pngcrush - 這個實用工具可以壓縮解壓縮PNG文件。當你想那些App Store上應用裏的圖片時很是實用。

    僅僅要打開iTunes,查看本地應用列表,對圖標右鍵在Finder中打開。而後打開應用,你可以看到一堆PNG文件,但你無法查看它們。使用了pngcrush你可以將它們所有提取出來,而後用預覽來查看。

  • appcrush.rb - 這個很是方便的ruby腳本可以針對所有圖片將以上過程本身主動化。僅僅需將它指向你磁盤上的一個.app文件,它就會將所有圖片提取到你桌面上的一個目錄裏。很是方便地可以知道你手機上的應用怎樣完畢某些設計的。個人my screencast on dissecting apps上有視頻演示。
  • Charles ($, 免費功能受限的試用版) – 我不知道它的界面或者圖標爲什麼如此醜陋,但是Charles是對於不論什麼開發人員來講都很是重要的一個工具。Charles做爲一個代理。贊成你監視進出你iPhone模擬器的網絡流量。

    你相同可以經過將手機的代理設置爲你Mac上正在執行的Charles來監控你設備上的流量。

    字簽名的SSL證書。請求&響應斷點,請求/響應查看器,Charles真心是大讚。一個必須擁有的工具。

    再次,個人dissecting apps上視頻演示。


編輯器


我知道你在想什麼。難道不是所有iOS開發人員都用Xcode嗎?答案是大多數都使用。但從我和Xcode的恩恩怨怨來看。我相信很是有必要來考慮下有哪些替代品。

  • AppCode - Jetbrains(ReSharper for .NET的製做公司)的一款功能全面的IDE。

    強大的重構工具和功能可以幫助你更快地寫代碼。高速識別死代碼,當你使用了相關代碼時本身主動插入#import語句,輕鬆選取變量、方法以及類。我惟一但願的是它能成爲Xcode的一個插件。

  • Vim - 等一下。 vim?真的麼?確實是真的,有人在vim裏作所有的Objective-C開發。我並不是當中之中的一個,但我喜歡用vim開發ruby。就因爲如此,我很是喜歡…
  • Xvim - 一個Xcode插件,能使用vim中的keybindings。

    感受不錯。‘nuff說。

  • OMColorSense -_ _還有一個Xcode插件,當你的光標停留在某個代碼行如:[UIColor redColor]上的時候。它會在一小塊區域裏展現出代碼中的顏色。點擊顏色選項卡會打開顏色選擇器,你在上面作的不論什麼改變都會在代碼裏獲得反映。相應代碼改成[UIColor colorWithRed:… green… blue… alpha:… ]。

    當我開着這個功能寫代碼。別人看到的時候老是問我:「哇哦!

    這是啥玩意!」

  • KSImageNamed - 還有一個Xcode插件,可以在你打下[UIImage imageNamed:…]的時候,本身主動補全bundle中圖片的文件名稱。有了它,就可以避免那些不當心打錯圖片名致使方法返回nil,而後你花10分鐘去檢查爲何圖片沒有展現出來的問題了。
  • CocoaPods Xcode Plugin - 這個插件添加了一個菜單項可以和CocoaPods交互。

    假設你不想用命令行的話很是實用。

  • Alcatraz Package Manager - 一個很是棒的元插件,可以讓你經過輕點鼠標輕鬆安裝其它的Xcode配色方案和插件。

  • Code Runner ($) – 一個輕量級的代碼感知文本編輯器,知道怎麼編譯和執行多種語言的代碼。想高速測試一段Objective-C代碼。又不想建立一整個Xcode項目?試試Code Runner吧。

文檔


啊哈,文檔,每個人最愛的話題。文檔很是重要,所以請注意一下。咱們可以讓你生活變得簡單一些。

  • appledoc - 想本身主動生成蘋果官方那樣的文檔嗎?不用再找了。本身主動在你的項目中定義超連接符號。使用特殊格式的代碼凝視來提取內容。生成正式文檔和HTML網頁。
  • Dash ($) – 一個必須擁有的API文檔查看器和代碼片斷管理器。

    它很是好用。贊成你下載並搜索各類語言和框架的API文檔,而且速度很是快。

    最快訪問文檔的方式。爲了使搜索更快。我把Dash和Alfred集成起來使用


依賴管理


是的,這裏僅僅列舉了一個工具。我不想引入真正的第三方庫列表,因爲它們屬於全然不一樣的還有一個列表。

當咱們談到依賴管理的時候。最最重要的就是:

  • CocoaPods - 管理Objective-C項目的重要工具。

    贊成你輕鬆高速地將第三方庫集成到你的應用中。它是經過建立還有一個靜態庫project。而後本身主動連接到你的project來實現的。有成千上萬個可用的pod,可以輕鬆地爲你的項目添加那些不屬於你(或者私有)的第三方庫支持。我在個人每個項目裏都用了CocoaPods。


診斷調試


有時候咱們正在開發應用。咱們想更好的瞭解究竟發生了什麼,修bug或者改善性能。

  • Cocoa Lumberjack - 一個更強大的NSLog。Cocoa Lumberjack提供了高級日誌行爲,比方記錄日誌到文件、網絡。依據日誌級別來篩選(info,debug,warn,error)。在NSScreencast Episode 61中有提到。
  • DCIntrospect - 當你在模擬器上調試的時候連接到你應用中的超強大的工具。一旦你這麼作了,你可以按下空格鍵來取得一些很是實用的視圖調試支持。

    查看屏幕上視圖元素的精確維度,打印視圖層次,甚至水平或垂直移動視圖。

  • Pony Debugger - 還有一個你可以嵌入一個庫到你調試版本號中的工具。Pony Debugger實際上使用了Chrome的開發工具來查看設備上發出的網絡請求,還有一個主要的Core Data瀏覽器。很是難描寫敘述。請看個人screencast on Pony Debugger吧。

  • Runscope ($) – Runscope是一個網絡服務。可以捕捉請求。記錄日誌,給你關於你的API的實用數據。

    因爲它是個HTTP通道API, 搭建簡單,你僅僅需要更換你的主機名就能夠了。

  • SimPholders - 高速簡單的訪問你的模擬器目錄。依據iOS版本號來瀏覽,而後是應用名,可以直接在Finder中打開目錄。
  • Spark Inspector - 在調試模式執行你的應用時,可以用3D來展現調試你的視圖層次。這個應用你真的要看到了纔會真正明確它的價值。它能幫助你瞭解你的應用是由哪些視圖組成的。

    它還帶有一個通知中心監視器,你可以輕鬆看到發出了哪些NSNotification。誰在觀察它們。

    還有一個監控NSNotification的應用是Reveal


圖像


  • ImageAlpha - 一個Mac應用,可以讓你將24位帶透明度的PNG圖轉成8位的帶alpha通道的PNG圖。

    一般8位PNG圖不帶有alpha通道。所以假設你的圖片可以用8位來表示(比方一個單色的button)的話。你可以經過把25位PNG轉成8位的來節省很是多空間。

  • ImageOptim - 還有一個Mac應用,可以壓縮PNG圖片來節省空間。大多數PNG文件可以省掉幾個百分點的大小,有時甚至30%或不少其它。

    圖片更小意味着應用尺寸更小,執行時載入它們所使用的內存也更小。

  • Prepo - 一個Mac上的小應用。可以將圖片高速變換爲你需要的多個尺寸。僅僅需要拖動一個大圖標文件(比方,1024*1024)到Prepo,它就會生成512*512的iTunesArtwork,114*114的 Icon@2x.png,以及其它的尺寸和文件名稱。
  • Slender ($) -一個很是棒的應用,可以分析你的應用。找出各類問題,比方缺乏視網膜屏的圖片,沒用到的圖片。能壓縮的圖片。使用Slender去除掉那些無用的圖片。可以爲你的iPhone應用節省好多空間。

後臺服務


終於你的iOS應用很是可能會和server通訊分享數據、獲取新內容、發送推送通知等等。儘管你都可以手動去作,但你也許想要更方便的解決方式。

  • Helios - Helios是一個開源的框架,爲iOS應用提供了基礎的後臺服務。從數據同步、推送通知到應用內購買以及passbook集成。

    它創建在不少開源ruby gem的基礎上,所以假設你想要的話可以挑選構建你本身的棧。

    看一下Nomad CLI,有很是多好用的相關工具。

  • Windows Azure Mobile Services - 你可以把它想象成在雲端的一個可編程數據庫。建表,用JavasScript來讀取、插入、刪除,添加額外的功能。

    實現推送通知至關簡單。

  • Urban Airship - 我現在在用Urban Airship來實現推送通知。很是easy集成。用戶量不大的話是免費的。

  • Parse - 這是還有一個雲端數據服務,但是它提供了很是多API以及有一個在線數據瀏覽器。咱們一個很是小的應用用了Parse,感受不錯。


分析


這裏還有些別的選擇,但沒有一個讓我認爲有衝動把flurry換掉的。我樂於聽取意見。歡迎在評論裏告訴我吧。

  • Flurry - 我用flurry很是長時間了,它可以提供用戶使用個人應用的實用的分析數據。想知道何時可以中止支持iOS5麼?Flurry會給你數據供大家討論。


部署


  • Deploymate ($) – 還需要支持iOS4,但是你在用iOS6 SDK編譯?當你使用了一些在你的部署目標上不存在的符號時,Deploymate會警告你的。
  • Cupertino - Nomad CLI工具之中的一個。Cupertino爲你提供了命令行接口來管理蘋果Provisioning Portal上的設備及profile。舉例來講。僅僅要鍵入ios devices:list就可以看到你賬號裏的當前設備列表。

    可以用來本身主動化不少過程。

  • Hockey App ($) – 管理你ad-hoc版本號公佈的不錯服務。

    測試人員可以獲得一個連接。無線安裝新的測試版本號。

    它還提供了健壯的崩潰報告功能。你可以輕鬆應對你應用中的崩潰。

  • TestFlight - 一個類似於Hockey App的免費應用。

    咱們使用TestFlight已經取得了很是大成功。輕鬆公佈應用,從用戶那收集反饋。

    我惟一但願他們能對這個服務進行收費。它還包含了分析和崩潰報告功能,但咱們沒實用到那些功能。

  • iOS Simulator Cropper - 一個拍模擬器屏幕快照的簡單方法,可以選擇帶或者不帶狀態欄。帶或者不帶機器外殼等等。

    對於App Store或者普通市場上的一些截屏很是實用。

  • Status Magic ($) – 拍出更好的app store截屏圖。沒有什麼比App Store上帶有低電量或者低信號標識的截屏圖更讓你的應用看起來糟糕的了。

    Status Magic讓你充分定製你的狀態欄。包含去除一些元素,把時間改爲蘋果喜歡的「9:41 AM」那樣。等等。

  • Crashlytics -對於你正在開發中的應用來講是個很是棒的崩潰報告工具。

    在公佈版裏本身主動上傳dSYM文件,所以你的崩潰日誌會爲你本身主動符號化並組織好。你可以專一於最關鍵的部分。


測試


我認爲咱們做爲一個社區對測試關注得還不夠。

有很是多不錯的工具可用,大多數都很是好用,咱們沒有藉口不爲咱們的應用寫一些測試。

  • Kiwi - 一個不錯的Rspec風格的iOS測試框架。基於SenTestingKit創建,所以你僅僅需按下⌘U來執行你的用例。

    它相同帶有健壯的mocking以及stubbing庫和斷言。

  • Specta -一個類似於Kiwi的輕量級BDD框架,但是它的expectation語法有一個比Kiwi好的地方:每個變量都隱式裝箱:expect(items.count).to.equal(5)。不需要像Kiwi那樣將5包裝成NSNumber。和Expecta搭配使用效果更好。

下面的幾個都可以用來執行端到端的驗收測試。

這些測試會和你的界面交互,點擊button,滾動,等等。

儘管上它們執行會比較慢,但是在大範圍內測試會更easy看到所有的模塊整合的是否良好。


應用分析


你固然想要知道你的應用能賺多少錢。不是麼?有一些解決方式。這兒有些還不錯的:

  • App Viz 2 ($) – 一個很是實用的Mac應用,可以跟蹤你應用的銷量。你在本地執行它,它會登陸並下載你的銷售報告。
  • App Annie - 一個在線的銷售報告工具。我不太樂意把個人認證信息交給除了iTunes之外的第三方。但它確實能確保你的報告是最新的,你無需在本地執行一個程序。在評論中,Josh Brown建議可以建立還有一個用戶用於iTunes Connect中的分析,這個主意不錯。

參考:

iOS各類調試技巧豪華套餐

Xcode Snippets

Xcode Plugins

75 Essential Tools for iOS Developers

相關文章
相關標籤/搜索