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

Apple Macbook Pro specs

Laptop

  • Apple MacBook Pro (15 inch, 2017)
  • 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

Apple iMac specs

Desktop

  • Apple iMac (Retina 5K, 27 inch, Mid 2015)
  • 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.

/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.

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.

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.

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

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.


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.

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.

aws configure