Dev Tools

Xcode Command Line Tools

Xcode is a large suite of software development tools and libraries from Apple. The Xcode Command Line Tools are part of Xcode. You don’t need to install the complete Xcode package to get the Xcode Command Line Tools.
console
xcode-select --install
Click "Install" for just the Xcode Command Line Tools.

NOTE: If you do decide to install the complete Xcode suite from the App Store, make sure to start Xcode after install in order to accept the license agreement and to complete the installation.

Homebrew

A package manager for macOS. Homebrew is used to install software packages throughout the remainder of this guide.
console
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Check the Homebrew website for further details.

Git

A source control management system. A version of Git is provided with the Xcode Command Line Tools (Git 2.17.1 with CLT 10.0) but if you want the latest:
console
brew update
brew install git

RVM

Ruby Version Manager (RVM) allows you to easily install, manage, and work with multiple ruby environments.
console
echo "gem: --no-document" >> ~/.gemrc
curl -sSL https://get.rvm.io | bash -s stable
NOTE: If you want to install the latest ruby at the same time then append --ruby to the above command.

Occasionally some projects may require a different version of ruby. Use RVM to manage your ruby environments:
rvm list default
List the default ruby on your mac.
rvm list
List all installed rubies on your mac.
rvm list known
List all known RVM installable rubies. MRI ruby is the most commonly used ruby interpreter and is also the reference implementation.
rvm install ruby-2.5
Install a specific ruby.
rvm --default use ruby-2.3
Make one specific ruby be the default ruby.

Check the RVM website for further details.

NOTE: You may need to install bundler after installing and switching to a new ruby version:
console
gem install bundler

Rails

Rails will be installed as a Gem within each individual project by adding the Rails Gem definition to the project's Gemfile.

Should you wish to install Rails for your current ruby environment:
console
gem install rails

NVM, Node.js and NPM

Node.js is a JavaScript runtime environment. It is required for Ember and Angular development. NPM, a package manager for JavaScript, is bundled with Node.js. Node Version Manager (nvm) allows you to easily install, manage, and work with multiple Node.js versions. It is highly recommended to install Node.js using nvm.

Ensure your login shell script file exists. E.g. for bash:
console
touch ~/.bash_profile
Install nvm:
console
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
Occasionally some projects may require a different version of Node.js. Use nvm to manage your Node.js environments:
nvm ls
List the versions that are installed.
nvm ls-remote
List the versions that are available to install.
nvm install --lts
nvm install --lts=carbon
Install the latest LTS version.
nvm use --lts
nvm use --lts=carbon
Use the latest LTS verison.
nvm install node
Install the latest version.
nvm use node
Use the latest version.
nvm install 6.14.4
Install a specific version.
nvm alias default stable
nvm alias default lts/carbon
Set a default version to be used in any new shell.

Check the nvm website for further details.

Yarn

A package manager for JavaScript. Similar to NPM. I moved over to Yarn from NPM for lock file support but NPM now provides a lock file too. I'll stick with Yarn for now.
console
brew update
brew install yarn

Ember

A JavaScript web framework for creating single-page web applications. Watchman is installed to improve file watching performance on Mac and Linux.
console
brew update
brew install watchman
npm install -g ember-cli
NOTE: To install a specific version of ember-cli use npm install -g ember-cli@3.4.3

Check the ember-cli website for the latest release and the ember website for Guides and API documentation.

NOTE: If you are working with a legacy ember project which uses the bower package manager then you will need to install bower too:
console
npm install -g bower

MySQL

A relational database.
console
brew update
brew install mysql