###### tags: `2023 imac iOS Team` # iOS Coding Style Guideline ## import 不同的 import 之間以一行空行分隔 * import 順序 1. Apple 官方 Library/Framework 2. 自己寫的 Library/Framework 3. 第三方套件 ```swift /* import 順序 Example */ // Apple 官方 Library/Framework import UIKit // 自己寫的 Library/Framework import TPKCore // 第三方套件 import RealmSwift ``` ## 命名規則 ### class、struct * 採用「大駝峰命名法」,每個單字的第一個字為大寫,其餘小寫 * 不使用底線字元 ### Extension * 採用「擴充類別名+Extensions」命名 * Example: * UIView+Extensions * String+Extensions * Notification+Extensions ### enum * enum 命名採用大駝峰 * case 命名採用小駝峰 ### UI 元件 * 請以「元件名稱」+「變數名稱」命名 * Example(登入按鈕): * btnLogin | UI 元件名稱 | 縮寫 | UI 元件名稱 | 縮寫 | |--------------------|:----:|------------------------|:----:| | UILabel | lb | UIStepper | stp | | UIButton | btn | UIPasteControl | pstc | | UITextField | txf | UIColorWell | cw | | UITextView | txv | UIImage | img | | UIPageControl | pc | UIImageView | imgv | | UISegmentControl | segc | UITableView | tbv | | UIPickerView | pkv | UICollectionView | cv | | UIDatePicker | dpk | UIScrollView | scv | | UISlider | sld | UIStackView | stkv | | UISwitch | sw | UIView | v | | UIProgressView | pv | UIViewController | vc | | WKWebView | wbv | UINavigationController | navc | | UISearchBar | sb | UIAlertController | altc | | UITabBarController | tbc | UICollectionViewCell | cvCell | | UITableViewCell | tbvCell | ### Program Mark : ```swift= // MARK: - IBOutlet // MARK: - Property // MARK: - LifeCycle // MARK: - UI Settings // MARK: - IBAction // MARK: - Function // MARK: - Extensions ``` ### func 寫法: * 大括號與程式碼之間不可以空格 * 當 Function 超過 3 個參數 or 超過 100 字元,將每個參數定義在獨立的一行。 Example: ```swift= func addSoapRequest(strURL: String, strMessage: String, strAction: String, uTag: UInt) { } ```