Swift 組件開發規範

[TOC]git

同時發佈於簡書 Swift 組件開發規範github

Swift 組件開發規範

最近在公司內部寫了一些 Swift 相關組件的一些思考編程

1. 工程規範

1.1 組件工程建立

利用 pod 自帶命令 pod lib create 構建工程(使用詳情請見 附錄)swift

Swift 語言組件開發有別於 OC 版本的開發, 引入了 Module 概念,尤爲對**訪問權限**關鍵字的使用: open > public > internal > filePrivate > privatemarkdown

使用自帶命令建立工程,在代碼測試時,避免一些訪問權限不正當使用,提早暴露使用問題。 好比:function 函數使用 internal 權限,可是生成 framewoek 後卻沒法訪問等網絡

1.2 庫的導入

默認狀況下,用到哪一個庫就要導入哪一個庫,無疑增長了不少重複的工做量,過去 OC 組件工程以 pch 文件 實現全局導入,Swift 引入了 Module 概念,沒法在使用 pch。架構

解決方案app

  1. 構建 工程名-Bridging-Header.h 文件
  2. 引入 framewok,好比 Swift版網絡框架Bowling,經過 #import<Bowling/Bowling-Swift.h>

其中 Bowling 爲包名,Bowling-Swift.h 爲 framwwork 自動生成的,位於 Bowling.framework/Header 文件下框架

1.3 單元測試

1.3.1 必要性

測試即便用文檔函數

對於組件使用人員來看,能夠經過閱讀單元測試來了解功能的使用,方便查看

提升生產效率

提早發現 bug,快速爲 dev 提供反饋的機制; 尤爲 一處小小的改動,快速驗證

改善代碼結構設計

單元測試能夠充當一個設計工具,它有助於開發人員去思考代碼結構的設計,讓代碼更加有利於測試

1.3.2 使用

系統自帶的 XCTestCase 框架 【Unit Testing】

第三方框架 Quick

1.4 思惟演化

1.設計先行:分析 -> 調研 -> 設計 -> 架構 -> 拆分實現

2.編程範式跨越:面向對象編程 -> 面向協議(接口)編程

2. 編碼規範

2.1 類名命名規範

因爲 Swift 引入了 Modul 概念,在類名前沒必要添加 前綴,僅限於 Swift 之間調用,若是有類名,方法名等衝突能夠採用 Modul. 形式訪問。OC 調用 Swift 時, Swift 能夠經過 @objc() 修改暴露給 OC 的符號名

2.2 對外訪問權限

正確使用 open > public > internal > filePrivate > private

3. 文檔規範

3.1 文檔目錄結構

  1. 簡介 【 1.1 描述,1.2 特性 】
  2. 快速引入 【 2.1 系統要求 2.2 安裝(至少包括 CocoaPods 安裝)】
  3. 使用方式 【3.1 基本使用 3.2 高級特性 ....】

致謝(可選,好比 參考哪些框架 或者 移植了哪些代碼等)

3.2 書寫規範

  1. 標題:數字標號 +.(點) + (空格) + 標題內容,如:2. 快速引入

附錄

1. pod lib 命令詳細使用

好比 :咱們以建立 TestPro 組件爲例, 打開終端,cd 到指定目錄,執行命令 pod lib create TestPro

等待 TestPro template 配置

//自動執行
Cloning `https://github.com/CocoaPods/pod-template.git` into `TestPro`.
Configuring TestPro template.
複製代碼

What platform do you want to use?? [ iOS / macOS ]

iOS

What language do you want to use?? [ Swift / ObjC ]

Swift

Would you like to include a demo application with your library? [ Yes / No ]

Yes

若是開發功能模板選擇 Quick Which testing frameworks will you use? [ Quick / None ]

Quick

若是開發 UI組件 選擇 Yes Would you like to do view based testing? [ Yes / No ]

Yes

最終生成工程目錄以下:

相關文章
相關標籤/搜索