LoginSignup
33
34

More than 5 years have passed since last update.

Swift開発における開発ルール

Last updated at Posted at 2016-09-28

概要

Swiftアプリ開発における個人的な開発ルールです。
追加があったら付け足していきます。

『自分はこんなルールでやってるよ!』とコメントしてくれると喜びます。

フォルダ分け

project
UI Storyboadを置く
VC ViewControllerを置く
Storyboadに対して複数ある場合は階層を増やす
Common BaseViewControllerなどのBaseクラスを置く
Model Viewと分離したModelクラス
Common 共通系のクラスを置く(比較的自由)
Const.swift 定数のみをまとめるクラス
Library 外部ライブラリを置く
Supporting Files 画像やInfo.plistなどを置く

ViewController、Storyboad、NotificationNameなどはConstで管理する

クラス内リージョン規約

// MARK: IBOoutlet
// MARK: 変数
// MARK: 定数
// MARK: View Lifecycle
// MARK: プロパティ
// MARK: 内部メソッド
// MARK: 公開メソッド
// MARK: IBActions
// MARK: UITableViewDelegate

上記の順番で記述していく(ショートカット:control+6)
書き方については以下の記事を参照。見やすいように工夫する。
Swiftでクラスのアウトライン表示(区切り線やTODO) - Qiita

コーディング規約

コーディング

下記を遵守
Swiftコーディング規約@Wantedly - Qiita

変数名命名規則

IBOoutletやIBActionについて

// connectを貼ったパーツ名を最後に付ける
@IBOutlet weak var testLabel: UILabel!

// Actionについても何のアクションか最後に付ける
@IBAction func testButtonAction(sender: AnyObject) {
}

ドキュメンテーションコメント

VVDocumenter-Xcodeを利用
Lifecycleやdelegateメソッドについては記述するかは任意だが、自作したメソッドには必ず使用する

StoryboadとViewControllerの関係

Storyboadで記述できるところは全てStoryboadで設定する
Storyboadは長くなりすぎず、機能単位で依存する関係のみを1ファイルにまとめる

Main.storyboad
Top - StoreList - StoreDetail 
    - SettingTop - SettingEdit

このようなStoryboadがあった場合は

Top.storyboad
Top
Store.storyboad
StoreList - StoreDetail
Setting.storyboad
SettingTop - SettingEdit

のように3つに分ける

UITableViewとUITableViewCell(Navigation)

一つのViewController内でTableViewを作成し、カスタムセルクラスを作った時はそのViewController内の上部に書く

またNavigationControllerのクラスは起点となるViewContollerファイルの上部に記述する

TestViewController.swift
import UIKit

class TestNavigationController: UINavigationController {

}

class TestTableViewCell: UITableViewCell {
    @IBOutlet weak var testLabel: UILabel!
}

class TestViewController: BaseViewController, UITableViewDataSource, UITableViewDelegate {

    // MARK: IBOoutlet
    @IBOutlet weak var testTableView: UITableView!
33
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
34