我所使用的工具們
工欲善其事,必先利其器。作為創造者,合手的工具可以以倍速提高效率。對於程式設計師來說,特別是對於在 macOS 上做開發的程式設計師來說,我們有非常多的 app 選擇。 同時,也有很多朋友會好奇我日常做開發時都使用一些什麼樣的 app。趁這個機會整理一下自己所偏好使用的一些工具。
數碼荔枝 作為國內有名的軟體經銷商,為我們爭取到了很多中國區特供的優惠價格,文中部分工具也提供了優惠合作的購買連結,您可以先 拿到優惠券 ,然後以中國地區的專供價格進行購買,通常會比到官網購買便宜很多。通過這樣購買的軟體我可以拿到一定的 分成,可能可以 cover 這個站點的運營成本。如果您正好需要購買某個 app 的話,還請不妨考慮這種方式。先謝謝啦!
「優惠連結」中寫的價格是本文寫作時在數碼荔枝商店中的售價,並不包含優惠券的折扣。這個價格可能會有變動,還請留意。
開發工具
Xcode,JetBrains 全家桶之類的這種大家都需要用的就跳過不說了。下面是幾個平時用起來很順手的和軟體開發有關的 macOS app。
Code Runner
Code Runner 的作用很類似於 Xcode 的 Playground,它能提供一個快速驗證和實驗想法的地方,你可以輸入各種語言的程式碼,然後去執行它們,迅速得到結果。我一般用它來驗證一些小段的程式,看看結果是否正確。如果沒問題的話,再把這些程式碼複製到實際專案裡使用。相比於 Xcode 的 Playground,Code Runner 支援各種雜七雜八的語言 (你可以在官網看到詳細的支援列表),並且為部分語言提供開箱即用的媲美 IDE 的補全和除錯支援。
另外,在閒暇時做演算法題或者寫一些有意思的小東西小指令碼的時候,Code Runner 也能幫助我快速開始。值得一提的是,Code Runner 的開發者相當良心,從 version 1 到現在 version 3 的升級,都沒有再額外收費。這也是我想把這個 app 放到第一個來介紹的原因。
VS Code 或者其他一些編輯器也有 外掛的方式 提供類似 Code Runner 的功能,但是很多時候需要額外的配置,功能上也相較羸弱一些。我個人更願意選擇一個即開即用,節省時間精力,而且確實很優秀的方案。
Reveal
自從 Xcode 加入了 View Debugging 以來,很多朋友會問是不是可以替代 Reveal 。我個人的經驗來說,不能。也許簡單一些的介面可以用 Xcode 自帶的湊合,但是如果遇到 view 比較多的複雜介面,或者需要在更深層的地方 (比如 layer 或者某些特定屬性) 中查詢問題的話,Reveal 帶來的便利性遠超 Xcode。
幾乎如果你有 iOS UI 開發的需求的話,這個工具會為你節省好多小時,換算下來,是一款價效比極高的可以無腦入手的重要工具。
Flawless
這是一個比較小眾的工具,它可以把一張圖片注入到 iOS 模擬器裡,然後以覆蓋層或者左右對比的方式,來檢查 UI 的位置尺寸顏色等等一系列屬性有沒有符合要求。對於有設計師出圖和對 UI 還原追求比較極致的同學,是很好的工具,可以幫助你真正做到“一個畫素都不差”的精緻效果。
我之前有一段時間寫了很多 UI 的東西,加上日本這邊 QA 和設計師都蠻挑剔的,真是會追著一個畫素這種問題和你糾纏。這款 app 也幫我省下不少時間來糾結這類問題。但是最近 UI 相對做的比較少,價值就沒有那麼突出了。
另外,我記得我買的時候一個 license 是 $15,但是好像在寫作本文的時候價格變成了 $49,而且只有一年的更新。這相對來說就比較貴了…有興趣但是嫌貴的同學也可以觀望一下。這款 app 還沒有國內的經銷商。
Charles
Charles 這個應該不用再多介紹了,老牌的 HTTP proxy 和代理抓包工具,功能十分強大。不管用來檢測網路請求和響應,還是中途攔截和修改請求,或者是檢測 socket 資料,都可以自由應對。現在開發幾乎不可能不和網路打交道,而 Charles 則讓網路部分的開發和除錯過程變得輕鬆不少。
最近 Charles 也推出了 iOS 版本,可以直接在裝置上執行,免去了來回在手機中設定代理的麻煩,也可以讓 QA 或者測試的小夥伴直接記錄請求。
Fork
我自己是喜歡使用 GUI 來操作 git 倉庫的。幾乎 99% 的日常 git 操作相對並不複雜,使用 GUI 會更直接一些,也更快一些。特別在遇到衝突,或者想要查詢 log 歷史的時候,GUI 的優勢就相當明顯了。我以前的偏好是 Tower ,但是最近 Tower 把收費模式從一次買斷改為了按年訂閱,而且訂閱期滿後則不能再繼續使用。我認為這不是一個工具 app 應該有的收費模式,也很不喜歡它們把一些賣點功能單獨放在更高價的訂閱等級裡的做法,所以我並沒有升級到 Tower 的訂閱。作為替代,我嘗試了很多其他的 Git GUI,最終選擇了 Fork 作為替代。
除了在拖拽支援上還有一點欠缺以外,它能夠很好地滿足我對一個優秀 Git GUI 的一切幻想。特別它還內建瞭解決衝突的介面和對比工具,很好地簡化了 merge 的流程。介面和互動上也經過了精心打磨,作為一款個人開發者的作品,能有這樣的高度和完成度非常不易。
Fork 現在還在 beta 中,但是軟體質量可以說遠遠超出了 beta 的名字,而且作者也承諾今後不會使用訂閱制收費。應該是正式 release 我會第一時間購買的 app。
Paw
在寫網路程式碼的時候,我比較傾向於先動手把網路部分的請求都發一遍,先調通,確認伺服器端的請求返回都沒問題後,再開始開始著手在 app 裡實現相關內容。這時候,一個能幫助儲存 API 請求和相關引數的工具就很有用。 Paw 就是這樣的一個工具:記錄儲存 token,按照不同配置引數來生成網路請求,將請求的內容和返回結果共享給 server 端的小夥伴,甚至最後按照網路請求的配置直接生成程式碼 (雖然這些程式碼不太可能直接用在專案了…)。
Paw 給了我一個“一站式”的不用自己動腦筋去實現的 HTTP Client 和 API 管理的方式。如果記錄保持完整的話,有時候甚至可以作為 server 的狀態和返回的測試來執行,在遇到網路方面的疑難雜症時可以幫助快速定位問題所在。
CodeKit
這是一個前端開發的工具,我主要用它來快速將一些像 Sass 或者 TypeScript 的東西編譯成相應的 CSS 和 JavaScript 等。通常在一個專案裡,這部分內容都應該由類似 Gulp 或者 Webpack 或者 Babel 之類的工具來做。但是我經常會發現,因為我並不是一個專業的 Web 前端開發,很多時候只是在現有的東西上修修改改。通常寫對應的任務和配置,以及從頭開始架設開發環境所花的時間,會比實際做事的時間還長。CodeKit 解決了這個問題,它提供了一套不太需要配置的工作流,把前端語言編譯,asset 壓縮等工作自動化,然後提供了 Hot Reload 的 server 來監視這些變化。
基本上把之前需要自行配置的一系列所謂 modern Web 開發的方式,進行了簡化和封裝,讓不那麼正規的專案也可以從正規的工作流中受益的一個工具。
TablePlus
一個數據庫視覺化的 GUI 工具,可以方便地對 MySQL,PostgreSQL,Redis 和其他各種資料庫進行操作和資料檢視。寫 SQL 或者各類查詢語句是一件挺無趣的事情,使用命令列去對資料庫更改之類的工作也很不方便。這個 GUI 在同一個環境下為不同的資料庫提供 driver,讓我們用更人性化的方式去訪問和修改資料庫。如果是 server 開發,可能會經常有需要查詢和操作資料庫的話,這個工具應該能加速不少。
個人工具
然後是一些個人的管理工具和日常使用的 app。
Things
最近各種事情變多以後,生活經常會沒有條理,往往有那種明明記得應該有什麼事兒沒做,但是就是想不起來的時候,所以需要一個類似 ToDo List 的管理類 app。Things 嚴格來說是一個簡化版的 GTD 類 app,相比最簡單的 ToDo List,它在專案分類和時間節點上做得更好。同時,對比 OmniFocus 這樣的“硬派”任務管理類 app,它足夠簡單容易上手。macOS 版本和 iOS 版本的同步,第三方 app 的支援 (比如從郵件客戶端 Spark 傳送專案給 Things),和不俗的互動及顏值,都是我選擇這個 app 來作為日程管理的理由。畢竟上面記錄了每天都要面對的煩心事兒,要是 app 本身再讓人心煩的話,這生活就沒法過了…
Agenda
作為一個和日曆繫結的筆記本在使用。Things 主要是記錄任務和日程,而 Agenda 主要用來記錄更長一些的想法,比如會議上要做的發言,讀某篇部落格或者某本書的心得體會,這樣的東西。對於任何不太合適扔到 Things 的內容,我都會選擇放到這裡備查。一開始我還擔心按照日期和日曆來組織筆記會有會很奇怪,但是實際用上以後發現其實也還是可以結合專案來整理,筆記的查詢和複習也相當方便。像是會議準備和發言這些內容,更是可以及時歸檔,保持整潔。
Agenda 一個比較有意思的地方,是它的收費模式。它們採用自稱做 「現金奶牛」 的收費方式,每次付費,你可以得到迄今為止的所有附加功能,以及未來一年的更新。即使到期以後,你也可以繼續擁有已有特性以及對新系統的支援,直到下一次出現你想要續費購買的新特性時,你才需要另行付費。這種模式相當新穎,也同時激發了使用者的購買慾和給了開發者持續努力的動力,很有意思。
這個 app 的 iOS 和 macOS 多端同步也非常好,總體質量不愧於 WWDC 2018 的 Design Award。如果還沒有嘗試過的同學,不妨一試。
PDF Expert
Readdle 家的 app 質量都相當有保證,除了這款老牌的 PDF 閱讀器,我同時也在使用他們的 郵件 app Spark 和 日曆 app Calendars 5 。即使以最嚴厲的眼光來看,他們的這些 app 幾乎都挑不出什麼毛病。PDF Expert 提供了優良的瀏覽效能和相當豐富的筆記特性,對於 PDF 效果的還原以及各種輔助閱讀的功能都相當完善。我在 macOS 和 iPad 上都使用它來閱讀和管理各類技術電子書籍。
Bartender
macOS 的右上狀態列一直是“兵家必爭之地”。有些 app 確實利用狀態列圖示做了合適的事情,讓使用 app 變得更加方便。但是也難免有一些“毒瘤”要突出自己的存在感,強制性地把自己的圖示放上去,還不給使用者留出選項。在 app 逐漸變多後,狀態列經常過度膨脹,雜亂無章。Bartender 正是為了解決這個問題而出現的。你可以指定摺疊某些不常用的狀態列圖示,或者乾脆永久隱藏它們。對於 MacBook 筆記本來說,螢幕寬度本來就不像 iMac 那樣可供“揮霍”,所以基本在我的筆記本上這也是保持清爽的必備 app 了。
後記
對於文中沒有介紹到的很多工具,可能在數碼荔枝也有特價出售,您可以 拿到優惠券 ,然後去逛一逛網店看看有沒有需要。
另外,如果你還有什麼值得分享的工具類 app,不論是可以幫助提高開發效率的,還是幫助更好地使用 macOS 的,都歡迎留言提出~也許通過努力,我們也可以為大家爭取到國內的分銷商特價,以造福國內開發者。