[TOC]git
同時發佈於簡書 Swift 組件開發規範github
最近在公司內部寫了一些 Swift 相關組件的一些思考編程
利用 pod 自帶命令 pod lib create 構建工程(使用詳情請見 附錄)swift
Swift 語言組件開發有別於 OC 版本的開發, 引入了 Module 概念,尤爲對**訪問權限**關鍵字的使用: open > public > internal > filePrivate > privatemarkdown
使用自帶命令建立工程,在代碼測試時,避免一些訪問權限不正當使用,提早暴露使用問題。 好比:function 函數使用 internal 權限,可是生成 framewoek 後卻沒法訪問等網絡
默認狀況下,用到哪一個庫就要導入哪一個庫,無疑增長了不少重複的工做量,過去 OC 組件工程以 pch 文件 實現全局導入,Swift 引入了 Module 概念,沒法在使用 pch。架構
解決方案app
其中 Bowling 爲包名,Bowling-Swift.h 爲 framwwork 自動生成的,位於 Bowling.framework/Header 文件下框架
測試即便用文檔函數
對於組件使用人員來看,能夠經過閱讀單元測試來了解功能的使用,方便查看
提升生產效率
提早發現 bug,快速爲 dev 提供反饋的機制; 尤爲 一處小小的改動,快速驗證
改善代碼結構設計
單元測試能夠充當一個設計工具,它有助於開發人員去思考代碼結構的設計,讓代碼更加有利於測試
系統自帶的 XCTestCase 框架 【Unit Testing】
第三方框架 Quick
1.設計先行:分析 -> 調研 -> 設計 -> 架構 -> 拆分實現
2.編程範式跨越:面向對象編程 -> 面向協議(接口)編程
因爲 Swift 引入了 Modul 概念,在類名前沒必要添加 前綴,僅限於 Swift 之間調用,若是有類名,方法名等衝突能夠採用 Modul. 形式訪問。OC 調用 Swift 時, Swift 能夠經過 @objc() 修改暴露給 OC 的符號名
正確使用 open > public > internal > filePrivate > private
致謝(可選,好比 參考哪些框架 或者 移植了哪些代碼等)
好比 :咱們以建立 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
最終生成工程目錄以下: