{"id":4532,"date":"2020-01-07T17:15:19","date_gmt":"2020-01-07T15:15:19","guid":{"rendered":"https:\/\/www.systemcodegeeks.com\/?p=4532"},"modified":"2020-01-07T11:41:42","modified_gmt":"2020-01-07T09:41:42","slug":"macos-essential-tools-for-java-developer","status":"publish","type":"post","link":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/","title":{"rendered":"macOS: essential tools for (Java) developer"},"content":{"rendered":"\n<p>Are you considering macOS as your next operating system? Are switching from <em>Windows<\/em> or <em>Linux<\/em> to macOS? Do you want to develop in Java on macOS? Or maybe you are looking for tools to help you being more productive?<\/p>\n\n\n\n<p>Read about tools that are essential to me (after switching from Windows to macOS).<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"#development\">Development<\/a>\n<ul>\n<li><a href=\"#homebrew\">Homebrew<\/a><\/li>\n<li><a href=\"#iterm2\">iTerm2<\/a><\/li>\n<li><a href=\"#sdkman\">SDKMAN!<\/a><\/li>\n<li><a href=\"#git\">Git<\/a><\/li>\n<li><a href=\"#docker\">Docker<\/a><\/li>\n<li><a href=\"#intellij\">IntelliJ<\/a><\/li>\n<li><a href=\"#visual-studio-code\">Visual Studio Code<\/a><\/li>\n<\/ul>\n<\/li><li><a href=\"#other-tools\">Other tools<\/a>\n<ul>\n<li><a href=\"#magnet\">Magnet<\/a><\/li>\n<li><a href=\"#annotate\">Annotate<\/a><\/li>\n<li><a href=\"#appcleaner\">AppCleaner<\/a><\/li>\n<li><a href=\"#httpie\">httpie<\/a><\/li>\n<li><a href=\"#postman\">Postman<\/a><\/li>\n<li><a href=\"#cyberduck\">Cyberduck<\/a><\/li>\n<li><a href=\"#keepassxc\">KeePassXC<\/a><\/li>\n<li><a href=\"#brave-browser\">Brave Browser<\/a><\/li>\n<li><a href=\"#unshaky\">Unshaky<\/a><\/li>\n<\/ul>\n<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Development<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Homebrew<\/h3>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>The most common package manager for macOS is <a href=\"https:\/\/www.google.com\/search?client=safari&amp;rls=en&amp;q=homebrew&amp;ie=UTF-8&amp;oe=UTF-8\" target=\"_blank\" rel=\"noopener noreferrer\"><em>Homebrew<\/em><\/a>. Once installed, <em>Homebrew<\/em> provides the <code>brew<\/code> command.<\/p>\n\n\n\n<p><em>Homebrew<\/em> pacakages (<a href=\"https:\/\/formulae.brew.sh\/formula\/\" target=\"_blank\" rel=\"noopener noreferrer\"><em>Formulae<\/em><\/a>) can be searched with <code>brew search<\/code>, installed with <code>brew install<\/code>, upgraded with <code>brew upgrade<\/code>, removed with <code>brew uninstall<\/code>.<\/p>\n\n\n\n<p><em>Homebrew<\/em> comes with a <em>Cask<\/em> extension, available with <code>brew cask<\/code> command, that provides the same workflow but for the management of macOS applications with graphical user interface. With <em>Cask<\/em> you can install tools like <em>IntelliJ<\/em>, <em>Atom<\/em>, <em>Postman<\/em> etc. <em>Casks<\/em> can be searched with <code>brew search<\/code> command, installed with <code>brew cask install<\/code>, upgraded with <code>brew upgrade<\/code> and upgraded with <code>brew uninstall<\/code>.<\/p>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/brew.sh\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/brew.sh<\/a><\/li><\/ul>\n\n\n\n<p>Note: The Homebrew package manager may be used on Linux and Windows Subsystem for Linux (WSL). See the documentation for more details.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">iTerm2<\/h3>\n\n\n\n<p>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 <em>iTerm2<\/em>.<\/p>\n\n\n\n<p><em>iTerm2<\/em> supports features like split panes, window transparency, hotkey window, full-screen mode, and Growl notifications.<\/p>\n\n\n\n<p>It can perform \u201csmart selection\u201d to highlight URLs, email addresses, filenames, and more. It provides advanced ways of working with the text including copy &amp; paste and search.<\/p>\n\n\n\n<p>And what is most important <em>iTerm2<\/em> is fully configurable so it can be adjusted to the needs of more demanding proffessionals.<\/p>\n\n\n\n<p>iTerm2 can be installed with <em>Homebrew<\/em>:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_561767\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">brew cask install iterm2<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/iterm2.com\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/iterm2.com<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">SDKMAN!<\/h2>\n\n\n\n<p><em>SDKMAN!<\/em> is a tool for managing parallel versions of multiple Software Development Kits called <em>Candidates<\/em>. Once installed, it provides a convenient <code>sdk<\/code> command for installing, switching, removing and listing SDKs.<\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>Install <em>SDKMAN!<\/em> with the following command:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_702740\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">curl -s <\/code><code class=\"java string\">\"<a href=\"https:\/\/get.sdkman.io\">https:\/\/get.sdkman.io<\/a>\"<\/code> <code class=\"java plain\">| bash<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/blog.codeleak.pl\/2020\/01\/manage-multiple-java-sdks-with-sdkman.html\" target=\"_blank\" rel=\"noopener noreferrer\">Manage multiple Java SDKs with SDKMAN! with ease<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Git<\/h3>\n\n\n\n<p><em>Git<\/em> is a distributed version control system, loved because to its high performance, simple structure and strong branching support. In the recent years <em>Git<\/em> was popularized mainly by services such as GitHub, BitBucket or GitLab, where most open source projects can be found today. <em>Git<\/em> is a must-have tool.<\/p>\n\n\n\n<p><em>Git<\/em> can be installed with <em>Homebrew<\/em>:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_706515\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">brew install git<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/git-scm.com\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/git-scm.com<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Docker<\/h3>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>Docker is natively supported by macOS and can be installed with <em>Homebrew<\/em>:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_459056\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">brew cask install docker<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Note: In order to use <code>docker<\/code> command you must start <em>Docker<\/em> app.<\/p>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/docs.docker.com\/docker-for-mac\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/docs.docker.com\/docker-for-mac\/<\/a><\/li><li><a href=\"https:\/\/docs.docker.com\/get-started\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/docs.docker.com\/get-started\/<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">IntelliJ<\/h3>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>IntelliJ is available in two versions: <em>Ultimate<\/em> (commercial) and <em>Community<\/em> (open-source). The <em>Community<\/em> version is completely sufficient for projects that do not use frameworks and technologies for enterprise-class applications.<\/p>\n\n\n\n<p>You can install <em>IntelliJ Ultimate<\/em> with <em>Homebrew<\/em>:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_447563\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">brew cask install intellij-idea<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.jetbrains.com\/idea\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.jetbrains.com\/idea\/<\/a><\/li><\/ul>\n\n\n\n<p>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.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Visual Studio Code<\/h3>\n\n\n\n<p>For basic source code editing or Markdown writing I use <em>Visual Studio Code<\/em>. <em>VSC<\/em> 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.<\/p>\n\n\n\n<p>One of the first extensions I installed was <em>IntelliJ IDEA Keybindings<\/em>. With this extension <em>VSC<\/em> feels a bit like IntelliJ and I don\u2019t need to learn all the new shortcuts (I use <em>VSC<\/em> much less than IntelliJ). The other extension I use is <em>Markdown All in One<\/em>. I love it. Writing in Markdown is a pleassure.<\/p>\n\n\n\n<p><em>Visual Studio Code<\/em> can be installed with <em>Homebrew<\/em>:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_722137\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">brew cask install visual-studio-code<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/code.visualstudio.com\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/code.visualstudio.com<\/a><\/li><li><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=yzhang.markdown-all-in-one\" target=\"_blank\" rel=\"noopener noreferrer\">Markdown All in One<\/a><\/li><\/ul>\n\n\n\n<p>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: <a href=\"https:\/\/blog.codeleak.pl\/2019\/10\/macos-preview-source-code-files.html\" target=\"_blank\" rel=\"noopener noreferrer\">macOS: Preview source code files in Finder with Quick Look plugins<br><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Other tools<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Magnet<\/h3>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/magnet.crowdcafe.com\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/magnet.crowdcafe.com<\/a><\/li><\/ul>\n\n\n\n<p>Note: Alternatively you may consider using a free <a href=\"https:\/\/www.spectacleapp.com\/\"><em>Spectacle<\/em> app<\/a>, although it is not actively maintained anymore and I did not check if it works properly on macOS Catalina.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Annotate<\/h3>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>Annotate cannot be installed with <em>Homebrew<\/em>. You can install it via AppStore: <a href=\"https:\/\/apps.apple.com\/us\/app\/annotate-text-emoji-stickers-shapes-on-photos-screenshots\/id994933038\" target=\"_blank\" rel=\"noopener noreferrer\">Annotate &#8211; Text, Emoji, Stickers and Shapes on Photos and Screenshots<\/a><\/p>\n\n\n\n<p>You can read more about Annote on my blog: <a href=\"https:\/\/blog.codeleak.pl\/2019\/04\/annotate-simple-yet-productive.html\" target=\"_blank\" rel=\"noopener noreferrer\"> macOS: Annotate &#8211; simple yet productive screenshots tool<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">AppCleaner<\/h3>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>AppCleaner can be installed with <em>Homebrew<\/em>:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_723506\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">brew cask install appcleaner<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/freemacsoft.net\/appcleaner\/\" target=\"_blank\" rel=\"noopener noreferrer\">AppCleaner<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">httpie<\/h3>\n\n\n\n<p><em>Httpie<\/em> is a client-side implementation of the HTTP\/1.1 protocol that is an alternative to <em>cURL<\/em>. Once installed, it provides <code>http<\/code> command that can be used to execute HTTP requests. If <em>cURL<\/em> is to heavy to you you should consider checking <em>httpie<\/em>.<\/p>\n\n\n\n<p><em>Httpie<\/em> can be installed with <em>Homebrew<\/em>:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_879235\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">brew install httpie<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/httpie.org\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/httpie.org<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Postman<\/h3>\n\n\n\n<p><em>Postman<\/em> 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.<\/p>\n\n\n\n<p><em>Postman<\/em> can be installed with <em>Homebrew<\/em>:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_317466\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">brew cask install postman<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.getpostman.com\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.getpostman.com<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cyberduck<\/h3>\n\n\n\n<p><em>Cyberduck<\/em> is an 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.<\/p>\n\n\n\n<p><em>Cyberduck<\/em> can be installed with <em>Homebrew<\/em>:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_59663\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">brew cask install cyberduck<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/cyberduck.io\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/cyberduck.io<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">KeePassXC<\/h3>\n\n\n\n<p>I use <em>KeePass<\/em> for years and the best client for macOS for me is <em>KeePassXC<\/em>. The tool provides pretty convienient UI and supports keyboard shortcuts I need. If you are looking for <em>KeePass<\/em> client for macOS, you should consider <em>KeePassXC<\/em>.<\/p>\n\n\n\n<p><em>KeePassXC<\/em> can be installed with <em>Homebrew<\/em>:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_914558\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">brew cask install keepassxc<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/keepassxc.org\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/keepassxc.org<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Brave Browser<\/h3>\n\n\n\n<p><em>Brave<\/em> is a free web browser based on the Chromium engine, focusing primarily on the security and protection of privacy. I use <em>Brave<\/em> mainly because it supports browsing in Private Window with Tor. Brave is not my default browser though. I used it ocassionally.<\/p>\n\n\n\n<p><em>Brave<\/em> can be installed with <em>Homebrew<\/em>:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_520491\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">brew cask install brave-browser<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/brave.com\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/brave.com<\/a><\/li><\/ul>\n\n\n\n<p>Note: On a daily basis I work with <em>Safari<\/em> (most of the time). I ocassionally use <em>Chrome<\/em> and <em>Brave<\/em>. I use Firefox mainly while testing or workinb on automation projects.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Unshaky<\/h3>\n\n\n\n<p>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 &#8211; <em>Unshaky<\/em>. <em>Unshaky<\/em> might save your keyboard by dismissing \u201csecond key hits\u201d. And it works perfectly fine for me.<\/p>\n\n\n\n<p>Unshaky can be installed with <em>Homebrew<\/em>:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_369144\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">brew cask install unshaky<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Note: After the installation and configuration you can remove it from the menu bar so you will never notice it. Hold \u2318, drag the tool off menu bar and release. Should be gone.<\/p>\n\n\n\n<p>Links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/unshaky.nestederror.com\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/unshaky.nestederror.com<\/a><\/li><\/ul>\n\n\n\n<p><strong><em>What tools are essential to you?<\/em><\/strong> Do you miss a tool or app that is essential to you? Please share in comments.<\/p>\n\n\n\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>Published on System Code Geeks with permission by Rafal Borowiec, partner at our <a href=\"\/\/www.systemcodegeeks.com\/join-us\/scg\/\" target=\"_blank\" rel=\"noopener noreferrer\">SCG program<\/a>. See the original article here: <a href=\"https:\/\/blog.codeleak.pl\/2020\/01\/macos-essential-tools-for-java-developer.html\" target=\"_blank\" rel=\"noopener noreferrer\">macOS: essential tools for (Java) developer<\/a><\/p>\n<p>Opinions expressed by System Code Geeks contributors are their own.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>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). Development Homebrew &hellip;<\/p>\n","protected":false},"author":4718,"featured_media":193,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-4532","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mac-os"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>macOS: essential tools for (Java) developer - System Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Interested to learn about macOS? Check our article presenting some tools which are essential if you are switching to macos operating system.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"macOS: essential tools for (Java) developer - System Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Interested to learn about macOS? Check our article presenting some tools which are essential if you are switching to macos operating system.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/\" \/>\n<meta property=\"og:site_name\" content=\"System Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/systemcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-07T15:15:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/macos-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Rafal Borowiec\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@kolorobot\" \/>\n<meta name=\"twitter:site\" content=\"@systemcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rafal Borowiec\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/\"},\"author\":{\"name\":\"Rafal Borowiec\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/9cdc13bf3e15382a57eb23cf841ae685\"},\"headline\":\"macOS: essential tools for (Java) developer\",\"datePublished\":\"2020-01-07T15:15:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/\"},\"wordCount\":1475,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/macos-logo.jpg\",\"articleSection\":[\"Mac OS\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/\",\"url\":\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/\",\"name\":\"macOS: essential tools for (Java) developer - System Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/macos-logo.jpg\",\"datePublished\":\"2020-01-07T15:15:19+00:00\",\"description\":\"Interested to learn about macOS? Check our article presenting some tools which are essential if you are switching to macos operating system.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#primaryimage\",\"url\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/macos-logo.jpg\",\"contentUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/macos-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.systemcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mac OS\",\"item\":\"https:\/\/www.systemcodegeeks.com\/category\/mac-os\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"macOS: essential tools for (Java) developer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#website\",\"url\":\"https:\/\/www.systemcodegeeks.com\/\",\"name\":\"System Code Geeks\",\"description\":\"Operating System Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.systemcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.systemcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/systemcodegeeks\",\"https:\/\/x.com\/systemcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/9cdc13bf3e15382a57eb23cf841ae685\",\"name\":\"Rafal Borowiec\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e24680b2ba3dfc13759acf6c1f125e54356bc533e0befe953fea365cadcdaffb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e24680b2ba3dfc13759acf6c1f125e54356bc533e0befe953fea365cadcdaffb?s=96&d=mm&r=g\",\"caption\":\"Rafal Borowiec\"},\"description\":\"Software developer, Team Leader, Agile practitioner, occasional blogger, lecturer. Open Source enthusiast, quality oriented and open-minded.\",\"sameAs\":[\"http:\/\/blog.codeleak.pl\/\",\"http:\/\/pl.linkedin.com\/in\/borowiec\/\",\"https:\/\/x.com\/kolorobot\"],\"url\":\"https:\/\/www.systemcodegeeks.com\/author\/rafal-borowiec\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"macOS: essential tools for (Java) developer - System Code Geeks - 2026","description":"Interested to learn about macOS? Check our article presenting some tools which are essential if you are switching to macos operating system.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/","og_locale":"en_US","og_type":"article","og_title":"macOS: essential tools for (Java) developer - System Code Geeks - 2026","og_description":"Interested to learn about macOS? Check our article presenting some tools which are essential if you are switching to macos operating system.","og_url":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/","og_site_name":"System Code Geeks","article_publisher":"https:\/\/www.facebook.com\/systemcodegeeks","article_published_time":"2020-01-07T15:15:19+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/macos-logo.jpg","type":"image\/jpeg"}],"author":"Rafal Borowiec","twitter_card":"summary_large_image","twitter_creator":"@kolorobot","twitter_site":"@systemcodegeeks","twitter_misc":{"Written by":"Rafal Borowiec","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#article","isPartOf":{"@id":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/"},"author":{"name":"Rafal Borowiec","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/9cdc13bf3e15382a57eb23cf841ae685"},"headline":"macOS: essential tools for (Java) developer","datePublished":"2020-01-07T15:15:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/"},"wordCount":1475,"commentCount":0,"publisher":{"@id":"https:\/\/www.systemcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#primaryimage"},"thumbnailUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/macos-logo.jpg","articleSection":["Mac OS"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/","url":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/","name":"macOS: essential tools for (Java) developer - System Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.systemcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#primaryimage"},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#primaryimage"},"thumbnailUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/macos-logo.jpg","datePublished":"2020-01-07T15:15:19+00:00","description":"Interested to learn about macOS? Check our article presenting some tools which are essential if you are switching to macos operating system.","breadcrumb":{"@id":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#primaryimage","url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/macos-logo.jpg","contentUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/macos-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.systemcodegeeks.com\/mac-os\/macos-essential-tools-for-java-developer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.systemcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Mac OS","item":"https:\/\/www.systemcodegeeks.com\/category\/mac-os\/"},{"@type":"ListItem","position":3,"name":"macOS: essential tools for (Java) developer"}]},{"@type":"WebSite","@id":"https:\/\/www.systemcodegeeks.com\/#website","url":"https:\/\/www.systemcodegeeks.com\/","name":"System Code Geeks","description":"Operating System Developers Resource Center","publisher":{"@id":"https:\/\/www.systemcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.systemcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.systemcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.systemcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/systemcodegeeks","https:\/\/x.com\/systemcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/9cdc13bf3e15382a57eb23cf841ae685","name":"Rafal Borowiec","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e24680b2ba3dfc13759acf6c1f125e54356bc533e0befe953fea365cadcdaffb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e24680b2ba3dfc13759acf6c1f125e54356bc533e0befe953fea365cadcdaffb?s=96&d=mm&r=g","caption":"Rafal Borowiec"},"description":"Software developer, Team Leader, Agile practitioner, occasional blogger, lecturer. Open Source enthusiast, quality oriented and open-minded.","sameAs":["http:\/\/blog.codeleak.pl\/","http:\/\/pl.linkedin.com\/in\/borowiec\/","https:\/\/x.com\/kolorobot"],"url":"https:\/\/www.systemcodegeeks.com\/author\/rafal-borowiec\/"}]}},"_links":{"self":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts\/4532","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/users\/4718"}],"replies":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/comments?post=4532"}],"version-history":[{"count":0,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts\/4532\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/media\/193"}],"wp:attachment":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/media?parent=4532"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/categories?post=4532"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/tags?post=4532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}