macOS Development Environment

This site and a number of side projects are developed on Apple Mac hardware. This post covers the hardware and software used.

Hardware

Laptop

  • Apple MacBook Pro (15 inch, 2017) Apple Macbook Pro specs
  • Corsair K63 wireless bluetooth mechanical gaming keyboard (Cherry MX Red)
  • Logitech MX Master 2S mouse
  • AOC I1601FWUX 15.6 inch portable IPS LED USB-C monitor

Desktop

  • Apple iMac (Retina 5K, 27 inch, Mid 2015) Apple iMac specs
  • Corsair K70 Mk2 mechanical gaming keyboard (Cherry MX Silent)
  • Logitech MX Master 2S mouse

Software

All software used in the development environment is installed on both the desktop and laptop computers. Software tagged with a * in the heading are pre-requisites for other instructional posts. Installation instructions are included where items are not available through the App Store and/or don't have an installer.

App Store software

  • 1Password 7 (PAID)

Software with installers

Command line installation

Homebrew*

Homebrew is a package manager for macOS. It is used to install and manage predominantly command line utilities.

Download the Homebrew installer and run it with Ruby
1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Python*

macOS comes with Python pre-installed; however, it is an old version and doesn't have all the additional modules required by some of the packages in use.

Install Python 3 and override the built-in macOS Python installation
1
brew install python

NodeJS*

NodeJS is a Javascript runtime used to execute Javascript files. Many example of this site will use AWS Lambda, so NodeJS version 6 and 8 are required; at the time of writing AWS does not support NodeJS version 10.

Install NodeJS and NPM for both version 6 and 8
1
2
brew install node@6
brew install node@8

JQ*

./jq is a command line JSON processor and is used to format (and sometimes interpret) JSON.

Install jq
1
brew install jq

PHP*

PHP is the interpreter for the PHP scripting language. Several versions of PHP are in common use, but for the purposes of this blog only PHP 7.2 (or later) will be used

Install PHP 7.3 and 7.2 and set 7.2 as the default
1
2
3
brew install php
brew unlink php
brew install php@7.2

Composer*

Composer is a PHP dependency manager. It is used in PHP examples throughout this site.

Download composer and install it (skipping the recommended validation)
1
2
3
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

AWS-CLI*

The AWS CLI interfaces to AWS.

Install AWS CLI
1
brew install awscli

An AWS account with API access details is required to use this software; once account details are available the AWS CLI can be configured.

Configure AWS CLI
1
aws configure