macOS: essential tools for (Java) developer

Are you considering macOS as your next operating system? Are switching from Windows or Linux to macOS? Do you want to develop in Java on macOS? Or maybe you are looking for tools to help you being more productive?

Read about tools that are essential to me (after switching from Windows to macOS).

Update 05/06/2020 - More tools added, re-organized the tools, added re-usable bash script.

Development

Homebrew

For managing the tools on macOS you should use the package manager. The package manager eliminates the need of manual software management and lets you install, configure, update and uninstall the tools you will need for your work. All is done using Command Line Interface and it works for both command line and GUI tools.

The most common package manager for macOS is Homebrew. Once installed, Homebrew provides the brew command.

Homebrew pacakages (Formulae) can be searched with brew search, installed with brew install, upgraded with brew upgrade, removed with brew uninstall.

Homebrew comes with a Cask extension, available with brew cask command, that provides the same workflow but for the management of macOS applications with graphical user interface. With Cask you can install tools like IntelliJ, Atom, Postman etc. Casks can be searched with brew search command, installed with brew cask install, upgraded with brew upgrade and upgraded with brew uninstall.

Links:

Note: The Homebrew package manager may be used on Linux and Windows Subsystem for Linux (WSL). See the documentation for more details.

iTerm2

A terminal emulator, that lets you run commands using the command line interface (CLI), is an indispensable element of the environment on Unix systems. The macOS built-in terminal has too little to offer, so in order to improve your work I recommend replacing it with the open-source iTerm2.

iTerm2 supports features like split panes, window transparency, hotkey window, full-screen mode, and Growl notifications.

It can perform “smart selection” to highlight URLs, email addresses, filenames, and more. It provides advanced ways of working with the text including copy & paste and search.

And what is most important iTerm2 is fully configurable so it can be adjusted to the needs of more demanding proffessionals.

iTerm2 can be installed with Homebrew:

brew cask install iterm2

Links:

oh-my-zsh

Oh My Zsh is an open source framework for managing your zsh configuration. You can install oh-my-zsh with the following command:

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Note: oh-my-zsh works fine with iTerm2 as well as default macOS Terminal app (as of macOS 10.15 Catalina zsh is a default shell for Terminal app).

Links:

SDKMAN!

SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits called Candidates. Once installed, it provides a convenient sdk command for installing, switching, removing and listing SDKs.

The tool is especially useful for Java developers as it supports SDKs for the JVM such as Java, Groovy, Scala, Kotlin and Ceylon. Gradle, Maven, Spring Boot and many others are also supported.

Install SDKMAN! with the following command:

curl -s "https://get.sdkman.io" | bash

Links:

Git

Git is a distributed version control system, loved because to its high performance, simple structure and strong branching support. In the recent years Git was popularized mainly by services such as GitHub, BitBucket or GitLab, where most open source projects can be found today. Git is a must-have tool.

Git can be installed with Homebrew:

brew install git

Links:

Docker

Docker is an OS-level virtualization that is build around the idea of containers. Containers allow a developer to package up an application with all the software it needs and ship it as a single package.

Docker is natively supported by macOS and can be installed with Homebrew:

brew cask install docker

Note: In order to use docker command you must start Docker app.

Links:

httpie

Httpie is a client-side implementation of the HTTP/1.1 protocol that is an alternative to cURL. Once installed, it provides http command that can be used to execute HTTP requests. If cURL is to heavy to you you should consider checking httpie.

Httpie can be installed with Homebrew:

brew install httpie

Links:

Postman

Postman gained a lot of popularity in the past years, starting as an Chrome extension, today it is a powerful app used by many developers. For me, a must have tool in my toolbox.

Postman can be installed with Homebrew:

brew cask install postman

Links:

Node.js

Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside a web browser. Node.js package come with npm - a package manager for the JavaScript programming language.

brew install node

Yarn

Yarn is another popular package manager for JavaScript.

brew install yarn

Links:

AWS CLI

The AWS Command Line Interface (CLI) is a unified tool to manage your AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts.

brew install awscli

Links:

Editors and IDEs

IntelliJ

IntelliJ is my default Java IDE. It gives me an extensive editor with syntax highlighting, code analysis and error detection. I like its ergonomic user interface, with advanced search functions and keyboard shortcuts support.

IntelliJ is available in two versions: Ultimate (commercial) and Community (open-source). The Community version is completely sufficient for projects that do not use frameworks and technologies for enterprise-class applications.

You can install IntelliJ Ultimate with Homebrew:

brew cask install intellij-idea

Links:

Tip: While switching from Windows I started using IntelliJ with suggested macOS keymap. I recommend doing the same. The shortcuts are optimized for macOS and once you get more productive on macOS itself you will also notice an improvement in IntelliJ.

Visual Studio Code

For basic source code editing or Markdown writing I use Visual Studio Code. VSC comes with built-in support for web technologies like HTML, XML, JavaScript and can be easily extended to support many other languages such as Markdown, Python, PHP, Go or even Java.

One of the first extensions I installed was IntelliJ IDEA Keybindings. With this extension VSC feels a bit like IntelliJ and I don’t need to learn all the new shortcuts (I use VSC much less than IntelliJ). The other extension I use is Markdown All in One. I love it. Writing in Markdown is a pleassure.

Visual Studio Code can be installed with Homebrew:

brew cask install visual-studio-code

Links:

Tip: To preview source code files in Finder I use Quick Look plugins. Checkout out this blog post to learn how to install them in your system: macOS: Preview source code files in Finder with Quick Look plugins

Utilities

Magnet

Magnet is a commercial window manager for macOS. Activated by dragging or with customizable keyboard shortcuts helps organizing windows. For me personally, this is a must have tool.

Links:

Note: Alternatively you may consider using a free Rectangle app, actively maintained and open source window management app. Install with brew: brew cask install rectangle. Documentation of the project can be found on Github

Annotate

Annotate a simple and light-weight screenshot taking app with simple image annotation tools (shape, blur, arrows etc.) and plenty of keyboard shortcuts simplifying its use. Properly configured, Annotate can replace the built-in screenshot tool.

Annotate cannot be installed with Homebrew. You can install it via AppStore: Annotate - Text, Emoji, Stickers and Shapes on Photos and Screenshots

You can read more about Annote on my blog: macOS: Annotate - simple yet productive screenshots tool

AppCleaner

AppCleaner is a small GUI tool which allows uninstall unwanted apps by removing all the files spread around the system. It is also useful when you want to see what files and directories are created by a selected application.

AppCleaner can be installed with Homebrew:

brew cask install appcleaner

Links:

Google Drive

Install Google Backup and Sync to sync Google Drive with your computer.

brew cask install google-backup-and-sync

Links:

Cyberduck

Cyberduck is open-source GUI client for FTP and SFTP, WebDAV. It also supports cloud storage like Amazon S3 or Google Drive. I investigated several tools but I did not find any supporting so many protocols and cloud storages and still being free.

Cyberduck can be installed with Homebrew:

brew cask install cyberduck

Links:

Tunnelblick

Tunnelblick is a free, open source OpenVPN tool that provides easy control of VPN client and/or server connections.

brew cask install tunnelblick

Links:

KeePassXC

I use KeePass for years and the best client for macOS for me is KeePassXC. The tool provides pretty convienient UI and supports keyboard shortcuts I need. If you are looking for KeePass client for macOS, you should consider KeePassXC.

KeePassXC can be installed with Homebrew:

brew cask install keepassxc

Links:

Choosy

Choosy can prompt you to select from the browsers for a particular link. For me this is an essential tool, as I use several browsers on a daily basis, including two Chrome profiles. The tools supports all I need in my daily workflow. It work fast and reliably also when using multiple screens. The application is not free, but you can use the trial for more than 40 days.

brew cask install choosy

Links:

VLC

VLC is a free and open source cross-platform multimedia player that plays most multimedia files.

brew cask install vlc

Links:

Unshaky

Do you expirience problems with butterfly MacBooks keyboards? I do. The main issue is the double key presses. So annoying. But there is one app that solves this problem - Unshaky. Unshaky might save your keyboard by dismissing “second key hits”. And it works perfectly fine for me.

Unshaky can be installed with Homebrew:

brew cask install unshaky

Note: After the installation and configuration you can remove it from the menu bar so you will never notice it. Hold ⌘, drag the tool off menu bar and release. Should be gone.

Links:

What tools are essential to you? Do you miss a tool or app that is essential to you? Please share in comments.

Browsers

Chrome

Google Chrome is one of the main browsers I use on daily basis.

brew cask install google-chrome

Firefox

I use Firefox mainly for web automation projects.

brew cask install firefox

Brave Browser

Brave is a free web browser based on the Chromium engine, focusing primarily on the security and protection of privacy. I use Brave mainly because it supports browsing in Private Window with Tor. Brave is not my default browser though. I used it ocassionally.

Brave can be installed with Homebrew:

brew cask install brave-browser

Links:

Note: On a daily basis I work with Safari (most of the time). I ocassionally use Chrome and Brave. I use Firefox mainly while testing or workinb on automation projects.

Communication Tools

Slack

Slack is a business communication platform that offers many IRC-style features, including persistent chat rooms (channels) organized by topic, private groups, and direct messaging.

brew cask install slack

Links:

WhatsApp

Many of my contacts, incluing my family, use WhatsApp and I am happy to be able to use it on my desktop with no problem.

brew cask install whatsapp

Links:

Signal

Signal is another messaging tool. It very much focuses on privacy. Signal macOS client is not that much functional as WhatsApp (yet), but it is has enough of features I need for my use.

brew cask install signal

Links:

Skype

Do you use Skype? Well, I do. Rarely, but still.

brew cask install skype

Links:

Zoom

I use zoom for several years already and despite all the potential issues I find it very easy to use and full of features I need. Plus, due to COVID-19 it became much more popular, so more and more meetings are actually taking place on Zoom.

brew cask install zoomus

Links:

Install all packages with a bash script

Here below you will find a script that can be used to install most the Homebrew packages in one go. Make sure the file is executable (chmod +x) and make sure you installed Homebrew before running it.

#/bin/sh

# Development

brew cask install iterm2
brew install git
brew cask install docker
brew install httpie
brew cask install postman
brew install node
brew install yarn
brew install awscli
brew cask install intellij-idea
brew cask install visual-studio-code

# Utilities

brew cask install appcleaner
brew cask install google-backup-and-sync
brew cask install cyberduck
brew cask install tunnelblick
brew cask install keepassxc
brew cask install choosy
brew cask install vlc

# Browsers

brew cask install google-chrome
brew cask install firefox
brew cask install brave-browser

# Communication

brew cask install slack
brew cask install whatsapp
brew cask install signal
brew cask install skype
brew cask install zoomus

# Entertainment

brew cask install spotify

Comments

Post a Comment

Popular posts from this blog

Different ways of validating @RequestBody in Spring MVC with @Valid annotation

Asynchrouns and Transactional Event Listeners in Spring