This script allow you to install all the tools you need for setting up your dev environnement on your brand new mac.
Blogpost:
https://medium.com/macoclock/set-up-your-mac-for-development-in-2020-fe38829c8b1f
Also helpful:
curl https://raw.githubusercontent.com/thomaspoignant/mac-dev-setup/master/src/mac-dev-setup.sh | bash
It will install all this tools:
-
The Missing Package Manager for macOS, Homebrew installs the stuff you need that Apple (or your Linux system) didn’t.
After the installation you will be available to install almost everything you need for your mac. You can list installed packages with
brew list
andbrew cask list
.I recommend running brew doctor every now and then to make sure things are good and
brew cleanup
to remove unused files. -
iTerm2 is a replacement for Terminal (https://www.iterm2.com/).
My favorites is that you can split your terminal in multiple views.
-
A delightful community-driven (with 1500+ contributors) framework for managing your zsh configuration. Includes 200+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, php, python, etc), over 140 themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community. https://ohmyz.sh/
There is a ton of great things to do with oh-my-zsh. Powerlevel10k is my theme of choice.
There are also a lot of plugins availablem go check it you will certainly find some things great for your usage.
-
-
ack
is designed as a replacement for 99% of the uses of grep. -
Programmable completion functions for bash.
-
Top-like interface for container metrics
ctop
provides a concise and condensed overview of real-time metrics for multiple containers:as well as an [single container view][single_view] for inspecting a specific container.
ctop
comes with built-in support for Docker and runC; connectors for other container and cluster systems are planned for future releases. -
Command line tool and library for transferring data with URLs.
-
Similar to top but allows you to scroll vertically and horizontally.
-
jq
is a lightweight and flexible command-line JSON processor. -
libpq
is the postgres client command line. -
The next gen ls command.
Pimp your
ls
command to display icons and color to have a better experience. -
A modern and intuitive terminal-based text editor.
-
A collection of simplified and community-driven man pages.
-
tree
is a recursive directory-listing program that produces a depth indented listing of files. -
Software package for retrieving files using HTTP, HTTPS, FTP and FTPS.
-
Tracks your most used directories, based on 'frecency'.
After a short learning phase, z will take you to the most 'frecent' directory that matches ALL of the regexes given on the command line, in order.
For example, z foo bar would match /foo/bar but not /bar/foo.
-
-
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
-
Some great aliases to make your life easier when using GIT command line.
There are a lot of useful aliases, like
git ls
orgit ll
who allow to see your git history. There is a lot more you should check https://github.com/thomaspoignant/gitalias to see the list of available aliases. -
Prevents you from committing passwords and other sensitive information to a git repository.
You're not done yet! You MUST install the git hooks for every repo that you wish to use with
git secrets --install
.
-
-
Jetbrains make the best IDEs in the market,
Intellij
,Webstorm
orGoland
are awesome.We don't want to install all of them because you propably don't need all of them, but the jetbrains toolbox allow you to manage all your installation and update of your jetbrains products.
A great text editor who can be an IDE sometimes.
-
-
ngrok
ngrok
is a great tool who allow to create a port tunnel from your local development environement to internet. So you can expose your local APIs online for testing purpose. -
postman
postman
allow to quickly and easily send REST, SOAP, and GraphQL requests directly within Postman.
- DBeaver
DBeaver
is a nice database viewer who works with most of the recent DB engine.
- Cyberduck
cyberduck
is a libre server and cloud storage browser for Mac.
Should I present what
docker
is?To work with docker we will install the docker runtime and also the docker command line completion who help you to write docker command like a boss.
- docker
- docker command line completion
The main languages I am working with are Java and Go, but here are the main languages you always need, on projects.
- Java
Install the last version of theopenJDK
JVM.
It also installmaven
andgradle
. - Go / Golang
Install the lastgo
version and setGOPATH
into your shell profile file. - NodeJS
Installnvm
and the last version ofnodejs
+yarn
for dependencies management. - Python
Installpython
andpip
so you are ready to go. - Terraform
Install the last version ofterraform
and you are ready to code your infrastructure.
-
-
Development is not coding all day, you also have to collaborate with people and to use you mac for different kind of things.
Here are the most common tools I use every day to work.
-
Note taking app.
-
This is the best screen capture app right now.
Export your video capture as a
GIF
and sharing them is super easy. -
Move and resize windows in macOS using keyboard shortcuts or snap areas.
I use Rectangle a lot — you should master its shortcuts. The main ones I use are:
Left half: ⌥⌘ Arrow-Left Right half: ⌥⌘ Arrow-Right Top half: ⌥⌘ Arrow-Up Bottom half: ⌥⌘ Arrow-Down Center window: ⌥⌘ C Maximize window: ⌥⌘ F
-
The Collaboration Hub. I am not sure I need to present what is slack.
-
Music streaming.
-
Messaging system. I am not sure I need to present what is whatsapp.
-
Free and open source cross-platform multimedia player that plays most multimedia files, and various streaming protocols.
-
-
Because most of the development projects need some web related tools, you need to have most importants web browser of the market.
Here we install, the 3 main one:
If you want to contribute, please open an issue or a pull request and let's talk about the new feature 😉