肘子的话
去年 12 月 25 日,我的博客经过重新设计后正式上线。这次改版的一个重要变化是提供了文章的中英文两个版本,并且我也停止了在中国其他技术平台上更新文章。一个月后,即从 12 月 25 日至 1 月 23 日,博客的访问数据呈现出显著的变化:
根据谷歌分析:
- UV(独立访客)达到 14K,相比之前的 30 天增长了 156%。
- PV(页面浏览量)达到 35K,增长了 99.6%。
根据百度分析:
- UV 为 18.3K,增长了 234%。
- PV 为 35K,增长了 224%。
值得注意的是,中文访客从占比 75% 下降到 33%,这意味着非中文用户现在已经占据了大多数。
新博客取得如此显著的访问量增长是我没有预料到的,且从统计数字来看,这种增长趋势还将持续。
我创建博客的初衷是在提升自我的同时与更多朋友分享和交流。看到越来越多的读者浏览我的文章,我心中自然感到一丝欣喜。虽然我希望我的文章能被更多朋友看到,但在未来的创作中,我仍将保持初心,专注于我感兴趣、对我和他人有帮助、内容充实的主题。
我期待着通过我的文章与对 SwiftUI、Core Data、SwiftData 感兴趣的朋友进行交流,并共同进步。
原创
探讨 SwiftUI 中的属性包装器:@AppStorage、@SceneStorage、@FocusState、@GestureState 和 @ScaledMetric[2]
Fatbobman( 东坡肘子 )[3]
在本文中,我们将继续了解 SwiftUI 中的属性包装器:@AppStorage
、@SceneStorage
、@FocusState
、@GestureState
以及 @ScaledMetric
。这些属性包装器涵盖了数据持久化、交互响应、辅助功能、多窗口支持等多个方面, 为开发者提供了简洁实用的解决方案。
这篇文章是关于探索 SwiftUI 属性包装器系列的第二部分。第一部分为 探讨 SwiftUI 中的关键属性包装器:@State、@Binding、@StateObject、@ObservedObject、@EnvironmentObject 和 @Environment[4]。整个系列包括四篇文章,旨在全面梳理 SwiftUI 中所有属性包装器的功能。
近期推荐
Case insensitive string comparison in Swift[5]
Natalia Panferova[6]
本文探讨了在 Swift 编程中执行字符串比较的多种方式,特别强调了考虑大小写敏感性的重要性。在常规做法中,开发者可能倾向于简单地将字符串统一转换成相同的大小写形式,然后使用 ==
进行比较。然而,此方法存在明显的局限,并且可能引发性能上的问题。Natalia Panferova 提出了更为推荐的方法,这些方法不仅确保了比较的准确性和效率,而且兼顾了用户文化背景的差异。
Unit Test the Observation Framework[7]
Jacob Bartlett[8]
这篇文章探讨了在 iOS 17 中如何有效地对 Observation 框架进行单元测试。Jacob Bartlett 在文章中指出,传统用于测试 @Published
属性的技巧已无法适用于新的 Observation 框架。他通过展示在 Combine 和 Observation 框架下对 BeerViewModel 进行的单元测试,揭示了适应新框架的测试策略。此外,Bartlett 还提供了 waitForChanges
这一实用的帮助函数,旨在简化 Observation 框架下的测试流程,有效地提高测试效率。
Interactive Widgets With SwiftUI[9]
Alessandro Di Nepi[10]
这篇由 Alessandro Di Nepi 撰写的教程,由 Kodeco 提供,详细介绍了在 SwiftUI 中如何实现交互式小组件的添加。通过将交互式小部件融入名为 Trask 的应用,文章生动展示了如何通过加强交互性来提升小部件的功能和用户体验。此外,教程还深入探讨了交互式小部件的各种类型,以及在设计和开发这些小部件时应遵循的最佳实践。
A simple fastlane setup for solo indie developers[11]
jesse squires[12]
本文介绍了如何为独立开发者的应用程序设置 fastlane,以自动化上传构建和元数据到 App Store。jesse squires 分享了他在以往团队工作中广泛使用 fastlane 的经验,以及他首次从头开始设置 fastlane 的过程。文章的主旨是为独立开发者提供一个简单、高效的 fastlane 配置方法。
Insight on the changes to Apple policy in the EU from the Revenue Cat webinar[13]
Gabrielle Earnshaw[14]
近日,苹果针对欧盟地区的新 App Store 政策引发了广泛关注。在此背景下,Gabrielle Earnshaw 对 Revenue Cat 网络研讨会中的一些关键观点进行了分享。研讨会探讨了若干重要议题,包括受新政影响的市场规模、新商业条款下的风险点、适合采纳新条款的应用类型、商业条款的接受考量,以及应用发布的相关限制。这些内容为独立开发者和小型团队在适应新政策过程中的主要考虑因素和潜在风险提供了全面的概述。
活动
Let's visionOS 2024[15]
由 SwiftGG 和 XReality Zone 共同策划的第一届亚洲 visionOS 开发者大会【Let's visionOS Conf】将于2024.3.30日在北京拉开帷幕!届时会邀请国内外多名大咖来分享他们的实战经验和行业洞见!
会议内容除了编程技术,还会包括产品设计,人机交互和商业化等内容,旨在帮助创业者们在 visionOS 赛道中尽快脱颖而出!
十分期待大家的到来,不论您是参会者,赞助商,演讲嘉宾,还是志愿者,我们都诚挚的欢迎你们与我们共同迎接和探索这个全新的领域!
详情请访问本次活动的官网[16]。
THANK YOU
如果你觉得这份周报或者我的文章对你有所帮助,欢迎 点赞、赞赏,并将其 转发 给更多的朋友。
参考资料
[1]
fatbobman.substack.com: https://fatbobman.substack.com
[2]
探讨 SwiftUI 中的属性包装器:@AppStorage、@SceneStorage、@FocusState、@GestureState 和 @ScaledMetric: https://fatbobman.com/zh/posts/exploring-swiftui-property-wrappers-2/
[3]
Fatbobman( 东坡肘子 ): https://twitter.com/fatbobman
[4]
探讨 SwiftUI 中的关键属性包装器:@State、@Binding、@StateObject、@ObservedObject、@EnvironmentObject 和 @Environment: https://fatbobman.com/zh/posts/exploring-key-property-wrappers-in-swiftui/
[5]
Case insensitive string comparison in Swift: https://t.ly/Q3ZDb
[6]
Natalia Panferova: https://twitter.com/natpanferova
[7]
Unit Test the Observation Framework: https://t.ly/eYK5z
[8]
Jacob Bartlett: https://twitter.com/jacobs_handle
[9]
Interactive Widgets With SwiftUI: https://t.ly/HutRz
[10]
Alessandro Di Nepi: https://twitter.com/alessandrodn
[11]
A simple fastlane setup for solo indie developers: https://t.ly/jXEeA
[12]
jesse squires: https://twitter.com/jesse_squires
[13]
Insight on the changes to Apple policy in the EU from the Revenue Cat webinar: https://t.ly/VaF5-
[14]
Gabrielle Earnshaw: https://www.linkedin.com/in/gabrielle-earnshaw-29284120/
[15]
Let's visionOS 2024: https://letsvisionos24.swiftgg.team/cn/index.html
[16]
官网: https://letsvisionos24.swiftgg.team/cn/index.html