了解 Kyle Bashour 的 App“Paku”如何使用 Swift Charts、小组件和服务器端 Swift 来提供即时空气质量更新。
͏
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
Apple Watch 上的“Paku”如何帮助用户畅快呼吸
2020 年 9 月的一个早晨,Kyle Bashour 与所有旧金山居民一样,朝外望去,发现天空已经变成了橙色。
Bashour 毕业于田纳西大学诺克斯维尔分校,主修计算机科学,后来搬到湾区,在一家大型科技公司工作。但他借着天空变为橙色这一奇特的契机,启动了一个 iOS 副业项目:一款名为“Paku”的 App 和小组件,能够显示来自距离用户最近的 PurpleAir 监测传感器的空气质量数据。
Paku
兼容平台:iPhone、iPad、Mac、Apple Watch
团队规模:1 人
所在国家或地区:俄勒冈州波特兰市
“当时小组件刚推出不久,”现居波特兰的 Bashour 说,“所以我的第一个版本其实就是一个显示 PurpleAir 数据的小组件。我花了一天时间就完成了构建和发布。但它的效果还不错,也引起了一些关注,这激励我继续做下去。”
在接下来的几周里,Bashour 添加了地图视图,“完善”了一些 AQI 细节,并开始集成图表和推送通知等其他功能。当 watchOS 10 在 WWDC23 上亮相时,他“重新设计了整个 Apple Watch 版 App”,将“Paku”迁移到了这个平台。如今,在 iOS、iPadOS、macOS 和 watchOS 上,“Paku”已成为同类产品中的佼佼者,提供易于导航的 Swift Charts、美观时尚的智能叠放小组件,以及一目了然 (且极具本地化特色) 的空气质量更新。
“我不会说自己是空气质量专家,可能只是比普通人关注得多一些而已。”
“Paku”仍是一个副业项目,主要使用 SwiftUI 构建,不过 Bashour 表示一些屏幕使用了封装在 UIKit 中的 SwiftUI 视图来“提升视觉效果”。这款 App 从一开始就支持 WidgetKit,不过随着时间的推移,又增加了对 MapKit、操作按钮、实时活动和 App Intents 的支持。“Apple 提供的 API 更简单,更具成本效益。”他说。
此外,“Paku”使用 Swift Actor 来确保安全、轻松地实现内存缓存。“我在后端对传感器数据使用了内存缓存,其实就是一个带字典的 Swift Actor。这使得在使用异步函数的 API 实现中获取数据变得超级简单,而且不用担心传感器更新时出现数据争用问题。”
更重要的是,这款 App 依托服务器端 Swift,Bashour 通过它建立了共享模型来处理实时 AQI 数据监测。“它是轻量级的、速度快、内存占用极低,而且无需学习其他语言。这确实为那些不太热衷于后端开发的独立开发者和个人开发者解决了难题。”
Bashour 说他“不是设计师”,更喜欢通过编码进行设计。“watchOS 拥有出色的设计语言,这很有帮助。”他说,“为了学习如何构建图表,我观看了 WWDC 视频并深入研究了示例代码。所有详细的指南都让这个过程变得相当快捷简单,watchOS 10 在这方面做得很好。”
Bashour 透露,如今大约一半的“Paku”用户使用的是 Apple Watch 版,他们只希望这款 App 能够继续完善。这是一款 App 深耕一个领域并收获出色表现的经典示例,尽管创作者非常谦虚。“听到那些对空气质量极为敏感的用户给出的反馈,我深受鼓舞。”他说,“我不会说自己是空气质量专家,可能只是比普通人关注得多一些而已。”
 |
开发者故事
|
Apple Watch 上的“Paku”如何帮助用户畅快呼吸
|
2020 年 9 月的一个早晨,Kyle Bashour 与所有旧金山居民一样,朝外望去,发现天空已经变成了橙色。
|
Bashour 毕业于田纳西大学诺克斯维尔分校,主修计算机科学,后来搬到湾区,在一家大型科技公司工作。但他借着天空变为橙色这一奇特的契机,启动了一个 iOS 副业项目:一款名为“Paku”的 App 和小组件,能够显示来自距离用户最近的 PurpleAir 监测传感器的空气质量数据。
|
|
Paku
|
兼容平台:iPhone、iPad、Mac、Apple Watch 团队规模:1 人 所在国家或地区:俄勒冈州波特兰市
|
下载
|
|
“当时小组件刚推出不久,”现居波特兰的 Bashour 说,“所以我的第一个版本其实就是一个显示 PurpleAir 数据的小组件。我花了一天时间就完成了构建和发布。但它的效果还不错,也引起了一些关注,这激励我继续做下去。”
|
在接下来的几周里,Bashour 添加了地图视图,“完善”了一些 AQI 细节,并开始集成图表和推送通知等其他功能。当 watchOS 10 在 WWDC23 上亮相时,他“重新设计了整个 Apple Watch 版 App”,将“Paku”迁移到了这个平台。如今,在 iOS、iPadOS、macOS 和 watchOS 上,“Paku”已成为同类产品中的佼佼者,提供易于导航的 Swift Charts、美观时尚的智能叠放小组件,以及一目了然 (且极具本地化特色) 的空气质量更新。
|
|
“我不会说自己是空气质量专家,可能只是比普通人关注得多一些而已。”
|
Kyle Bashour,“Paku”
|
|
“Paku”仍是一个副业项目,主要使用 SwiftUI 构建,不过 Bashour 表示一些屏幕使用了封装在 UIKit 中的 SwiftUI 视图来“提升视觉效果”。这款 App 从一开始就支持 WidgetKit,不过随着时间的推移,又增加了对 MapKit、操作按钮、实时活动和 App Intents 的支持。“Apple 提供的 API 更简单,更具成本效益。”他说。
|
此外,“Paku”使用 Swift Actor 来确保安全、轻松地实现内存缓存。“我在后端对传感器数据使用了内存缓存,其实就是一个带字典的 Swift Actor。这使得在使用异步函数的 API 实现中获取数据变得超级简单,而且不用担心传感器更新时出现数据争用问题。”
|
 |
更重要的是,这款 App 依托服务器端 Swift,Bashour 通过它建立了共享模型来处理实时 AQI 数据监测。“它是轻量级的、速度快、内存占用极低,而且无需学习其他语言。这确实为那些不太热衷于后端开发的独立开发者和个人开发者解决了难题。”
|
Bashour 说他“不是设计师”,更喜欢通过编码进行设计。“watchOS 拥有出色的设计语言,这很有帮助。”他说,“为了学习如何构建图表,我观看了 WWDC 视频并深入研究了示例代码。所有详细的指南都让这个过程变得相当快捷简单,watchOS 10 在这方面做得很好。”
|
Bashour 透露,如今大约一半的“Paku”用户使用的是 Apple Watch 版,他们只希望这款 App 能够继续完善。这是一款 App 深耕一个领域并收获出色表现的经典示例,尽管创作者非常谦虚。“听到那些对空气质量极为敏感的用户给出的反馈,我深受鼓舞。”他说,“我不会说自己是空气质量专家,可能只是比普通人关注得多一些而已。”
|
|
最初发布于 2025 年 6 月 9 日
|
|
|
|
|
|
|
|