Developer System Setup
Propsed Changes:
- Browsers
- xcode
- Mobile Emulators
- Global Package Manager (homebrew)
- Python
- Ruby
- ?JVM? - brew install jenv - medium
- brew install kotlin
- do we need kotlin native?
- Additional Languages
- Node
- NVM
-
Git
- Terminal
- Customise terminal
- vscode
- Customise vscode
- IntelliJ IDEA (if you have a licence)
- SSH
Table of Contents
- Browsers
- Mobile Emulators
- Global Package Manger
- Python
- Terminal
- Code Editor / IDE
- Node
- NVM
- Git
- SSH
- Git Hosting
- CI/CD
- NPM js
Browsers
You’ll need a web browser to…use the web. Get Both.
Mobile Emulators
- Xcode (developer tools) from the app store
then the command-line tools (this takes a long time):
xcode-select --install
Once Xcode is installed a link to the Ios simulator can be created by launching xcode:
- Selecting 'xcode' menu -> 'Open Developer Tool' -> 'simulator'.
- Once the simulator is open, drag its icon from the Launcher into the 'Applications' directory
Global Package Manger
A Global Package Manager will allow you to install libraries and tools that did not come with the Operating System.
Even when writting a Javascript project there will come a need for a Ruby, or Python Library, and you’ll need a package Manager to help with that.
-
Operating System Specific Notes:
If you are on Linux, you already have one, but you can stil install homebrew.
If you are on OS X, you need Homebrew
If you are using Windows; Stop. Use Linux or OSX.
One line install:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Make sure homebrew is up to date
brew update
Check the health of your homebrew install
brew doctor
Python
OS X ships with Python, so you can likely skip this step, but you may endup coming back if there is an issue installing something with pip.
# Install cmake to do builds
brew install cmake
# Install python...that was the goal here
brew install python
# Install pip so that we can load python packages
sudo easy_install pip
Terminal
The Terminal (or console to some) is an invaluable tool for modifying files, folders, system code, configurations, and running tasks.
There are a lot of tools for the terminal that will greatly ease and speed up you development.
If it seems daunting at first, don’t worry. You can mostly get away with copying and pasting until you are comfortable.
Taking time to customise the terminal’s shell, Plugins, Themes and colours is a great way to demystify it. It may not seem important to theme your terminal, but it will greatly empower you, as it helps you discover plugins and features.
- OS X
-
Linux
- Install zsh (subsitute yum, or zypper as your system requires)
sudo apt update sudo apt upgrade sudo apt install zsh- Set zsh as the default/login shell
- List the available shells
cat /etc/shells - Use chsh to change shells (using one of the paths listed from cat)
chsh -s /usr/bin/zsh
- List the available shells
-
Windows
** Use Linux
Code Editor
A good Text Editor, Code Editor, or Integrated Development Environment is vital in helping to Write, find and modify code.
There are a lot of options when it comes to picking an Editor, but at the time of writing, Visual Studio Code is the preferred choice amongst Javascript Developers.
Node
Javascript originally just ran in the browser. It was used to decorate websites.
Now Javascript runs almost everywhere, and can be used for a lot more that just creating pop-ups.
The most common way to run Javascript outside of the browser is Node.
Node is a Javascript runtime, built on the V8 Engine. That’s the same engine that browsers like Chrome, and Edge use.
Install with Homebrew:
brew install node
or
One liner to install node in OSX:
curl "https://nodejs.org/dist/latest/node-${VERSION:-$(wget -qO- https://nodejs.org/dist/latest/ | sed -nE 's|.*>node-(.*)\.pkg</a>.*|\1|p')}.pkg" > "$HOME/Downloads/node-latest.pkg" && sudo installer -store -pkg "$HOME/Downloads/node-latest.pkg" -target "/"
NVM
Node Version Manager, or NVM allows you to easily install and switch between node versions.
This is really useful if you want to run an older project, or start working on something that uses Node features that are new, or experimental.
Install nvm via Homebrew
brew install nvm
Create system directory for nvm
mkdir ~/.nvm
Add following line to your profile. (.profile or .zshrc or .zprofile)
# NVM
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
Reload Your profile
source ~/.zshrc
Confirm that nvm works
nvm --version
List the currently installed versions of Node
nvm ls
Install a Node version
nvm install 12.8.1
Git
Git is a distributed version-control system for tracking changes in source code during software development.
Git is the de facto tool for tracking changes, hosting and sharing code. It will save you when you break you code, or need to find out what it was that you, or someone else did to the code.
One line install
brew install git
### Git LFS
Some repos use git LFS (Large File Storage) to help manage the repo size when dealing with Big files like images.
brew install git-lfs
git install lfs
### Git Tools
-
GUIs
SSH Keys
ssh keys (Secure SHell) are a way to secure, or authenticate your account for remote login.
You will use ssh keys to securely login, create, or modify code, account settings, and more using external sites and service providers.
Go to your .ssh Directory
cd ~/.ssh
Check for existing keys, there should be ‘id_rsa’ (your private key) and ‘id_rsa.pub’ (your public key)
ls -al .
If they are not there, create them
ssh-keygen -t rsa -C "your_email@example.com"
Follow the prompts
Just press [enter]
Enter file in which to save the key (~/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Your identification has been saved in ~/.ssh/id_rsa.
Your public key has been saved in ~/.ssh/id_rsa.pub.
The key fingerprint is:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:** example@e
The key's randomart image is:
+--[ RSA 2048]----+
| .oo. |
| p |
| dd |
| . = = . |
| - t - . |
| -+-+-+-+ |
| ¯\_(ツ)_/¯ |
| |
| |
+-----------------+
Using SSH key
Open your public key file id_rsa.pub
code ./id_rsa.pub
copy the entire file contents and paste it into the input field of the site’s ssh key

Git Hosting account
Now that we have git, we’ll want somewhere to store the code. Especially if we want to share it.
Just sign up for a free account with any of these providers (but really, use Github):
It is also possible that you work for a company that hosts thier own git instance. Just follow thier directions to setup.
You will also want to set up ssh keys for that account
Make sure that you have a public ssh key
CI/CD Account
Continuous Integration and Continuous Delivery platforms provide tools for updating, testing, publishing and releasing code.
These are a great way to automate the mundane tasks of checking out code, installing, building, running tests, bundling, and releasing.
CI/CD Providers
NPM Account
In order to publish a javascript module, you will need an NPM account.