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

最终生成工程目录以下:

相关文章
相关标签/搜索