你可以從軟體開發人員如何使用工具中看出他水準如何。有經驗的開發人員精於使用工具。對你目前所使用的工具不斷研究,同時瞭解一些替代品的使用,當你目前所用的工具無法滿足你的需要時可以填補空缺。記住了這些,我將向你展示一份關於各種工具的長長的列表。其中一些我每天都用,其他的我看情況使用。如果你還有更多的工具想展示在這個列表裡,可以跟我留言哦親。 我盡我所能給列表分分類。有一些是網站,有些是後台服務,但大多數是你可以裝的應用。不是所有應用都是免費,因此我會用$符號來表示此應用是否要花錢。廢話不多說,我們馬上開始。 靈感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應用的一個按鈕和視窗之間有多少像素?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的替代品。強大的三路合并功能,但找下載連結不容易啊。我每次要找的時候都覺得在他們網站上藏的很深啊。 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。 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項目的重要工具。允許你輕鬆快速地將第三方庫整合到你的應用中。它是通過建立另一個靜態庫工程,然後自動連結到你的工程來實現的。有成千上萬個可用的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位來表示(比如一個單色的按鈕)的話,你可以通過把25位PNG轉成8位的來節省很多空間。 ImageOptim - 另一個Mac應用,可以壓縮PNG圖片來節省空間的。大多數PNG檔案可以省掉幾個百分點的大小,有時甚至30%或更多。圖片更小意味著應用尺寸更小,運行時載入它們所使用的記憶體也更小。Prepo - 一個Mac上的小應用,可以將圖片快速變換為你需要的多個尺寸。只需要拖動一個大表徵圖檔案(比如,1024*1024)到Prepo,它就會產生512*512的iTunesArtwork,114*114的 Icon@2x.png,以及其他的尺寸和檔案名稱。 Slender ($) -一個很棒的應用,可以分析你的應用,找出各種問題,比如缺少視網膜屏的圖片,沒用到的圖片,能壓縮的圖片。使用Slender去除掉那些沒用的圖片,可以為你的iPhone應用節省好多空間。 Core DataMogenerator - 一個超有用的工具,在你的Core Data模型中產生NSManagedObjects智能子類。有些人使用Xcode完成這功能,通過手動子類化或者建立分類來為模型增加邏輯。Mogenerator作為先行編譯指令碼運行來產生你可以使用的子類。它通過建立帶有底線的版本(_User)以及正常你可以修改的版本(User)來實現。 Base ($) – 你肯定會需要查看你的Core Data sqlite資料庫來檢查發生了什麼。你可以使用sqlite3命令列工具,但Base給了你一個方便查看的GUI瀏覽器。當你看到Core Data為你建立的資料庫schema時你可不要吐哦。 Core Data Editor ($) -對於一些更進階的資料分析、發掘以及修改,你可以使用Core Data Editor。這個應用瞭解Core Data,因此你是在直接和實體打交道,而不是資料庫行。 後台服務最終你的iOS應用很可能會和伺服器通訊分享資料、擷取新內容、發送推播通知等等。雖然你都可以手動去做,但你或許想要更方便的解決方案。Helios - Helios是一個開源的架構,為iOS應用提供了基礎的後台服務,從資料同步、推播通知到在應用程式內購買以及passbook整合。它建立在許多開源ruby gem的基礎上,因此如果你想要的話可以挑選構建你自己的棧。看一下Nomad CLI,有很多好用的相關工具。 Windows Azure Mobile Services - 你可以把它想象成在雲端的一個可程式化資料庫。建表,用JavasScript來讀取、插入、刪除,增加額外的功能。實現推播通知相當簡單。 Urban Airship - 我現在在用Urban Airship來實現推播通知。很容易整合,使用者量不大的話是免費的。 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搭配使用效果更好。 以下的幾個都可以用來執行端到端的驗收測試。這些測試會和你的介面互動,點擊按鈕,滾動,等等。雖然上它們運行會比較慢,但是在大範圍內測試會更容易看到所有的模組整合的是否良好。KIF Calabash Zucchini Frank Bwoken 示範/市場Reflector ($) – 將你的iOS裝置通過Air Play鏡像到你的Mac上。很適合在你的電腦上做應用示範。Placeit - 一些關於人們使用裝置的高解析度的圖的集合,但是裝置可以由你上傳的截屏圖來定製。很酷,很適合在你網站上優雅地展示你的應用。 應用銷售報告你當然想要知道你的應用能賺多少錢,不是嗎?有一些解決方案,這兒有些還不錯的:App Viz 2 ($) – 一個很有用的Mac應用,可以跟蹤你應用的銷量。你在本地運行它,它會登入並下載你的銷售報告。 App Annie - 一個線上的銷售報告工具。我不太樂意把我的認證資訊交給除了iTunes以外的第三方,但它確實能確保你的報告是最新的,你無需在本地運行一個程式。在評論中,Josh Brown建議可以建立另一個使用者用於iTunes Connect中的分析,這個主意不錯。 摸彩袋這些工具沒有一個定義好的分類,但值得一提。Quick Radar - 提交bug報告給蘋果,是我們唯一可以協助他們改善工具的辦法。如果你由於缺少某個功能感到萬分沮喪,你可以提交一個bug報告。如果你遇到了一個bug,你同樣可以。如果他們沒有雷達的話,使用者還沒有抱怨的權利。因此,通過bug reporter來提交bug報告的話好像又回到了1995年。Quick Radar是一個很贊的應用,它可以使提交bug報告變得超級簡單。自動發布到開放的雷達,這樣其他人就能看到,也可以發twitter,發布到App.net。我每周都要用好幾次這個應用。 好了就這麼多。滿滿一牆的工具。希望你以後碰到新工具也能加入到你的兵器庫裡。如果你喜歡這篇文章,可以在NSScreencast裡看下我的iOS螢幕錄影。