macで快適にプログラミング
DESCRIPTION
Macで快適にプログラミングするためのツールたちを紹介しますTRANSCRIPT
Mac で快適にプログラミング
増井研 M1 桜井雄介
流
自己紹介• 桜井雄介 / @keroxp• 政策・メディア研究科修士 1 年• 研究テーマ
– 日本語ソフトウェアキーボード– インタラクティブアニメーション
• 得意なこと– iOS アプリ– フロントエンド js
• 好きな言語– Objective-C, CoffeeScript
• 最近の興味– Haxe/OpenFL
研究成果• 2012-2013 年「 Blossom 」• タブレット向け日本語入力キーボード• 情報処理学会 HCI 研究会学生奨励賞受賞
みなさん OS は何使ってますか
増井研は Mac 率が高い
開発者が Mac を選ぶ理由• UNIX 系なので Linux などと環境が似ている– サーバーサイドにデプロイするときに困らな
い• Homebrew のおかげでパッケージが充実し
ている• プログラミング環境のセットアップが簡
単• iOS アプリが開発できる
Mac でソフトウェアを開発するための便利な道具を紹介しま
す
Xcode
• Mac での開発には必須• 正確には Xcode と一緒に入れる Command
Line Tools が必要– gcc, clang の C コンパイラが入っている– これがないと後述の Homebrew が使えない
• iOS/Mac のアプリを開発するのにも必要– Mac で C, C++, Objective-C を書くにはこれが一
番• IDE としても非常に優秀
Homebrew
• Mac のコマンドラインパッケージの管理ソフト
• 様々なソフトがこれでインストール/アンインストールできる
• make install とか邪悪なことをしなくて済む
./configure && make &&make installをみつけたら
殺せ
make install はなぜ悪か• 何処にインストールされるのかよく分からな
い• どうやってアンインストールするのか分から
ない• 何がインストールされてるのか分からない• バージョンアップできない• 大体ビルドできない• システムが汚染されていく• まずは brew search で検索
Brew の良いところ• 『管理』が出来る– 追加・更新・削除ができる– make && make install とかするとこれができない– バージョンを上げたり下げたり– 把握ができる
• 面倒なことをしなくてよい– brew install XXX するだけでインストール完了– brew update && brew upgrade でアップデート完
了
Brew で入れよう• Git/svn
– Mac には最初から入っているがバージョンが古い• Android SDK
– 普通は自分でダウンロードしてドコかに置く– バージョンアップとかが面倒
• Node.js– brew で入れるのが一番楽– npm も入ってるよ
• ruby-build, rbenv– ruby のバージョン管理のタメのツール– brew で入れるのが(ry
Sublime Text
• 軽量のコードエディタ• 何かと便利• 内部プラグインがとても充実している• ほぼすべての言語のシンタックスハイライ
ト• 各種言語のビルドもできる• カスタマイズが楽
O-My-Zsh
• OSS の .zshrc/.zshenv 設定ファイル• これ大体使うよねっていうシェルの機能
がまとめられている– Tab で選択移動– git の branch 表示– ls に色つけ– コマンドライン引数の補完
zsh とは何か• ターミナル上からコマンドを実行するた
めの環境• いわゆるシェル– bash, tcsh の仲間
• 中でも一番 zsh が便利なので使いましょう
なぜ O-My-Zsh が必要か• 異なるコンピュータで同じ動作が期待で
きる• チーム開発の場合メンバーの環境を統一
できる– でも大体みんな自分で弄りたがるからあんま
り推奨できない• 増井研では gesh, nish, shosh など各人秘伝
のタレが存在している
Dash
• ドキュメントツール• 言語の API を検索するのに非常に便利• 主要な言語なら大体ある• 主要なライブラリも大体ある– Rails, Underscore.js, Backbone.js …
• 『あれどうなってたっけ?』というときに爆速で検索できる
なぜ Dash が必要か• ツールは何でもいい• 公式ドキュメントを読むことが重要• 主要な言語やライブラリは必ず公式ドキュ
メントが充実している– 引数や返り値、動作の挙動や注意点など
• Dash は勝手にドキュメントをアップデートしてくれるので常に最新の情報を確認できる
• 安易に Web を検索するよりも API を読もう
Geny Motion
• Android エミュレータ• 速い• 速い• 速い• とにかく速い• Android謹製のエミュレータは遅すぎて話
にならない• Android 開発するなら必須
Refrector
• iPhone/iPad のキャプチャツール• 実機でデバッグしているときの映像を
Mac で録画できる
iTerm2
• ターミナルのすごいやつ• 何がすごいのかよく分からない• でもみんな使ってる• tmux を使わなくても画面分割できる
Slack
• 最近流行っているチャットツール• Skype にはない色々な機能がある• 特に外部 Web サービスとの連携が便利– Github のコミット , Pull-Req などがチャットに流れてくる
– Travis CI の失敗が流れてくる– Crashlytics のログが流れてくる
• 他にも楽しい機能がたくさん
Github
• コードホスティング用Web サービス• 絶対に使うべき• 絶対に使うべき• 絶対に使うべき• 増井研は全員アカウントを持っている–課題の提出とかにも使われ始めている
• Github アカウントを持っていない・・・?
Github アカウントを持っていない子はどんどんしまっちゃお
うねえ
なぜ Github を使うべきか• 単純にコードの管理が楽– ディレクトリに入れっぱなしイクナイ
• 簡単に人に公開できる– 間違ってる点を指摘してもらえる– Pull-Request で修正してもらえる
• 他の人と一緒に作業ができる–逆に Github を使わずにどうやるのか
なぜ Github を使うべきか• 色々な便利な機能がある– Issue, Wiki, Pull-Request など
• 大小様々な OSS のコードがある–有名な OSS のコードはほとんど Github にある
• 世界中のトップレベルのコードが読める– 中途半端なレベルのコードではなく、大勢の人
間が議論して作り上げたコードなのでグッドノウハウが詰まっている
• 知らなければ「 Github 入門」で今すぐ ggr
Q&A