Mac Mini M1: My Own Developer Survivor Guide

Noyn4a
Noyn4a
Jan 13 · 6 min read

Last Nov 2020, Apple has introduced the new Macbook Air, Macbook Pro, and Mac Mini, all with the new Apple M1 chip. There were a lot of articles, YouTube vids praising how great this new chip is and how impressive the benchmark number is on these new machines.

After weeks of reading and watching all these reviews, I’ve decided to purchase the new Mac Mini M1 based model. I’ve ordered it online on 1/1/2021 (Happy New Year’s Gift to me!!) and went to pick it up the next day at the shop.

I was super excited about my new gift! My plan was to use it as a working device for my company project and also my own personal project. Since I still have my company’s Macbook Pro 13" 2019 as my stable machine, I decided to do an experiment on this new Mac Mini with all the Apple Silicon-based apps and packages.

Homebrew

The most convenient way to manage the packages you need for web development is to firstly install Homebrew! And since they’ve provided us with the unstable ARM-based version, I immediately went for it!

The installation is quite straightforward.

In your home directory, run the below command and move the folder to /opt as per the website suggested.

mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrewsudo mv homebrew /opt/homebrew

Add it to your paths by editing .zshrc or .bashrc and add the below line

export PATH=/opt/homebrew/bin:$PATH

Finally run source command for your config file and now you are ready to use your new brew command!

I work on Frontend Development which mostly use node , npm or yarn and so far I haven’t experienced any issue with installing and running those 3 packages natively on M1 with my existing personal and work projects. I’m doing some basic query on DB as well, so I’ve tried install mysql and having no issue at all.

However, I’ve experienced some issues with installing dep package for Go. Since my work project is using Go as a backend server, I thought of testing it and see if I can get the system up and running. I was able to install go successfully with the native version, but fail to install dep to use for dependencies management.

I’ve been seeing some comments suggested about installing both arm and x86 version as a fallback when unable to install some packages.

So how do we have both Homebrew versions in our machine?

Before starting, we would need to make sure we installed Rosetta 2 in our machine. Rosetta 2 is software that enables the ARM Macs to run Intel-based apps.

If you’ve first run any Intel-based app and Rosetta 2 is not installed, you’ve probably received an automatic prompt to install and may already have it installed. But if you haven’t had it installed, you can follow the instruction below.

To manually install Rosetta 2 and automatically agree to the software license agreement, run the following command:

softwareupdate --install-rosetta --agree-to-license

Now you’ll be able to run any Intel-based apps on your machine!

Next, simply download the x86 version of Homebrew by following the command below:

arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

`arch -x86_64` enabled your Terminal to run the command under Rosetta 2. And the new Homebrew will be located in /usr/local/bin/ .

And you will now be able to run your Homebrew using arch -x86_64 brew install <package> !

If you find the command too long, you can always add an alias to your .zshrc file.

alias brew86="arch -x86_64 brew"

So now instead of the longer version, you can just simply runbrew86 install <package>

NOTE: Please make sure you install the package only once using either version. This is to avoid any crash in the package version.

iTerm2 + Oh My Zsh

Ever since I’ve found out about iTerm2, it has been my preferred terminal since then. And when you paired up with Oh My Zsh, there are numerous awesome themes and configurations that you can do to fit your needs!

And guess what!

iTerm2 latest version supported M1 natively!

You can either download the installation from https://iterm2.com/ or install via homebrew

brew install --cask iterm2

For Oh My Zsh , you can easily install by running the below command

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

There are number of great articles on how you can customize your iTerm2 and Oh My Zsh. Here are some of them:

With iTerm2, I’ve experienced a small issue when trying to run brew86 that I have set up previously. Because iTerm2 is running natively, it wasn’t able to run the x86 Homebrew.

After a little while of research, I found out that I would need to duplicate the iTerm2 app and set it to open it with Rosetta 2. To configure this, you would need to right-click on the duplicated app in Applications, then select Get Info and tick Open using Rosetta.

Now you launch the app and you would need to update your alias that you’ve set previously as per below:

alias brew86="/usr/local/bin/brew"

And now you’ll be able to run brew86 command. Take note that this command only works on iTerm2 Rosetta and it won’t work on the native iTerm2 app. Likewise for brew command.

VSCode Insider

As for my code editor, I’m using VSCode. People who complain about how slow VSCode was, they should tried this release on M1.

Even though it’s not a stable release, but to me, it works great! I’ve installed most of my go-to extensions like ESLint, Prettier, GitLens, etc., and haven’t had any issues with any just yet.

Docker

During the initial launch of M1, Docker was one of the topics that is the talk of the town!

Why?

Because it doesn’t work on M1 at all! And yes, Docker Team heard all of your complaints and came out with the Preview version. It used to release only on the private channel on their Slack group, but now it finally released publicly.

You can visit https://docs.docker.com/docker-for-mac/apple-m1/ to download the preview version.

I’ve tried it out on my React project and it seems to be working great.

Unfortunately, I can’t get my Go work project to run due to mysql image is not available. Still trying to figure out the solution so I can’t make much comment about this.

But overall, it works perfectly for Frontend Development!

Well… apart from certain apps/packages are not fully supported on M1, I would say it’s pretty good for development. So far, I haven’t yet heard the sound from the fan and the temperature is always on the low side.

Is it too early to buy the new Mac?

For Frontend Development, I would say NOPE!

Get it now! Pretty much everything is supported and no issue or blocker in development.

So yeah! Hopefully, this article can help with setting up your environment and getting you ready to code!

NE Digital

Data x Digital x Technology