iOSのコーディング規約を考えてみる

iOSのコーディング規約を少し考えてみようと思います。ちょっとまとめてみよう。

ざっくり基本

インデント

space4文字、tabは使わない

キャメルケースで記述(例外あり)
複数の語から成る名前の場合、その一部として、あるいは区切り文字として、句読点類(アン
ダースコア、ダッシュなどを含む)を使わないでください。代わりに、各語の先頭を大文字に
し、(runTheWordsTogetherのように)続けて表記します。このような表記法をキャメルケース
と言います。ただし次の点に注意してください。
関数や定数の名前は、関連するクラスと同じプレフィックスをつけ、各語の先頭を大文字にします。

クラス名、プロトコル

  • 大文字2文字のプレフィックスで始める
  • 一般に、動名詞(「...ing」)形の名前にするとよいでしょう。

メソッドの命名

  • 何通りにも解釈できるメソッド名など、曖昧なAPI名は避けてください。
  • 先頭を小文字とし、2つめ以降の語の先頭を大文字にします。
  • プレフィックスはつけません。
  • メソッド名の先頭にアンダースコアをつけて非公開(private)である旨を表すことは避けてくだ さい(ただしインスタンス変数名の先頭をアンダースコアにすることは可)。
  • オブジェクトが実行するアクションを表すメソッドは、先頭を動詞とします。
  • レシーバーの属性を返すメソッドは、その属性と同じ名前とします。出力引数を介して間接的に 値を返す場合を除き、「get」をつける必要はありません。

デリゲートメソッド

  • クラス名からプレフィックスを除去し、先頭を小文字にしてください。
  • 何らかの事象が発生した、あるいは発生しようとしている旨をデリゲートに通知するためのメ ソッドは、名前に「did」や「will」をつけてください。
  • 他のオブジェクトに代わって何らかのアクションを実行するよう、デリゲートに指示するための メソッドは、名前に「did」や「will」をつけても構いませんが、「should」の方が望ましいでしょ う。

メソッドの引数

  • メソッド名と同様に、引数名も先頭は小文字、2つめ以降の単語の先頭は大文字で表します
  • 1~2文字の短い引数名は避けてください。

関数の命名

  • 一般的な命名規則に従ってつけてください。
  • メソッド名と同様に考えてつけますが、例外が2つあります。
    • クラスや定数に用いるのと同じプレフィックスをつけてください。
    • プレフィックスに続く語の先頭は大文字で表します。
  • 関数名の多くは、先頭にその関数の効能を表す動詞を置きます。

プロパティやデータ型の命名

  • プロパティ名が形容詞として表現される場合、「is」はつけませんが、対応するgetアクセサには、明示的に「is」で始まる慣例の名前を指定します。
  • インスタンス変数は、アンダースコア(_)で始まるインスタンス変数名にするとよいでしょう。

定数

  • 関数の命名規約に従います

参考

https://developer.apple.com/jp/devcenter/ios/library/documentation/codingguidelines.pdf