SlideShare a Scribd company logo
Macで快適にプログラミング 
増井研M1 桜井雄介 
流
自己紹介 
• 桜井雄介/ @keroxp 
• 政策・メディア研究科修士1年 
• 研究テーマ 
– 日本語ソフトウェアキーボード 
– インタラクティブアニメーション 
• 得意なこと 
– iOSアプリ 
– フロントエンドjs 
• 好きな言語 
– Objective-C, CoffeeScript 
• 最近の興味 
– Haxe/OpenFL
研究成果 
• 2012-2013年「Blossom」 
• タブレット向け日本語入力キーボード 
• 情報処理学会HCI研究会学生奨励賞受賞
みなさんOSは何使ってますか
開発者が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

More Related Content

Viewers also liked

プログラミング環境としてのMac: 概要編
プログラミング環境としてのMac: 概要編プログラミング環境としてのMac: 概要編
プログラミング環境としてのMac: 概要編
Fumitake Taniguchi
 
初心者向けMacユーザー勉強会
初心者向けMacユーザー勉強会初心者向けMacユーザー勉強会
初心者向けMacユーザー勉強会
Takuma Morikawa
 

Viewers also liked (15)

Blossom:QWERTYソフトキーボード上のフリック日本語入力システム
Blossom:QWERTYソフトキーボード上のフリック日本語入力システムBlossom:QWERTYソフトキーボード上のフリック日本語入力システム
Blossom:QWERTYソフトキーボード上のフリック日本語入力システム
 
プログラミング環境としてのMac: 概要編
プログラミング環境としてのMac: 概要編プログラミング環境としてのMac: 概要編
プログラミング環境としてのMac: 概要編
 
初心者向けMacユーザー勉強会
初心者向けMacユーザー勉強会初心者向けMacユーザー勉強会
初心者向けMacユーザー勉強会
 
Ensayo
EnsayoEnsayo
Ensayo
 
明日から使えるコーディングツール
明日から使えるコーディングツール明日から使えるコーディングツール
明日から使えるコーディングツール
 
Cobb700 Broiler Performance & Nutrition Supplement
Cobb700 Broiler Performance & Nutrition SupplementCobb700 Broiler Performance & Nutrition Supplement
Cobb700 Broiler Performance & Nutrition Supplement
 
WINPOT CASINO
WINPOT CASINOWINPOT CASINO
WINPOT CASINO
 
Ross broiler handbook
Ross broiler handbook Ross broiler handbook
Ross broiler handbook
 
Anesthetics
AnestheticsAnesthetics
Anesthetics
 
8º - REVISÃO - 30.03.2017
8º - REVISÃO - 30.03.20178º - REVISÃO - 30.03.2017
8º - REVISÃO - 30.03.2017
 
XXIV Edição do Jornal Itapiúna News
XXIV Edição do Jornal Itapiúna NewsXXIV Edição do Jornal Itapiúna News
XXIV Edição do Jornal Itapiúna News
 
3Com 69-001160-01
3Com 69-001160-013Com 69-001160-01
3Com 69-001160-01
 
Unidad de aprendizaje Primaria IE N° 0463 "GRR" 2017 primer grado
Unidad de aprendizaje Primaria IE N° 0463 "GRR" 2017 primer gradoUnidad de aprendizaje Primaria IE N° 0463 "GRR" 2017 primer grado
Unidad de aprendizaje Primaria IE N° 0463 "GRR" 2017 primer grado
 
Thailand introduction
Thailand introduction Thailand introduction
Thailand introduction
 
Gametalk #3 Show Case : Ascender
Gametalk #3 Show Case : AscenderGametalk #3 Show Case : Ascender
Gametalk #3 Show Case : Ascender
 

Similar to Macで快適にプログラミング

達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
masayoshi takahashi
 
CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編
Yusuke Ito
 

Similar to Macで快適にプログラミング (20)

自己紹介とC# Devkitについて.pptx
自己紹介とC# Devkitについて.pptx自己紹介とC# Devkitについて.pptx
自己紹介とC# Devkitについて.pptx
 
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
 
clominal
clominalclominal
clominal
 
Langsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPSLangsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPS
 
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
 
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作るGoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
20090828 Webconlocal
20090828 Webconlocal20090828 Webconlocal
20090828 Webconlocal
 
Fn project爆誕
Fn project爆誕Fn project爆誕
Fn project爆誕
 
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドYAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
 
CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編
 
CLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトークCLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトーク
 
きつねさんでもわかる Firefox OS コードリーディング入門
きつねさんでもわかる Firefox OS コードリーディング入門きつねさんでもわかる Firefox OS コードリーディング入門
きつねさんでもわかる Firefox OS コードリーディング入門
 
Tizen & Crosswalk
Tizen & CrosswalkTizen & Crosswalk
Tizen & Crosswalk
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
 
できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16
 
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」
 
PHP でも活用できる Makefile
PHP でも活用できる MakefilePHP でも活用できる Makefile
PHP でも活用できる Makefile
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (10)

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 

Macで快適にプログラミング