My Essentials Tools
I am going to hand over my work device this Friday since it will be my last day here in Boost. I thought it would be interesting to document the collection of tools I have used over the years. Many of these have been already documented in my dotfiles repo but still, I just want to share it here for fun.
Selected CLI tools
I think I have countless CLI apps installed for development and most of it are pretty common to have, like git
, mysql
or too low-level (coreutils
, cmake
) so I will exclude those. Here is the list of tools that I like and somewhat uncommon, most of which are installed using brew
.
- ack: the better
grep
- antigen: plugin manager for
zsh
. It’s similar tooh-my-zsh
, but it has faster startup times. - asdf: to manage multiple versions of
ruby
,node
,python
, etc. I don’t have to install and remember how to usenvm
orrbenv
anymore. - carthage: dependency manager for iOS, similar to Cocoapods. Installed it since my current company uses it, but I don’t really prefer it.
- diff-so-fancy: to prettify
git diff
output in terminal. - chisel: Collection of LLDB commands to help debug iOS apps. Created by the Facebook team.
- gh: CLI to interact with GitHub API. I use it to quickly create or delete remote repo from terminal.
- goreleaser: to package go app as binaries.
- mkcert: to create local self-signed certificates. I usually use it when I need to create certs during app development.
- quicktype: to convert JSON to model quickly. Rarely used it since I mostly use their app instead.
- tree: to quickly inspect the directory structure from CLI
- swiftlint: linter for Swift to enforce coding style guidelines.
- vim:
:q!
- xcbeautify to prettify the
xcodebuild
logs. Installed when I was working on setting up iOS CI/CD pipelines. - xcodes: to install Xcode from CLI. Friends don’t let friends installed Xcode through AppStore. It helps me too easily switch between multiple Xcodes versions too.
- youtube-dl: to download videos
- z: to easily jump around between directories.
Noteworthy Apps
Beyond CLI tools, here are some applications that have been integral to my development workflow:
- Xcode : the main tool I use for my day-to-day development. I have multiple Xcode installed in fact. Xcode-15.0.0, Xcode-14.3.1 and Xcode-14.1.0. All installed using
xcodes
. - Copilot for Xcode: 3rd-party app that I use to have GitHub Copilot on Xcode. It’s not as good as Copilot on VSCode, but it works.
- Android Studio: official IDE for Android. I use it sometimes when I feel like learning Android or Flutter development.
- VSCode: code editor I use for anything besides Swift.
- Ulysses: app focus on writing. Bought a 1-year subscription when I first published a post on my SubStack account, SwiftByte. 🙈
- Raycast: Spotlight on steroids. I used to use Alfred 3, but I don’t really feel like paying for the upgrades, so I tried RayCast. Fell in love with it right away.
- Figma: the native app for Figma. I used it whenever I want to hyper-focus on building UIs.
- DBeaver: database browser. Can support multiple types of DB like mysql, postgresql, sqlite etc through plugins. Installed using Cask
- DB Browser for sqlite: similar to DBeaver. I use it whenever I need to inspect local database in mobile apps since it has a much simpler interface. Installed using Cask.
- Logseq: a note-taking app or personal knowledge base? I don’t know, but I used it for quick note-taking and also document my learnings. Though I have since migrated to Obsidian. Installed using Cask.
- Obsidian: somewhat similar to Logseq.
- NetNewsWire: RSS reader.
- Arc: the better Chrome browser. Although I feel like migrating to Safari soon since it already supports multiple profiles.
- Deckset: to make pretty presentations using Markdown. Usually, I use this whenever I have a knowledge sharing session.
- Hammerspoon: macOS automation tools through Lua scripting. I use it to script tiling-window manager and some other stuffs. Installed using Cask.
- The Unarchiver: for unarchiving any non
.zip
files. Installed using Cask. - ImageOptim: to compress images before uploading it to web. Installed using Cask.
- Postman: for debugging and testing HTTP requests
- Apple Developer: honestly, I hate the fact that most of Apple docs are hidden behind WWDC videos.
- SF Symbols: for inspecting Apple SF Symbols icons.
- Discord: for chats. I joined programming related groups here.
- iTerm2: terminal emulator. Just better features compared to stock terminal. Installed using Cask
- Docker: Don’t really use it that much, but it’s nice to have whenever I want to fire up an instance since most OSS these days provide docker images. Installed using Cask.
- Dash: API documentation browser. I still have the old version. Planning to upgrade soon.
- Sublime Merge: git client. I use it together with
git
CLI. Mostly for resolving conflicts and visualising git tree. - Telegram: for chats. Joined a couple of programming related groups here as well. Installed using Cask
- tomato: my own app. A simple pomodoro app that lives in my menu bar. Installed using Cask.
Others
- font-iosevka: my favourite monospace fonts. Installed using
brew
.
These tools have speed up my workflow over the years and made my life easier. I hope you find some of these useful.