コードをよりよく構造化するために役立つXcodeの機能 (Xcodeに関する15のヒント) – Qiita

情報源: コードをよりよく構造化するために役立つXcodeの機能 (Xcodeに関する15のヒント) – Qiita

の記事では、コードの構造を改善し、クリーンにするコードのリファクタリングに役立つXcodeの機能をいくつかご紹介します

  • 変数の名前を変更する
  • プログラム関数に抽出する
  • if 条件を変数に抽出する
  • 複数の if 文を switch に変換する
  • ローカライゼーション機能を文字列に手早く適応させる
  • クラスにinit関数を作成する
  • 有用なコードをスニペットに追加・表示・バックアップする
  • 関数のドキュメントを作成・表示する
  • 変更を破棄する(最新のgitコミットと比較して)
  • 特定のコードに対して最後に変更を加えた編集者を検索する
  • 関数がコールされる場所をすべて見つける
  • コードのさまざまなセクションを折りたたむ
  • プログラムヘッダーを手早く検索する (func, class, struct)
  • その他の Xcode に関するヒント(キーボード・ショートカット)

変数の名前を変更する

変数名をすばやく変更することができます。Xcodeは変数を参照するすべてのコードを見つけることができます。

まず、変数をダブルクリックして選択し、変数を右クリックします。 Refactor メニューをクリックして、オプションの Rename... をクリックします。

(変数名ではなく変数の参照に基づき)変数のすべてのメンションを検索・表示します。

新しい変数名を入力し、Rename ボタンをクリックしてください。

482430ad1e24.gif

プログラム関数に抽出する

コードの一部を、別の関数として抽出することができます。そのためには、Refactor メニューのExtract to method オプションをクリックしてください。

4a3c460b8f22.gif

if 条件を変数に抽出する

1つのif条件に対して長いコードが書かれているとき、それをbool変数として抽出することができます。

そのためには、コードの当該箇所を選択してから、Refactor メニューの Extract to variable オプションを使ってください。

fbfe6660444d.gif

複数の if 文を switch に変換する

enum をご利用で、複数の if 文を使用される場合は、Refactor メニューの Convert to switch statement オプションを使用してコードを手早く変換し、switch ステートメントを使用することができます。

3e0831614150.gif

ローカライゼーション機能を文字列に手早く適応させる

文字列につき毎回 NSLocalizedString を手入力する必要はありません。

対象の文字列を選択し、右クリックして Refactor メニューの Wrap in NSLocalizedString オプションを使用することができます。

2cde0042dbcc.gif

class クラスに init 関数を作成する

struct 構造体を使っているときは、init は自動的に生成されます。
しかし、クラスを使っているときには、自分でinit関数を作成しなければなりません。

Generate Memberwise Initializer オプションを使ってinit関数を自動生成することができます。

クラス名を選択し、Refactor メニュー内にある Generate Memberwise Initializer を使えばそのようなことが可能です。

14bde0fe18c9.gif

有用なコードをスニペットに追加する

頻繁に使用するコードがある場合があります。プレースホルダーを追加して、そのコードをスニペットに追加できます。

コードの中にプレースホルダーを入れるには、<# comment #> と入力します。

557ef3bc4e01.gif

次に、保存したいコードをすべて選択し、右クリックして Create Code Snippet オプションを選択します。タイトルと概要を入力し、右下の Done ボタンをクリックします。

9f969b498fcf.gif

保存されたコードスニペットは、Xcodeウィンドウの右上隅のプラスアイコンをクリックしてすべて確認できます。

コードスニペットは、Xcodeに保存されます。
そのため、別のプロジェクトを開いていたとしても、すべてのコードスニペットが表示されます。

コードスニペットは ~/Library/Developer/Xcode/UserData/CodeSnippets/ に保存されます。

関数のドキュメントを作成する

Xcodeは、関数ドキュメントのテンプレートを作成することができます(全てのパラメータ名を含む)。

作成するには関数名を右クリックし、 Show Code Actions オプションを選択します。次に、Add Documentation をクリックします。

e50f3f4defed.gif

キーボード・ショートカット:option command /

コードアクションメニュー

command キーを押したまま関数名をクリックすると、コードアクションメニューを表示することができます。

コードアクションメニューについて言えば、関数の定義にジャンプしたいときにとても便利です
(コードアクションメニューの Jump to definition ボタンをクリックします)。

677ec140e37f.gif

関数のドキュメントを表示する

関数のドキュメントを作成するメリットは、場所を問わず、すぐに見ることができることです。

キーボードの option キーを押しながら、関数名をクリックすると(マウスポインタが疑問符になります)、関数のドキュメントが表示されます。

0aeafb3397ac.gif

変更を破棄する(最新のgitコミットと比較して)

コードに変更を加えると、コードの左側に青い縦線が表示されます。

青い線をクリックし、Discard changes オプションをクリックすると、行った変更を破棄することができます。

この操作では、青い線で覆われている変更部分が全て削除されますのでご注意ください。

88315d2c2cea.gif

特定のコードに対して最後に変更を加えた編集者を検索する

行を右クリックして Show last change for line をクリックすると、現在の行に誰が変更を加えたかを確認できます。

0b3883d5db39.gif

関数がコールされる場所をすべて見つける

特定の関数が呼び出されているすべての箇所を検索することができます。

そのためには、関数名を右クリックし、Find メニューを選択して、Find call hierarchy オプションをクリックしてください。

これはシステムフレームワークの関数に対しても同様に機能します。

b82e3b4a7992.gif

コードのさまざまなセクションを折りたたむ

多くの関数を含んでいるファイルがある場合、ファイルを折りたたむことができます。

初めに、Xcode設定の Text Editing セクションで、Code folding ribbon オプションを有効にしてください。

スクリーンショット 2021-05-14 12.11.08.png

すると、コードエディタの左端にある垂直インジケータをクリックすることにより、関数を折りたたんだり表示したりすることができるようになります。

e96b045ebf9b.gif

プログラムヘッダーを手早く検索する

command shift o のキーを押すして、機能あるいはクラスネームを検索できます。
この操作でファイルの内容を検索することはできません。

その他の Xcode に関するヒント(キーボード・ショートカット)

ショートカット 機能
command - フォントサイズが小さくなります
command + フォントサイズが大きくなります
command B コードをビルドする
command R コードを実行する
control command R 再度ビルドすることなくコードを実行するには (最後にコンパイルされビルドを実行します)。
shift command L 使用可能なすべてのライブラリおよびコードコンポーネントのリストを表示することができます。
option command / 関数のドキュメントを作成する
control 6 現在のファイルに含まれるアイテムのリストを表示する
command L 特定の行に移動する
control option command F すべてのコード修正案を適用することができます。
control shift command M ミニマップの表示・非表示。ミニマップにマウスオーバーすると、アイテム間をすばやく移動できます。
option shift command return コード変更を見る (git)
  • Control キーと Shift キーを押しながら、さまざまな場所をクリックすると、複数のマウスカーソルを置くことができます。次に、キーを放すとて、選択したすべての場所に入力することができます。
  • 現在の作業ディレクトリにあるXcodeプロジェクトを素早く開きたい場合は、xed . をMacターミナルに入力することができます。

Xcodeに関する私のQiita記事

  • 私が書いた以前の記事の1つで、さまざまなタイプのコードコメントを使用してコードの異なるセクションをマークする方法についても説明しました。
    https://qiita.com/MaShunzhe/items/00dbe277d158172fdfc2

  • また、Xcodeを設定してデバイスにリモート接続することもできるため、アプリケーションのテスト中にワイヤレス充電を使用することができます。
    https://qiita.com/MaShunzhe/items/e553cbc68c891eee0d9a

  • 特定の条件に一致した場合 (特別なブレークポイント) には、プログラムを停止するためだけにデバッガーを使用することもできます。
    https://qiita.com/MaShunzhe/items/b98d504b9ee6ddbd26b6

  • Xcodeビュー要素ライブラリを介して、作成されたSwiftUIビューコンポーネントに簡単にアクセスできます
    https://qiita.com/MaShunzhe/items/47f5041528b57127f669

  • Xcode 12 でのアプリ内購入のテスト
    https://qiita.com/MaShunzhe/items/486f45ba39433ce10d8a

  • Xcodeシミュレーター管理コマンド
    https://qiita.com/MaShunzhe/items/14d95bb27eb3d51c4233

  • iOSアプリのローカライズとローカリゼーションのデバッグ – 開発言語の変更、ストーリーボードと文字列のローカライズ、ローカライズされていない文字列の特定とデバッグ
    https://qiita.com/MaShunzhe/items/86200a5c03817497ac29


:sparkles: :sparkles: :sparkles:

この記事が参考になり、Xcodeをより生産的に活用いただけるようであれば幸いです。

:relaxed: Twitter ツイッター @MszPro

:sunny: 今後ともよろしくお願い致します。