ByteNoteByteNote

字节笔记本

2026年2月19日

SpeedySwift:iOS App 开发加速库

当独立开发者面临时间压力,如何在一天内完成从开发到上线的全过程?SpeedySwift 的作者用实际行动给出了答案:一个精心设计的加速库,能让开发效率提升数倍。

SpeedySwift 简介

SpeedySwift 是由 Tliens(我是熊大)开发的开源 Swift 加速库,专为 iOS App 开发设计。它集成了大量常用功能和扩展,帮助开发者快速构建应用。该库已被用于《小灵感》《今日计划》《NOTO-极简任务清单》等多款上架应用。该项目在 GitHub 上拥有 489 stars 和 71 forks。

核心定位:这是一个 app 开发的加速库

核心特性

  • 属性包裹器:支持 Codable 默认值、UserDefault 数据持久化
  • UI 适配终结者:UI+Scale.swift 自动适配各种屏幕
  • 常用函数集合:基于 SwifterSwift 精简的实用函数
  • 页面跳转封装:App 跳转、ViewController、NavigationController、TabbarController 基础封装
  • 系统功能:网络监察、截屏监听、弹窗管理、沙盒缓存
  • 设备信息:App 信息、BundleID、DisplayName、Version 等
  • 震动反馈:7 种震动反馈模式

基本信息

安装方法

CocoaPods

ruby
pod 'SpeedySwift'

要求:Swift 5.0 及以上

本地 Pod(推荐)

ruby
pod 'SpeedySwift', :path => '../SpeedySwift'

使用示例

颜色

swift
let color = UIColor.hex("#22023b")

底部安全区高度

swift
let height = SS.safeBottomHeight

SSCollectionViewLayout(自动适配方向)

swift
let layout = SSCollectionViewLayout(
    longitude: 0,
    latitude: 10.scale,
    itemSize: CGSize(width: 130.scale, height: 139.scale),
    sectionInset: .init(top: 10.scale, left: 20.scale, bottom: 0, right: 20.scale),
    direction: .vertical
)

属性包裹器

swift
// Codable 默认值
class Member: Codable {
    @Default<Bool.defalut> var isOk: Bool
    @Default<String.defalut> var name: String
    @Default<Int.defalut> var age: Int
}

// UserDefault 数据持久化
@UserDefault("had_shown_guide_view", defaultValue: false)
static var hadShownGuideView: Bool

系统页面跳转

swift
// 跳转到系统设置
static func systemJump(completionHandler completion: ((AppJumpStatus) -> Void)? = nil) {
    let urlString = UIApplication.openSettingsURLString
    if let url: URL = URL(string: urlString) {
        App.jump(url: url, completionHandler: completion)
    } else {
        completion?(.fail)
    }
}

通过 Cell 上的控件获取 IndexPath

swift
// UITableView 扩展
extension UITableView {
    /// 获取 indexPath
    func indexPath(by child: UIView) -> IndexPath? {
        let point = child.convert(CGPoint.zero, to: self)
        return self.indexPathForRow(at: point)
    }

    /// 获取 cell
    func cell(by child: UIView) -> UITableViewCell? {
        let point = child.convert(CGPoint.zero, to: self)
        if let indexPath = self.indexPathForRow(at: point) {
            return self.cellForRow(at: indexPath)
        }
        return nil
    }
}

其他常用功能

swift
// App 版本号
static var version: String? {
    return Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String
}

// 设备名称
static var deviceName: String {
    return UIDevice.current.localizedModel
}

// 设备方向
static var deviceOrientation: UIDeviceOrientation {
    return UIDevice.current.orientation
}

// 主窗口
static var keyWindow: UIView? {
    return UIApplication.shared.keyWindow
}

// 当前系统版本
static var systemVersion: String {
    return UIDevice.current.systemVersion
}

// 判断设备是不是 iPhoneX
static var isX: Bool {
    var isX = false
    if #available(iOS 11.0, *) {
        let bottom: CGFloat = UIApplication.shared.delegate?.window??.safeAreaInsets.bottom ?? 0
        isX = bottom > 0.0
    }
    return isX
}

项目结构

text
SpeedySwift/
├── Base/              # 基础类
├── Core/              # UIKit + Foundation 扩展
├── SS.swift           # 核心类,包含各种 extension
├── SSDefault.swift    # 属性包裹器封装
├── SSCodableDefault.swift  # Codable 默认值
├── SSSandBox.swift    # 沙盒相关操作
└── Tools/             # App 跳转、网络检查、弹窗、震动反馈

实际应用

使用 SpeedySwift 开发的应用:

适用场景

  • 独立开发者快速开发应用
  • iOS 开发效率提升
  • Swift 进阶学习参考
  • 常用功能代码复用

总结

SpeedySwift 是一个实用的 iOS 开发加速库,其优势包括:

  • 开发效率高:大幅减少重复代码编写
  • 功能丰富:涵盖 UI、网络、存储、设备信息等多个方面
  • 实战验证:已被多款上架应用使用
  • 持续维护:作者持续更新和优化

对于独立开发者或需要快速开发 iOS 应用的团队来说,这是一个很好的基础库选择。

分享: