A new machine. Now what? Time to set it all up. Inevitably I end up going back and forth from my old machine or worse yet, my memory, to figure out what needs to be installed. No more. Today, I have compiled a list of everything I need to feel productive with a new dev machine. Perhaps, this can help you as well.
Software
I spend the majority of my time developing mobile applications. I work on both Android and iOS platforms. Further, I often need to inspect REST and GraphQL APIs. The following items help me to get my job done:
- MacDown – Markdown editor
- Evernote – Notes, checklists, bookmarks
- Dropbox – Document storage
- Alfred App – Productivity tool
- Postman – API Request execution and testing
- Android Studio – Android app development
- Xcode – iOS app development
- Visual Studio Code – General IDE
- GitHub Desktop – Git GUI
- LastPass – Password manager
- Deckset – Markdown-based slide decks
Homebrew
Homebrew is a package manager that makes it easier for you to install things on your Mac or Linux machine. Here are the basic things I use it for:
- Java 8 (Android Development) –
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
- GraphiQL (GraphQL browser) –
brew cask install graphiql
- Git LFS (Large File Storage) –
brew install git-lfs
- Git Flow (Git branching model) –
brew install git-flow
Chrome Extensions
- Grammarly – Checking my words
- LastPass – Password manager
- Evernote Web Clipper – Bookmarking
- Dream Afar New Tab – Daily delight
- Zoom Scheduler – Video conferencing
- Nimbus Screenshot & Screen Recorder – Screenshots
- Clockwise – Focus time
Oh My Zsh
Oh My Zsh is an open-source framework for managing your zsh configuration. I like it for the useful plugins that make working on the command line easier.
These are the plugins that I use:
plugins=(git git-flow compleat zsh-autosuggestions)
The zsh-autosuggestions
plugin requires special setup:
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
Aliases
Typing everything out. Who has time for that? Not me. I use aliases as much as I can. These can be defined in the ~/.zshrc
file. Here’s a taste of a few to get you started:
alias ma="cd ~/dev/meetup-android"
alias mi="cd ~/dev/meetup-ios"
alias fs="git flow feature start $@"
alias aid="./gradlew assembleInternalDebug"
alias iid="./gradlew installInternalDebug"
alias install="adb install -r"
What’s something you can’t live without on your new dev machine? Share in the comments section below. Thanks