作業環境としてはじめてMacを持ったら入れるソフトとかまとめ

最近は PHP と Excel と MySQL とで作業する日々です。

はじめて Mac で仕事をすることになったけど、Macでの開発環境に何を入れればよいかわからない人向けに、ここら辺を入れておけばウェブアプリケーションの開発に不自由しないんじゃないかなというところをまとめておきます。

開発ツール
======================

Xcode
----------------------

OS X / iOS アプリケーションの開発だけでなくコンパイラなどのコマンドラインツールもインストールされます。コマンドラインツールをインストールする際にコンパイルが必要になる時もあるので入れておきましょう。

仕事によっては最新の Xcode7 ではなくXcode6が必要になる時があります。Apple の Developer Center から Xcode6 を入手できるのでインストールしましょう。古いバージョンはインストーラではなくアプリケーションのファイルとして提供されます。ファイル名を Xcode6 に変更してアプリケーションフォルダに入れておくだけでインストーラから導入した Xcode7 と共存できます。

あと[XVim](https://github.com/XVimProject/XVim)も入れておきましょう。XcodeのエディタでVimコマンドが使えるようになります。

Terminal
----------------------

基本的にOS X標準のターミナルで十分だと思います。デフォルトのシェルは bash ですが他のものも選択できるのでお好みで。

homebrew
----------------------

[homebrew](http://brew.sh/index_ja.html)

git, wget, curl, python... その他もろもろのコマンドラインツールをインストールできるパッケージマネージャです。古くはFinkや MacPorts と言った同様のプロジェクトがありましたが現在のところ homebrew を使用するのがマジョリティーになっています。

OS X の標準の状態だと wget など開発でよく使うコマンドが入っていません。マシンを手に入れたらまずは homebrew をインストールしましょう。

Git GUIクライアント
----------------------

自分は Git はコマンドラインから使用しますが最近は GUI クライアントも豊富です。

- [SourceTree](https://ja.atlassian.com/software/sourcetree/overview) : Atlassian製。git-flow に従った操作も可能。
- [GitHub](https://desktop.github.com/) GitHub製。

VirtualBox
----------------------

[Oracle VM VirtualBox](https://www.virtualbox.org/)

ウェブアプリケーションを開発するときに Mac の Apache の下で PHP, Ruby... などを動かしても良いのですが複数の開発が並走するととたんに環境が混乱します。

開発サーバを用意するというのも基本ですが、個人の動作環境として仮想マシンを作るという方法もあります。VirtualBox はオープンソースの仮想マシンです。グラフィックスの仮想化は弱いですが、サーバOSを導入してウェブアプリケーションの開発環境とするには十分な品質です。開発のスタイルに合わせて導入しましょう。

VirtualBoxのバージョンによっては仮想環境がうまく動かない等のトラブルが発生するようです。なんか変だなと思ったらVirtualBoxのバージョンについて調べてみると良いでしょう。

お金があるなら VMWare fusion や Parallels Desktop の方が Windows の GUI が動いたり OS X の仮想環境を作れたりするのでオススメです。

Vagrant
----------------------

[Vagrant](https://www.vagrantup.com/)

Vagrant は仮想マシンのイメージの構築、管理、共有をするためのソフトウェアです。Vagrant を使用すれば「はじめからあの言語とあのサーバとあのデータベースが入った開発環境をメンバーに配布する」みたいなことが手軽にできます。

開発スタイルに合わせて導入しましょう。

GUIエディタ
----------------------

自分の場合はテキストの編集はほぼほぼ vim で行うのですが、たまにGUIエディタが欲しくなる時があります（コピペが必要なときとか）。ちょっとした用途ならテキストエディットで十分です。

コードハイライトやタブ機能などがあるエディタは多くありますが、自分の好みは [Komodo Edit](http://komodoide.com/komodo-edit/) です。Vim コマンドのエミュレーションがいろいろ試した中では一番よくできています。

SSHトンネルのためのユーティリティ
--------------------------------------------

お仕事だと「踏み台サーバをSSHトンネルで経由して開発サーバにHTTPでアクセスする」みたいなことがあります。コマンドラインで ssh を叩いても良いのですが、頻繁に利用するのでアプリケーションを利用した方が楽でしょう。

自分は [STM](http://projects.tynsoe.org/en/stm/) を利用しています。システムのメニューバーからSSHトンネルの設定を呼び出せるので便利です。STMはAppStoreからインストールすることもできます。

キーチェーンアクセスによるパスワード管理
============================================

パスワード。多いっすよね。

OS Xの場合、ウェブブラウザのパスワードなどはほぼほぼシステムのキーチェーンアクセスで管理されます。

キーチェーンアクセスのユーティリティ（アプリケーションフォルダ → ユーティリティフォルダ → キーチェーンアクセス）にはメモ機能というものがあり個別のメモにパスワードと暗号化を設定することができます。

これを利用してパスワード類をキーチェーンアクセスのメモにしておけばOS Xのログインパスワードでメモが保護されます。

お金があるなら [1Password](https://agilebits.com/onepassword) という選択肢もあります。

オフィススイート
======================

Office for Mac 2011 は積み上げられた糞。

可能な限り速やかに Office for Mac 2016 に移行したいところです。

Libre Officeは一人ではじめから書類を書くのに使うなら悪くはないのですが Excel マクロが動かなかったり、独自のマクロも開発環境が貧弱なので仕事で Microsoft Office の代わりに使うのはつらいところです。

コミュニケーション
======================

Slackを入れましょう。社内チャット楽しいです。社内で Slack を導入していない場合は導入しましょう。

おまけ知識
======================

Cocoaで書かれたアプリケーション（テキストエディット、SafariなどほとんどすべてのOS Xアプリケーション）はEmacs風のキーバインドが使用できます。Ctrl-P、Ctrl-N、Ctrl-B、Ctrl-Fで上下左右のカーソル移動。Ctrl-Hでバックスペースなどです。標準GUIでのテキスト編集だけでなくブラウザの検索候補選択やリストアイテムの選択でも使えるのでキーボードから手を離さずに操作できることが多いです。