乐于分享
好东西不私藏

做 iOS 开发必须用这 13 个 iOS 宝藏项目,个个都是真香现场

做 iOS 开发必须用这 13 个 iOS 宝藏项目,个个都是真香现场

这里每天分享一个 iOS 的新知识,快来关注我吧

前言

这周又淘到几个挺顺手的 iOS 库和工具,趁热乎整理出来分享一下。

话不多说,直接上。

开发库推荐

mlx-swift-lm —— 端侧大模型的新势力

GitHub:ml-explore/mlx-swift-lm[1]

这个是 Apple 官方 MLX 框架 Swift 绑定在 LLM/VLM 方向的延伸,搞端侧 AI 的朋友务必重点看下。苹果这两年在 AI 上确实挺拼,MLX 针对 Apple Silicon 做了深度优化,跑大模型性能还真有点东西。

有了 mlx-swift-lm,你就可以直接在 iOS 或 macOS 上加载各种开源大模型——Llama、Qwen、Mistral 什么的都行,视觉语言模型(VLM)也支持。调用方式也相当 Swift:

import MLXLMCommon
import MLXLLM

// 加载模型
let modelContainer = try await LLMModelFactory.shared.loadContainer(
    configuration: ModelConfiguration(id: “mlx-community/Qwen2.5-1.5B-Instruct-4bit”)
)

// 生成文本
let result = try await modelContainer.perform { context in
    let input = try await context.processor.prepare(input: .init(prompt: “你好”))
    return try MLXLMCommon.generate(input: input, parameters: .init(), context: context)
}

适用场景:端侧 AI App、隐私敏感的聊天工具、离线翻译或摘要类应用。

虽说还算新,但毕竟是 Apple 官方背书,后面的生态肯定值得期待。

realm-swift —— 移动端数据库的另一条路

GitHub:realm/realm-swift[2]

说句心里话,Core Data 那套 API 真的劝退,Realm 就是为了治这个病来的。它提供了一套更现代、更面向对象的移动数据库方案,性能还挺能打。

定义模型和 Core Data 比,简直两个世界:

import RealmSwift

// 数据模型
class Dog: Object {
    @Persisted(primaryKey: truevar idString = UUID().uuidString
    @Persisted var nameString
    @Persisted var ageInt
}

// 写入
let realm = try! Realm()
try! realm.write {
    realm.add(Dog(value: [“name”“旺财”“age”3]))
}

// 查询
let dogs = realm.objects(Dog.self).where { $0.age > 2 }

这清爽程度……不用多说了吧。再加上实时监听、云端同步(Atlas Device Sync),该有的都给你安排上。

适用场景:需要复杂本地存储的 App,尤其是那些被 Core Data 伤过心的同学。

CocoaLumberjack —— 日志框架的扛把子

GitHub:CocoaLumberjack/CocoaLumberjack[3]

print 打日志?那是写 Demo 玩的。真正要上线的项目,日志这块必须得上专业的。CocoaLumberjack 就是 Apple 平台上最成熟的日志框架之一,全平台覆盖(iOS、macOS、tvOS、watchOS),性能据说是 NSLog 的好几倍。

用法也不复杂:

import CocoaLumberjackSwift

// 配置输出
DDLog.add(DDOSLogger.sharedInstance)  // 输出到系统 Console
let fileLogger = DDFileLogger()
fileLogger.rollingFrequency = 60 * 60 * 24  // 每天滚动
DDLog.add(fileLogger)

// 打日志
DDLogVerbose(“详细信息”)
DDLogInfo(“常规信息”)
DDLogError(“错误信息”)

多种输出(控制台、文件、自定义)都能搞,按级别过滤、自定义格式化器也都支持。线上排查问题,全靠它。

适用场景:任何需要正经日志管理的项目。

OHHTTPStubs —— 网络 Mock 救星

GitHub:AliSoftware/OHHTTPStubs[4]

写单元测试最烦的就是网络请求这块,OHHTTPStubs 就是来救命的。它能把所有 HTTP 请求拦下来,返回你预设的响应,测试网络层再也不用看后端同学脸色了。

import OHHTTPStubs
import OHHTTPStubsSwift

// 拦截所有打到 api.example.com 的请求
stub(condition: isHost(“api.example.com”)) { _ in
    let obj = [“users”: [“Alice”“Bob”]]
    return HTTPStubsResponse(
        jsonObject: obj,
        statusCode: 200,
        headers: nil
    )
}

这样一来测试就稳了,还能模拟各种奇葩场景——超时、500、网络断开都能演一遍。

适用场景:单元测试、UI 测试、本地调试、演示 Demo。

开发工具推荐

Stats —— macOS 菜单栏监控神器

GitHub:exelban/stats[5]

这个我用了快两年了,免费,好用,直接把我之前付费买的 iStat Menus 给替掉了。CPU、GPU、内存、磁盘、网络、电池、传感器温度,全往菜单栏一塞,定制化还特别高。

exelban/stats

Swift 原生写的,资源占用很小,样式、刷新频率、颜色啥的都能自己调。写 App 做性能分析、跑模拟器的时候,抬头扫一眼菜单栏就知道机器状态,真的香。

适用场景:所有 macOS 用户,尤其是开发者,或者想把机器状态握在手里的那批人。

Star 也破 30k 了,口碑是真的好。

SwiftLint —— Swift 代码规范的门神

GitHub:realm/SwiftLint[6]

团队协作项目,SwiftLint 没得挑,必装。它能自动检查 Swift 代码是否符合规范——命名、缩进、强制解包、闭包风格,全管。

挂到 Xcode 的 Build Phase 里,每次编译自动跑一遍:

# 直接用 Homebrew 装
brew install swiftlint

# 项目根目录放个 .swiftlint.yml 配置文件
# Xcode Build Phase 里加一行
swiftlint

配上 .swiftlint.yml 自定义规则,代码风格瞬间统一,Code Review 也不用再为那点空格换行吵来吵去了。

适用场景:所有 Swift 项目,多人协作更是必备。

IINA —— macOS 上最顺手的视频播放器

GitHub:iina/iina[7]

用过的 macOS 视频播放器里最爽的一个,没有之一。内核是 mpv,格式基本通吃,界面却是纯原生 macOS 风格,跟系统融得严丝合缝。

画中画、触控栏、快捷键、字幕加载、在线字幕搜索、播放列表……全都有。比 QuickTime 强太多,比 VLC 又好看太多。完全开源免费,Swift 写的,顺便还能当学习素材,一举多得。

适用场景:macOS 用户看视频;或者想学习 macOS 应用开发的同学,拿它当样板项目挺合适。

Ice —— 菜单栏管理的免费平替

GitHub:jordanbaird/Ice[8]

MacBook 屏幕本来就不大,菜单栏图标一多就被刘海给吞了。Ice 就是来治这个的,免费。隐藏、分组、自动折叠菜单栏图标,基本可以把付费的 Bartender 干掉了。

jordanbaird/Ice

纯 SwiftUI,UI 很现代,启动也快,占用资源也不高。对菜单栏有强迫症的朋友,真的推荐。

适用场景:MacBook 用户,尤其是刘海屏那批新机器。

Signal-iOS —— 隐私通讯的开源教科书

GitHub:signalapp/Signal-iOS[9]

目前最受信赖的端到端加密通讯 App,代码全开源。对想研究大型 iOS 工程怎么组织的同学来说,Signal-iOS 就是个现成的教科书。

从加密协议实现、通话技术、UI 架构,到 CI/CD 流程,工程质量那是真的高。Swift + Objective-C 混编,能挖的实战经验多得是。

适用场景:在意隐私的普通用户;或者想扒一扒工业级 iOS 项目是怎么写的开发者。

总结

好了,这周的推荐就到这儿。这些里面你用过哪些?有没有啥私藏好东西也想甩出来聊聊?欢迎评论区扔过来,下周接着整!

参考资料

[1]ml-explore/mlx-swift-lm: https://github.com/ml-explore/mlx-swift-lm
[2]realm/realm-swift: https://github.com/realm/realm-swift
[3]CocoaLumberjack/CocoaLumberjack: https://github.com/CocoaLumberjack/CocoaLumberjack
[4]AliSoftware/OHHTTPStubs: https://github.com/AliSoftware/OHHTTPStubs
[5]exelban/stats: https://github.com/exelban/stats
[6]realm/SwiftLint: https://github.com/realm/SwiftLint
[7]iina/iina: https://github.com/iina/iina
[8]jordanbaird/Ice: https://github.com/jordanbaird/Ice
[9]signalapp/Signal-iOS: https://github.com/signalapp/Signal-iOS

这里每天分享一个 iOS 的新知识,快来关注我吧