原文出處: Ben Scheirman
譯文出處: Njuxjy
假設你去到一位熟練的木匠的工作室,你總是能發現他/她有一堆工具來完畢不同的任務。
軟件開發相同如此。
你能夠從軟件開發人員怎樣使用工具中看出他水准怎樣。有經驗的開發人員精於使用工具。
對你眼下所使用的工具不斷研究,同一時候了解一些替代品的使用。當你眼下所用的工具無法滿足你的須要時能夠填補空缺。
記住了這些,我將向你展示一份關於各種工具的長長的列表。當中一些我每天都用,其它的我看情況使用。假設你還有很多其它的工具想展示在這個列表里,能夠跟我留言哦親。
我盡我所能給列表分分類。
有一些是站點,有些是后台服務,但大多數是你能夠裝的應用。不是全部應用都是免費,因此我會用$符號來表示此應用是否要花錢。
廢話不多說,我們立即開始。
靈感
- pttrns – 一個非常棒的按任務分類的iOS屏幕設計圖庫。舉例來說。假設你想看其它應用怎樣處理活動feed,在這兒你能夠找到一堆的樣例。
- TappGala – 還有一個非常棒的優美應用設計的集合站。它不是按任務來分類的,僅僅是一個優秀應用的列表,你能夠在此獲取靈感。
- Cocoa Controls – 一些非常棒的你能夠用在你的iOS應用中的組件(代碼)的列表。
有時你能夠找到一段優秀代碼來節省時間,有時你也能夠學習其它開發人員是怎樣完畢某個功能的。
訂閱他們的每周一報吧,都是精華,極少糟粕。
- IICNS – 真正優秀圖標的集合。
獲取靈感吧。但不要抄襲。
- Dribbble – 最優秀的設計師們在上面展示他們的作品。真正的精品。
- Capptivate – 給人靈感的設計作品圖庫。
有些帶有動畫。
設計
- Mocks ($) – 一個簡單應用的高速創建iOS應用原型的工具。
自帶一些默認控件,你能夠高速搭建原型。
- Briefs ($) – 一個非常實用的應用,能夠讓你創建應用原型,將原型連起來形成交互。你能夠部署到真實設備上,看看在你手上是什么樣的感覺。
- Acorn ($) – Photoshop的有力競爭者。比ps廉價多了。我發現自己近期用Photoshop越來越少了。該項目在積極的開發維護中。
- Sketch ($) – 一個基於矢量的繪圖工具。隨着屏幕尺寸和像素密度的改變,這個工具越來越實用。僅僅須要設計一次,然后能夠依據須要進行縮放。
同一時候還帶有一個非常強大的導出系統。
對於Sketch演示樣例項目,請看Sketchmine。
- 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上的遠程屏幕查看器,在你的設備上能夠立刻輕松地看到你的設計圖。
- Skala Preview ($) – 還有一個非常棒的能夠在真實設備上高速看到你的設計圖的工具。Bjango的朋友們非常給力,這個應用物有所值。
源碼控制
- 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。
- 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應用節省好多空間。
Core Data
- Mogenerator - 一個超實用的工具。在你的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應用非常可能會和server通信分享數據、獲取新內容、發送推送通知等等。盡管你都能夠手動去做。但你也許想要更方便的解決方式。
- Helios - Helios是一個開源的框架,為iOS應用提供了基礎的后台服務,從數據同步、推送通知到應用內購買以及passbook集成。它建立在很多開源ruby gem的基礎上,因此假設你想要的話能夠挑選構建你自己的棧。看一下Nomad CLI,有非常多好用的相關工具。
- Windows Azure Mobile Services - 你能夠把它想象成在雲端的一個可編程數據庫。建表。用JavasScript來讀取、插入、刪除,添加額外的功能。
實現推送通知相當簡單。
- 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看到全部的模塊整合的是否良好。
演示/市場
- Reflector ($) – 將你的iOS設備通過Air Play鏡像到你的Mac上。非常適合在你的電腦上做應用演示
- Placeit - 一些關於人們使用設備的高分辨率的圖的集合,可是設備能夠由你上傳的截屏圖來定制。非常酷,非常適合在你站點上優雅地展示你的應用。
應用銷售報告
你當然想要知道你的應用能賺多少錢,不是么?有一些解決方式。這兒有些還不錯的:
- App Viz 2 ($) – 一個非常實用的Mac應用,能夠跟蹤你應用的銷量。
你在本地執行它,它會登錄並下載你的銷售報告。
- App Annie - 一個在線的銷售報告工具。我不太樂意把我的認證信息交給除了iTunes以外的第三方,但它確實能確保你的報告是最新的,你無需在本地執行一個程序。
摸彩袋
這些工具沒有一個定義好的分類,但值得一提。
- Quick Radar - 提交bug報告給蘋果,是我們唯一能夠幫助他們改善工具的辦法。
假設你由於缺少某個功能感到萬分沮喪,你能夠提交一個bug報告。假設你遇到了一個bug,你相同能夠。假設他們沒有雷達的話,用戶還沒有抱怨的權利:)因此。通過bugreporter來提交bug報告的話好像又回到了1995年。
Quick Radar是一個非常贊的應用。它能夠使提交bug報告變得超級簡單。自己主動公布到開放的雷達,這樣其它人就能看到。也能夠發twitter,公布到App.net。我每周都要用好幾次這個應用。
好了就這么多。
滿滿一牆的工具。希望你以后碰到新工具也能添加到你的兵器庫里。假設你喜歡這篇文章,能夠在NSScreencast里看下我的iOS屏幕錄像。