Aquarius开发框架旨在帮助独立开发者和中小型团队,完成iOS App的快速实现与迭代。使用框架开发将给你带来简单、高效、易维护的编程体验。

 

Aquarius 是一个为 Swift 开发者打造的高效、轻量级开发框架,致力于提供简洁统一的 API 设计,帮助开发者快速构建高质量的 iOS 应用。本文将重点介绍其核心工具集 A.swift 的使用方法。

 

Aquarius 框架中的 A.swift(简称 A)是一个功能强大的工具箱,它将常用的开发功能封装为静态方法,覆盖了 UI 构建、颜色图片、数据存储、文件操作、事件管理、日志、内购等高频场景。使用 A,开发者可以告别繁琐的底层调用,大幅提升开发效率与代码整洁度。

 

一、A.swift 是什么?

A 是 Aquarius 框架中的核心便捷层,以命名空间(Namespace)的形式组织代码,提供了一系列静态属性和方法,让开发者能够通过类似 A.ui、A.color、A.file 这样的语法快速调用功能模块。

 

其主要优势包括:

 

统一入口:所有功能通过 A 访问,降低记忆成本

类型安全:多数接口设计为类型安全或可选值,避免隐性崩溃

功能完备:涵盖 UI、主题、存储、系统交互、日志、支付等常用场景

现代并发支持:如 IAP 模块使用 async/await 封装,适配 Swift 并发编程

二、核心模块概览

下面我们简要介绍 A 中常用的子模块及其典型用途:

 

模块名 功能说明

A.ui 快速创建常用 UI 控件

A.color / A.image 主题色、系统图标与图片工具

A.userDefaults(_:) UserDefaults 便捷封装,支持 App Group

A.file 文件路径、目录与文件操作

A.calendarEvent 日历事件管理(基于 EventKit)

A.log 分级日志输出,支持 emoji 标识

A.iap 内购流程封装,基于 StoreKit 现代 API

三、实战演示:感受编码效率的飞跃

3.1 快速创建并添加按钮

传统方式:

 

let button = UIButton(type: .system)

button.addTarget(self, action: #selector(submitTapped), for: .touchUpInside)

使用A.swift:

 

let button = A.ui.button

button.addTouchUpInsideBlock { [weak self] control in

    ...

}

let label = A.ui.label

let imageView = A.ui.imageView

let tableView = A.ui.tableView

...

告别不同UI控件创建方式的不同,统一UI控件创建方式。

 

3.2 使用主题色与系统图标

view.backgroundColor = A.color.blackColor

imageView.image = A.image.systemImage(systemName: "star.fill")

统一管理颜色与图标,轻松适配暗黑模式与主题切换。

 

3.3 读写 UserDefaults

//写入

A.userDefaults("group.com.jzx.app").forKey("username")

A.userDefaults("group.com.jzx.app").setValue("张三", forKey: "username")

//读取

let name: String? = A.userDefaults("group.com.jzx.app").getStringValue("username")

支持 App Group,并提供类型安全的读取接口。

 

3.4 文件操作

let path = A.file.pathFromDocuments("data/user.json")

if !A.file.isExist(path) {

    try? A.file.createFolder(at: "data")

}

// 写入文件...

封装常用文件操作方法,提升代码可读性。

 

3.5 创建日历事件

A.calendarEvent.add(title: "发布会", startDate: start, endDate: end) { result in

    switch result {

    case .success(let id): A.log.info("创建成功:\(id)")

    case .failure(let err): A.log.error("创建失败:\(err)")

    }

}

自动处理权限申请与事件添加,回调清晰。

 

3.6 分级日志

A.log.debug("用户点击按钮")

A.log.warning("网络请求超时")

A.log.error("解析失败:\(error)")

日志自带 emoji 和等级标识,调试更直观。

 

3.7 发起内购

Task {

    do {

        let products = try await A.iap.fetchProducts(["com.jzx.pro"])

        if let product = products.first {

            try await A.iap.purchase(product: product)

            A.log.info("购买成功")

        }

    } catch {

        A.log.error("购买失败:\(error)")

    }

}

基于现代 StoreKit API,支持 async/await,逻辑清晰。

 

四、最佳实践与注意事项

4.1 错误处理要到位

A 中多数可能出错的操作都会通过 Result、throws 或可选值来表示失败,请务必处理这些情况,避免直接使用 try! 或强制解包。

 

4.2 权限管理不能忘

如使用 A.calendarEvent 或 A.reminderEvent,请确保已在 Info.plist 中添加相应权限说明,并在使用前检查授权状态。

 

4.3 线程安全需注意

涉及 UI 更新的操作请确保在主线程执行。A.iap 等异步方法已自动处理线程切换,但仍建议使用 MainActor 或 DispatchQueue.main 更新界面。

 

4.4 结合 MVVM 架构

你可以在 ViewModel 中直接使用 A.file、A.userDefaults、A.iap 等模块,将平台相关代码与 UI 逻辑分离:

 

class SettingViewModel {

    func clearCache() {

        let cachePath = A.file.pathFromCaches("")

        try? A.file.removeItem(cachePath)

    }

}

五、总结

A.swift 作为 Aquarius 框架中的"瑞士军刀",极大地简化了 iOS 开发中常见的任务流程。无论是创建界面、管理数据、记录日志,还是处理内购和系统事件,A 都提供了简洁而强大的接口。

 

如果你正在寻找一个能提升开发效率、减少样板代码的 Swift 工具集,不妨试试 Aquarius 框架中的 A.swift。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐