開発用Macの環境を晒す


随時更新します。（最終更新：2017年10月13日）

インストールしているだけという程度のものではなく、頻繁に使っているものだけを列挙します。

# CLI

## Homebrew

CLIアプリのパッケージ管理には[Homebrew](http://brew.sh/)を使っています。リポジトリには数多くのパッケージが登録されており、必要なものはだいたい網羅されている印象です。

- [tmux](http://tmux.sourceforge.net/)
    - ターミナルを仮想的に複数画面持たせたり、画面分割したりします。GNU screenのようなものです。
- [git](http://git-scm.com/)
    - 現在、最も広く使われているソースコード履歴管理システムです。System標準のものではなくHomebrew版を使っています。ほとんどの作業は後述のSourceTreeを用いていますが、SourceTreeで賄えない／使い方がわからない範囲はコマンドラインに頼っています。
- [jq](http://stedolan.github.io/jq/)
    - JSONを操作するコマンドです。全データからクエリによってフィルタリングする機能が、APIの開発時にはけっこう重宝します。
- [the_silver_searcher](http://geoff.greer.fm/ag/)
    - 高速で高機能な文字列検索ツールです。良い `grep` だと思えばだいたい合っています。
- [peco](http://peco.github.io/)
    - インタラクティブなテキストフィルターです。コマンドライン履歴からの選択やGitリポジトリの移動に使っています。
- [terminal-notifier](https://github.com/alloy/terminal-notifier)
    - macOの通知センターにメッセージを送ります。主に、時間のかかる処理の終了を知らせるために使っています。RubyGemsにも含まれていますが、homebrewでインストールする方が適しています。
- [rbenv](https://github.com/sstephenson/rbenv)
    - ユーザー領域にインストールしたrubyを管理するツールです。主にgemでインストールするCLIツールを利用するために使っています。

## RubyGems

いくつかのツールはRubyGemsでインストールしています。

- [t](http://sferik.github.io/t/)
    - CLIのTwitterクライアントです。
- [Chef](https://www.getchef.com/)
    - サーバーの構成を管理します。開発環境の構築に利用しています。
- [Berkshelf](http://berkshelf.com/)
    - コミュニティーが作ったChefレシピを取得・管理するためのツールです。

# GUI

GUIアプリは App Store または [Homebrew Cask](http://caskroom.io/) でインストールしています。手動でダウンロードしなければいけないものは、今回は（たまたま）含まれていません。ここではWebサービスの専用クライアントアプリケーションは除いています。

## App Store

- [Xcode](https://developer.apple.com/jp/xcode/)
    - Objective-C、Swiftの開発環境です。今のところは間接的に使うだけですが、何やかんやで使います。
- [Airmail](http://airmailapp.com/)
    - マルチユーザーのメールクライアントです。仕事の通知メールが大量に届きます。プライベートでは母親からのメールが届きます。
- [1Password](https://agilebits.com/onepassword)
    - パスワードを管理します。パスワードは基本的にすべてのサービスでそれぞれ違うパスワードを使っているので、これが無いと成り立ちません。デバイス間のデータ共有はDropboxを使っています。
- [Keynote](https://www.apple.com/jp/mac/keynote/)
    - プレゼンテーション・スライドを作成します。互換性はともかく、一番使いやすいと思っています。
- [SnippetsLab](https://www.renfei.org/snippets-lab/)
    - Snippetsを管理しています。後述のAlfredと連携させて検索しています。デバイス間のデータ共有はDropboxを使っています。
- [CotEditor](http://coteditor.github.io/)
    - Mac用のシンプルなエディタです。ちょっとしたテキストファイルを見るときや、どこにメモすべきか悩むようなときにとりあえず開きます。検索パネルが非常に使いやすいため、テキストを正規表現で変換したり整形したりするときには非常に重宝します。開発のメインで使うという感じではないです。

## Homebrew Cask

- [PhpStorm](https://www.jetbrains.com/phpstorm/)
    - PHPのWebアプリケーションの開発に利用しています。あまり使いこなしていないのですが、使いやすい感じはします（あくまで印象）。
- [Eclipse](https://www.eclipse.org/)
    - JavaのWebアプリケーションの開発に利用しています。最近ではちょっとご無沙汰なのですが、やる気はあります。
- [Insomnia](https://insomnia.rest/)
    - いわゆるRESTクライアントと呼ばれるものですが、RESTにこだわらずHTTPクライアントとして使えます。開発が始まったのが比較的最近であるということと、個人で開発している（らしい）ことであまり多機能ではないのですが、UIがごちゃついていなくて、良い感じです。
- [Sequel Pro](http://www.sequelpro.com/)
    - MySQLのクライアントです。Proと名前がついていますが、無料です。GitHub上でソースコードが公開されており、MITライセンスで提供されています。
- [SourceTree](http://www.sourcetreeapp.com/)
    - Atlassian製のGitクライアントです。なぜ無料なのかがわからないレベルのよくできたアプリケーションです。Gitの普及に大きく貢献しているプロダクトだと思います。
- [Vagrant](https://www.vagrantup.com/)
    - 仮想マシンの構築／管理をCLIで実現するためのツールです。操作自体はCLIですがインストーラーはGUIなのでこちらに掲載しています。
- [VirtualBox](https://www.virtualbox.org/)
    - Vagrantのバックエンドとしてローカルマシンに開発環境を構築する際に使っています。
- [Alfred](http://www.alfredapp.com/)
    - アプリケーション・ランチャーとしてカテゴライズされますが、他にも様々な場面で使えるランチャーです。Snippetsも地味に便利ですが管理画面がイケてないので、非常に頻繁に使う数個（開発用パスワードなど）だけ保存し、多くは前述のSnippetsLabで管理しています。
- [BitBar](https://getbitbar.com/)
    - Macのメニューバーを拡張するユーティリティです。これがどういうものかについては[ブログ記事](https://www.artifactsauce.info/posts/2016/12/09/bitbar-as-a-platform-for-fxxking-app)を読んでいただけると幸いです。
- [Visual Studio Code](https://code.visualstudio.com/)
    - 開発用のテキストエディターです。PHP、Java以外の言語ではこれで書いています。Markdownドキュメントの執筆にも重宝します。Electronベースですが、Atomよりキビキビ動く印象があります。

# Chrome extensions

Webサービスの専用プラグインはここには含めません。

- [JSONView](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc)
    - ブラウザ中でJSONを整形して表示してくれるプラグインです。
- [Link Maker](https://chrome.google.com/webstore/detail/link-maker/ifflbbedjddjmfkcpjflbjbngojooojc)
    - 現在閲覧しているページのタイトルとURLからMarkdown用のリンク文字列やHTML用のリンク文字列を生成してくれます。ドキュメント執筆やチャットに重宝します。

# Web Services

## Communication & Task Management

- [LINE](http://line.me/ja/)
    - 日本で最もシェアのあるチャットツールです。奥さんや友人とのやりとりはほとんどLINEに集約されました。アプリの出来はイマイチですが、通信サービスとしては素晴らしいです。
- [Slack](https://slack.com/)
    - チーム内チャットツールです。
- [Jira](https://ja.atlassian.com/software/jira)
    - Atlassian製のプロジェクト／タスク管理ツールです。職場では全社的に導入されています。開発のタスクは基本的にこれで管理しています。
- [Confluence](https://ja.atlassian.com/software/confluence)
    - Atlassian製のドキュメント管理ツールです。職場では全社的に導入されています。
- [Asana](https://asana.com/)
    - タスク管理のサービスです。プロジェクトにおけるタスクの優先順位づけやアサインの管理を直観的に行うことができます。進捗管理という目的では使いづらいかもしれません。個人的な開発のタスク整理に使っています。
- [Remember The Milk](https://www.rememberthemilk.com/)
    - 古典的なタスク管理サービスです。日常的なタスクを管理するのに向いています。家事のタスクや読書リストなどに利用しています。
- [Pushbullet](https://www.pushbullet.com/)
    - マルチデバイスで通知を受け取ることができるサービスです。モバイルWebで閲覧していたページをデスクトップのWebブラウザで閲覧したい場合にページのアドレスを送る、といった目的に使うことが多いです。また、長時間の処理や定期的な処理の完了通知などにも使っています。
- [Evernote](https://www.evernote.com/)
    - 何でも記録するためのアプリです。アイデアをメモしたり、ホワイトボードの写真を撮ったり、路線案内をキャプチャしたり、買い物リストを作ったりと広範囲に使っています。最近はスキャナを購入して、重要そうだけど結局要らない紙ファイルをスキャンして保存しています。

## Cloud Storage

クラウドストレージサービスはWebサービスの中でも別項目にしました。容量や使い勝手に合わせて用途を分けています。基本的に無料枠でしか使っていません。無料でしか使わないというつもりもないのですが、サービスを使い分けることで結果的に無料枠で満足しています。

- [Dropbox](https://www.dropbox.com/)
    - 容量
        - 7GB
    - 用途
        - アプリデータのデバイス間共有（1Password, SnippetsLab, Alfred, BitBarなどの各種configファイル）
        - コマンドのバイナリ
        - チートシート
        - 公開プレゼン資料
        - 家族との共有
        - 壁紙
    - 所感
        - ファイルシステムと統合しているという前提の使い勝手は、その他のサービスに比べてもアドバンテージがあるように思います。アプリやサービス自体がDropboxでの共有を推奨している場合もあります。
- [Google Drive](https://drive.google.com/drive/u/0/)
    - 容量
        - 15GB
    - 用途
        - Google Appsのデータ
        - 過去のブログなどの滅多なことでは掘り返さないデータ
    - 所感
        - いわゆるGoogle Appsのデータが主目的で、あとはなかなか掘り返さないデータやバックアップとしての用途が多いですね。
- [One Drive](https://onedrive.live.com/)
    - 容量
        - 15GB
    - 用途
        - 写真アルバム
    - 所感
        - 意外とアルバムの共有機能が良くできている上、容量もそこそこあるので、写真の共有が主な用途となっています。
- [iCloud Drive](https://www.icloud.com/)
    - 容量
        - 5GB
    - 用途
        - デスクトップと書類フォルダのバックアップ
        - キーチェーン
    - 所感
        - 他のサービスに比べて環境依存が強く、またそのせいで使い勝手が悪いため、Macデスクトップなどにうっかり置いてしまったファイルとキーチェーンのバックアップとしてのみ利用してます。

# まとめ

ここで述べるツールはすべてではありませんが下記のリポジリにあるコマンドでインストールできるようになっています。

- [artifactsauce/proglets](https://github.com/artifactsauce/proglets)

# 所感

日々様々なアプリやプラグインをインストールしますが、OS標準で機能が追加されたり、そもそも使う理由がなくなったりして、いつの間にか使わなくなりますね。とは言え、こうやってリスト化してみると、やはりそれなりの数のアプリを利用しているものです。