[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
最终生成工程目录以下: