Essentials Thing with your new Mac

Essentials Thing with your new Mac

Untuk Developer, in Bahasa Indonesia. 4 min read

Oke cool jadi ceritanya habis install ulang mac dan bener-bener install ulang, no backup; No time machine restore. Selain karena ingin memulai hidup baru (gayanya mah), juga biar menghapus aplikasi-aplikasi yang gak digunakan alias pembersihan.

Sorry untuk judul, bingung juga mau kasih judul apa. Intinya, yaa hal-hal yang lumayan penting untuk dilakukan setelah membeli mac (atau setelah factory reset) untuk developer. Disini sebenernya topiknya cuma di pemasangan "aplikasi-aplikasi" yang lumayan penting aja, untuk hal-hal terkait "konfigurasi", bisa baca tulisan yang berjudul Configuring New Mac. Karena rata-rata gue menggunakan "CLI" app di keseharian gue, konfigurasi terkait aplikasi tersebut sudah gue simpan di repo gue.

Yang paling penting

Install homebrew dan zsh shell. Anggap homebrew seperti chocolatey nya di windows, atau apt nya di ubuntu-based, atau npm nya di nodejs. Kenapa gue menggunakan zsh (bukan bash/fish)? Karena:

  • kebiasaan lama
  • better completion
  • great ecosystem

Itupun gue enggak menggunakan "pure" zsh, melainkan menggunakan ohmyz.sh, sebuah "framework" untuk menggunakan zsh menjadi lebih efektif & keren. Oke lanjut, pertama install homebrew terlebih dahulu:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Bila sudah, waktunya menginstall zsh via homebrew:

brew install zsh

Dan dilanjutkan dengan meng-install ohmyzsh:

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

CLI Apps/tools

CLI app untuk sekarang masih sedikit gue install, lihat bagian prinsip di repo github gue. Karena gue orang frontend (well, fullstack js developer), jadi cli-cli apps yang penting menurut gue untuk install adalah:

  • openssl (yeah, you know. The crypto-thing)
  • neovim (my primary and the only one code editor)
  • deno (i do experiment with typescript runtime)
  • hub (mostly I work with GitHub, so this app is really helpful for me to interacting with github)
  • yarn (fast, secure and reliable javascript dependency manager)
  • fzf (like ls, but with fuzzy-finder search)

Yang belum gue install (Kamis, 13 Juni 2019) adalah: Postgresql, sqlite3, Redis, dan MongoDB.

Untuk meng-install 6 aplikasi tersebut, bila merasa "adventurous", silahkan gunakan script dibawah (it should works, trust me.)

for apps in openssl neovim deno hub yarn fzf; do
  printf "> Installing ${apps}... \n"
  brew install ${apps}
  printf "> ${apps} installed. \n \n"
done

printf "> Done\! \n"

Bisa langsung paste di terminal, atau buat file bernama (misal brew.sh), lalu berikan permission untuk eksekusi (chmod +x brew.sh), lalu eksekusi file tersebut (./brew.sh) dan tunggu beberapa menit.

GUI Apps

Enggak sepenuhnya gue selalu bergantung dengan cli apps, ada beberapa gui apps yang gue gunakan, antara lain:

  • Firefox & Chrome (untuk browsing, primary menggunakan firefox & chrome cuma untuk test aja)
  • Alfred ("versi lebih baik" nya Spotlight)
  • Spectacle (untuk ngatur "Window" dengan mudah (via keyboard). life saver banget)
  • 1Password (tempat nyimpen password, lisensi aplikasi, data cc, dsb gue)
  • iTerm2 ("versi lebih baik" nya Terminal bawaan)
  • Yandex Disk (cloud storage gue)
  • Clean My Mac (untuk ngapus cache, basic maintenance, dsb. Berbayar)
  • Sketch (untuk desain2 vector-based. Berbayar)
  • Screenflow (untuk bikin screencast & bikin video. Berbayar)
  • Tripmode (berguna banget ketika konek internet menggunakan tethering. Untuk ngatur aplikasi apa aja yang boleh konek ke internet + statistik data yang telah digunakan. Berbayar)
  • Docker (rata2 gue deploy aplikasi gue menggunakan container, biar ter-isolasi dan mudah diatur)
  • Zeplin (untuk membagikan hasil desain yang udah gue buat ke developer)

Pemasangan aplikasi-aplikasi GUI diatas bisa diautomasi via script, sekali lagi, bila merasa "adventurous", silahkan gunakan script dibawah. Gue sebut "untuk petualang", karena gue khawatir ada kegagalan yang terjadi ketika proses instalasi (homebrew outdated? expired formula? dsb). Sejauh ini berhasil.

for apps in firefox alfred spectacle 1password iterm2 yandex-disk \
  google-chrome cleanmymac sketch screenflow tripmode docker zeplin; do
  printf "> Installing ${apps}... \n"
  brew cask install ${apps}
  printf "> ${apps} installed. \n \n"
done

printf "> Done\! \n"

Dan silahkan tunggu beberapa menit.

Another thing...

Jangan lupa untuk generate SSH Key:

ssh-keygen -t rsa -b 4096 -C "[email protected]" # change me

untuk proses konek ke remote server/berinteraksi dengan remote repo di git-based hosting via ssh.

Lalu, install zplug untuk menggunakan plugin di zsh.

curl -sL --proto-redir -all,https https://raw.githubusercontent.com/zplug/installer/master/installer.zsh | zsh

Yang terakhir, bila menggunakan vim (atau neovim), install vim-plug untuk mempermudah proses instalasi plugin di vim.

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Bila ingin mengetahui plugin apa saja yang gue install di mesin gue, bisa akses ini.

Satu lagi...

Ada 2 aplikasi GUI yang gak gue sebut diatas, yakni Spark Email untuk email-client gue dan Amphetamine untuk mencegah mac gue "sleep". Gak gue sebut diatas karena tidak ada formula brew/cask nya.


Itulah aplikasi yang gue install di mesin gue dan membantu gue untuk mengerjakan pekerjaan gue sehari-hari sebagai frontend developer (profesionally) dan fullstack developer (for pet project). Sejauh ini belum ada aplikasi Electron-based yang ter-install di mesin (gue yakin 1password & zeplin desktop app nya bukan dibuat diatas electron!) gue. Dan semoga sampai kapanpun, atau sampai electron tidak memakan banyak memori & disk.

Thanks for stopping by, good luck with your new mac!