今回はAndroid、iOSアプリを複数プロジェクト抱える場合の便利Tipsを記事として残しておこうと思います。ちょっとしたことですが、まだ知らない方のきっかけになればと思います。

モチベーション

業務がこなれてきて複数案件を触る機会が増えてきた頃に気になり始めたこと、それは各種エディタで開くとき、あのプロジェクトはどれでどこだったかな・・・となることです。

一つのプロジェクトを触っている限りではエディタの直前に開いたプロジェクトを開く、で困らないですが、複数ある場合はそうもいかないと思います。迷わずプロジェクトを開けるように各リポジトリを集中管理したいと思いました。

よってこの記事で紹介することは

  • リポジトリの管理
  • 各種エディタの起動コマンドの紹介

の2点になります。


この記事の前提環境は以下になります。基本的にはこれ以前でも動く想定です。

  • MacOS 14.4.1 (23E224)
  • Xcode 15.3.0
  • Android Studio Iguana | 2023.2.1 Patch 2

リポジトリの集中管理

紹介するツールはghq, pecoの二つです。この二つを組み合わせるととても便利で、利用している方は大勢いるため、およそ同じ導入になりますがここでも書いておきます。

https://github.com/x-motemen/ghq
https://github.com/peco/peco

導入手順

各種ツールの導入にはHomebrewを利用するため、Homebrewの導入は事前に済ませておいてください。

ghqとpecoをインストール

brew install ghq
brew install peco

ghq --version && peco --version  // コマンドの存在確認

~/.zshrc ファイルに以下を追記

...
/// 以下追記
function peco-src () {
  local selected_dir=$(ghq list | peco --prompt "[find repository]" --query "$LBUFFER")
  local root_dir=$(ghq root)
  if [ -n "$selected_dir" ]; then
    BUFFER="cd ${root_dir}/${selected_dir}"
    zle accept-line
  fi
  zle clear-screen
}
zle -N peco-src
bindkey '^]' peco-src  // Ctrl+] にバインドされる ここは好み

これで準備はOKです。

利用方法

とにかくまずはリポジトリを取得してくるところからでしょう。ここではghq作者による、ghqの使い方の説明リポジトリを取得してみます。

どこに保存するか?それを考える必要はありません。(別途設定もできます)

普段 git clone [URL] としているように ghq get [URL]としましょう。それだけで~/ghq配下にリポジトリをクローンできます。

❯ ghq get git@github.com:Songmu/ghq-handbook.git
     clone ssh://git@github.com/Songmu/ghq-handbook.git -> /Users/hoge/ghq/github.com/Songmu/ghq-handbook
       git clone --recursive ssh://git@github.com/Songmu/ghq-handbook.git /Users/hoge/ghq/github.com/Songmu/ghq-handbook
Cloning into '/Users/hoge/ghq/github.com/Songmu/ghq-handbook'...
remote: Enumerating objects: 114, done.
remote: Counting objects: 100% (73/73), done.
remote: Compressing objects: 100% (43/43), done.
remote: Total 114 (delta 28), reused 52 (delta 21), pack-reused 41
Receiving objects: 100% (114/114), 42.21 KiB | 280.00 KiB/s, done.
Resolving deltas: 100% (47/47), done.

先のコマンドを実行した場合 ~/ghq/github.com/Songmu/ghq-handbook のように配置されます。

余談ですがこのezaも便利です。 標準のlsコマンドより遥かに見やすいと思います。

つまり ~/ghq/{VCS名}/{作者名}/{リポジトリ名} のように全てのリポジトリが意識せずとも配置されます。
こんなに細かく分かれても手動で探すのが手間?いいえ、pecoが解決してくれます。

Ctrl + ]を押しましょう。

この状態で

  • 追加で入力すると絞り込み
  • Ctrl + N (もしくは下矢印)で下に移動
  • Enterを押すことでそのディレクトリへ移動

ができます。便利ですね。

ここまででリポジトリを特定のフォルダ下にクローンして配置、整理、検索ができるようになりました。次はそのフォルダ配下のプロジェクトを開く方法を紹介します。

各種ツール起動

自分が使っているものを紹介します。先のghq+pecoで移動してからこれらのコマンドを使う想定のため、コマンドは全て引数に .(カレントディレクトリの意)が入っています。

Xcode

xed .

Xcodeの起動コマンドです。 .xcworkspace > .xcodeproj の順で開いてくれるため、Cocoapodsなどの環境でも問題なく開くことができます。Xcode11以降のCommand Line Toolより利用できるようですが、なぜ周知されていないのか・・・

現在選択されているXcodeで開かれるため、Xcodesなどで複数のXcodeを入れている方は注意してください。

Android Studio

studio .

AndroidStudioの起動コマンドです。これを利用する前に AndroidStudio > Tools > Create Command-Line Launcher を選択して

ダイアログの指示に従い以下を.zshrc に追記してやれば良いです。

export PATH='/Applications/Android Studio.app/Contents/MacOS':$PATH

追記は以下のコマンドでも行えます。.zshrcを自分で管理することに慣れていなければコマンドで実行してしまって良いと思います。

echo "export PATH='/Applications/Android Studio.app/Contents/MacOS':\$PATH" >> ~/.zshrc

Fork

fork .

個人的に気に入って使っているGitのGUIツールForkを起動します。

Forkにも規定フォルダ下のリポジトリを検索、表示する機能はありますが、エディタを開く操作と同じターミナルから開けると、マウスを可能な限り触らないでも良いのは嬉しいと思いませんか?

ターミナルを使いたがるのにGitをCLIで使わない理由は、単に自分の習熟が足りないためです。tigというCLIツールも気になっており、これで完結できるならもうGUIは要らないなと思ってはいます。

まとめ

ちょっとでも便利だな、知らなかったなと思っていただければ幸いです!

業務を始めたばかりの頃、このようなちょっとした便利情報が知りたかったなぁと今になって思うため、皆さんの便利Tipsも社内外で共有してみてください!

参考



ギャップロを運営しているアップフロンティア株式会社では、一緒に働いてくれる仲間を随時、募集しています。 興味がある!一緒に働いてみたい!という方は下記よりご応募お待ちしております。
採用情報をみる