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 to oh-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 use nvm or rbenv 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.