Swift

Swiftのコーディング規約を作ろう!

こんにちは、株式会社PlaygroundのiOSエンジニア伊原です!

複数人で共同開発をするとき、

ルールがないと無法地帯になってしまいますよね。

我が社のiOS開発チームではこれまでルールを具体的に決めないまま開発してきましたが、

このままじゃまずいということで今回ルールを具現化することにしました。

コーディング規約を作るメリット

はじめに、何のために忙しい中時間を割いてコーディング規約を作成し、仲間で共有し合うのか。

そのメリットを考えてみます。

コーディング規約のメリット1|ズバリ!! 可読性が上がります。

他人の書いたコード、もしくは過去に自分が書いたコードを読んだとき「???」となることがありますよね。

でもみんなで同じルールのもとに書いていれば、?の数が減ると思うんです。

可読性がUPすると、以下にかかる時間が大幅に短縮されます。

  • コーディング
  • 機能追加
  • 修正

エンジニアにとってこんなに嬉しいことはないですよね。

まだまだ未完成ですが、

我が社のルールを公開しますので参考にしてみてください。

Playgroundのコーディング規約

コーディング規約1|全体

  • インデントはスペース4つ分
  • 不要なコード・改行は削除

コーディング規約2|命名規則

変数名

  • Modelの変数はスネークケースとする

example

var user_name: String?

 

  • その他の変数はキャメルケース(先頭は小文字)とする。
  • Dataを扱うときは、Modelのクラス名をそのまま使う。

example

var userName: String = ""
var userModel: UserModel = UserModel()

 

Class名

  • キャメルケース(先頭も大文字)とする。
  • 多少長くても、どこのファイル構成にいるかわかりやすいネーミングにする。

例) TopViewController > MainView > TopMainTableViewCell

コーディング規約3|初期化

  • 型宣言をする。
  • 型名 + () で初期値を入れる。

example

var str: String = String()
var int: Int = Int()
var bool: Bool = false
var arr: [String] = [String]()

 

コーディングスタイル

Optional

  • 開示指定(!)やnill合体演算子(??)は使わない。

→初期値を入れるか  if let や guard let でアンラップ処理をする。

良い例

//初期値を入れる
var hoge: Int = 0
hoge = 10
let fuga: Int = hoge

//アンラップ
if let hoge = hoge {
    //存在が保証されたhogeを使って処理を書く
} else {
    //必要ならnilの時の処理を書く
}

 

悪い例

//初期値を入れない
var hoge: Int?
let fuga: Int = hoge ?? 0

 

注意】guard let を使うと、値がnilだったときにその後の処理が呼ばれない。

example

guard let hoge = hoge else {return}
//hogeがnilの場合ここの処理は呼ばれない(return されてしまうから)

 

 

プロパティ

  • “self.”での呼び出しは必要なときのみ使用する。(引数と同じ名前のプロパティ、クロージャ内など)

XIB

  • isHiddunなど、コードで指定できるものはコードで指定。
  • NavigationHeaderBar.isHiddun に限っては、XIBで指定可。

終わりに

このコーディング規約は今後もどんどん更新していきます!

最初は簡単なものから、徐々に育てていこうと思います。

アドバイスやご指摘等ありましたらコメントお願いしますm(_ _)m

規約作成で参考にしたサイトは以下です

・ベストなコーディング規約の作り方

ABOUT ME
伊原 萌夏
スクール担当 兼 iOS(時々Web)エンジニア。 2019年7月に大学を一年半で辞め、大学とは別で勉強していたプログラムの世界で生きていくことを決意。翌月8月に入社。 主にSwiftのスクールを担当。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA