SwiftMinions 專案規範

  • 規範

    • 透過 SwiftLint,細節再討論
    • 最低版本 Swift 5
    • 最低支援 iOS 11
    • 駝峰
    • 不要簡寫
    • UIKit with type, ex: xxLabel, xxButton
    • Function No ing, ed (not infect raw data
    • (function) Caasting use keyword to, Ex: toDouble, toJson, toInt.
    • (Variable) Caasting, Ex: doubleValue, jsonValue, intValue.
    • Convenience way to get property using comupting property`
    • Indention = 4 spaces
    • Markdown 用中文 ( 繁中 )
    • 註解統一使用 header 2 的樣子
    • Function 要長成下面這樣
    func xxx() {  // Has white space 
        /// code
    }
  • 註解

註解是之後為了要給 Jazzy 使用得

  • Require

    • 使用 /** */ 的格式
    • English description
    • Chinese description
    • Usage example

例子🌰

  • 單一參數
    /**
     <#English#>
    
     ## Chinese description
     <#Chinese#>
    
     ## Use example
     ```swift
        
     ```
    
     - Parameter <#parameter#>: <#parameter description#>
     - Returns: <#return description#>
    */
  • 多參數
    /**
     <#English#>

     ## Chinese description
     <#Chinese#>

     ## Use example
     ```swift
    
     ```

     - Parameters:
        - <#parameter1#>: <#parameter1 description#>
        - <#parameter2#>: <#parameter2 description#>
     - Returns: <#return description#>
    */

Optional

想成為 jazzy 大師可以看 HeaderDoc XD

  • Architecture

    • 使用 Git, 開發階段先使用個人名字為主,避免衝突 Stephen, Hank etc.
    • 檔案名稱 XXXExtensions
  • Folders

    • 仿造 SwifterSwift 分類,UIKit, UIFoundation etc.
    • 開發階段分別創自己名字的 Folder 以及 swift 檔案,比如 UILabelExtensions_Stephen,避免檔案衝突。
  • 整合

    • 一個禮拜一次的整合,會從 Dispatch Table 去挑選
      每人 20 題上限,共同 review ,確認無誤會轉移到正式的目錄底下
  • 拍板定案

    • 不使用 fatalError
    • 不使用 !
    • 開放客製化部分 MinionsConfig
    • 站時不支援 macos 所以 #if canImport(UIKit) 之類的不用寫
    • completion 要回傳
    • Foundation, SwiftStandLibrary 是 default 載入的 Library
    • Comment 使用 cf. 或者 ref. 的時機
  • 待討論

    • 常用的 uiscreen width height 這些東西是否要寫成一個 class 之類的?
    • function parameters 是否要給默認值
    • 啊什麼時候合併到 master
  • 開發流程

    • 本地先開自己的分支,要 push 前先檢查跟 dev 看看有沒有衝突,然後上傳,然後 merge request,通過 3 人 approve 就會合併到 dev
  • Design umbrella framework

    • 先不要,之後再考慮
  • Ci

    • 當所屬 code 被合併的擁有者,自補測試
    • 使用 Travis
  • Add-on

    • Jazzy
    • Examples
    • Codedev
    • Version ( 跟 swift version 共進退 )
  • Commit Template

    • [ Update ]:
    • [ Bug ]:
    • [ Remove ] :
    • [ Refactor ]:
    • [ Add ]:
  • Git comment

    • commit comment 英文
    • review 中英不限
  • 2020/03/13 聚會

    • extension 需要使用 public

    • pod spec folder dependency

    • ohlulu 開發自動上架腳本

    • 阿蘇 開發 hook 到 slack

    • git 流程需要先 pull 到 自己分支在 push 在 Mr

    • 開發過程可以在 example 上面先試看看,但記得不用 push 上去

Select a repo