老司机 iOS 周报 #253 | 2023-07-24 #4124
ChengzhiHuang
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
老司机 iOS 周报,只为你呈现有价值的信息。
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
新闻
Unity support for visionOS: What you need to know
Unity 提供 visionOS 支持的 Beta 版本已经放出了申请链接,感兴趣的同学可以自行申请。
WWDC23 内参中也已经放出了多篇相关的内容,大家感兴趣的话可以自行查看:
《WWDC23 内参》
本周我们又更新了 6 篇内参,每篇质量都非常高,由于篇幅问题,开头先推荐三篇可能大家更感兴趣的,其他的放到周报最后了 ~
🌟 WWDC23 10164 - What's new in Swift
冬瓜:这个 Session 涉及了 Swift 的新语法特性和 Swift Macro 的话题,这些功能对于编写更加灵活和健壮的 API 以及高质量代码起到了很大的帮助。此外,也深入探讨了在受限环境下使用 Swift 的优势,并讨论了 Swift 在适配多种平台设备和语言方面的灵活性。
🌟 WWDC23 10167 - 初见 Swift 宏
方舟(WAMaker):Swift 宏是今年 Swift 5.9 的新特性,本文偏重于 Swift 宏基本概念的介绍,以及在使用方面需要注意的内容。
🌟 WWDC23 10117 - App Store Connect 的新特性
iHTCboy:本文介绍了 App Store Connect 的新特性,包括隐私保护、新增的数据类型、按地区预购、产品页优化和通过 API 实现自动化等方面。其中,仅限内部测试人员访问的 TestFlight 测试更早安全可控;按地区预购可以为现有 App 拓展新的市场;通过 API 实现自动化流程以节省时间。最后建议开发者尽早尝试新功能,优化产品页面,激发用户的兴趣,获取更多用户。
文章
🐢 Android 视角谈 Bazel 与 Gradle 构建系统
@Crazy:本文从构建系统对比的角度出发,从各个角度对比了 Bazel 与 Gradle 两种构建系统的差别。首先从理念上对比,对比了 Bazel 与 Gradle 产物的不同点,从而引出两者的并发能力对比,得出结论并发能力上 Bazel 的实现更为简单方便。接着从快速增量对比,引出二者在 DAG 设计上的差别,Bazel 的 DAG 设计在增量与配置阶段都要优于 Gradle 的设计。最后是对分布式编译与依赖管理两种能力的对比,Bazel 的分布式编译是他的核心能力,但对于 Java/Android 的编译来说,分布式编译并没有什么明显提升,而在 Java/Android 的依赖管理上 Gradle 可谓是占尽优势。作者在最后更是利用飞书的两种构建进行了对比,首次编译 Gradle 优势极其明显,而有缓存编译也没有落后 Bazel 很多。作者在整篇文章中尽可能的保持客观的态度为 Bazel 与 Gradle 在做着对比,为大家提供了选择的思路,是值得大家一看文章。
🐎 How to Use Swift Package Manager to Save Gigabytes of Network Traffic and Disk Space
@Smallfly:这篇文章介绍了如何使用 Swift Package Manager(SPM) 将依赖关系存储在项目的代码库中。这样可以避免在每次切换分支时重新下载和解决依赖。作者创建了一个本地 package,并通过脚本将所需依赖最少文件复制到项目中。这样做减小了文件大小,优化了依赖的使用。最终,拷贝的文件目录大小仅需 4.7 MB,比
.build
目录小了 211 倍。文章提供了实现的示例代码,有兴趣请参阅原文。🐎 Bad practice: testing if a String is empty
@JonyFang: 本篇主要讨论在 Swift 中通过使用
string.count > 0
来检测字符串是否为空的问题,并提出了更好的替代方法。使用
string.count > 0
的问题在于count
属性需要遍历整个字符串来计算可见字符的数量,因此对于长字符串或包含大量字符串的情况,执行时间会很长。如果想要执行速度快且不受字符串长度的影响,可以使用string.isEmpty
来检测字符串是否为空。差异在于string.isEmpty
只需要检查字符串是否包含至少一个字符。日常开发过程中,尽量避免长字符串判空通过
count > 0
的方式,避免不必要的性能损耗。🐎 Convenience Property Wrappers vs Custom Data Access Layer in SwiftUI
@AidenRao:作者以一个待办事项应用为例,分析使用 SwiftUI 的
@Query
属性包装器和自定义数据访问层的优缺点。若追求便利,可选择@Query
属性包装器;若需要更大的灵活性,以便于未来更换数据访问层,那么自定义数据访问层更为合适。工具
Developer Duck AI for Xcode
@EyreFree:Developer Duck 是一款人工智能编程助手,可帮助完成包括代码建议、分析和重构等编程任务。
支持以下功能 & 特性:
感兴趣的朋友可以试试。
代码
🐕 DeckKit
@邦Ben:DeckKit 是一个开源库,旨在帮助开发者在 SwiftUI 中创建基于卡片(Deck)的应用程序。DeckKit 可以自定义卡片的外观和行为,并提供了一些方便的功能,如卡片重排、卡片拖拽等。
设计
🐕 Invisible Details of Interaction Design
@水水:好的交互设计会让产品感觉像是我们自身行为的自然延伸,如何在形式和功能之间取得整体平衡、如何让用户根据上下文预测产品交互意图?本文通过 iOS 的一些交互设计来介绍优秀的交互设计是如何隐喻用户进行操作的。对交互或者设计感兴趣的朋友不防看看,也许会有收获哦 ~
WWDC23 内参更新
🌟 WWDC23 10156 & 10157 - SwiftUI 动画篇
zddhub(张东东):本文先以 SwiftUI 动画的基础知识为起点,逐步剖析了支撑 SwiftUI 动画效果的三大核心组成部分:Animation、Animatable 和 Transaction。同时,结合 SwiftUI 的视图渲染机制,旨在帮助读者更深刻地理解和有效地应用 SwiftUI 的动画功能。在文章的尾声,我们会介绍 SwiftUI 最新加入的两个高级动画功能。一起开启探索之旅吧!
🌟 WWDC23 10122 - 探索适用于现代 Web 的媒体格式
夏天:本文将介绍 Safari 支持的媒体格式,包括图像和视频,并介绍了 Safari 17 中的新技术。文章还会讨论网站视频演变历程和最新技术 Managed Media Source API,实现自适应流媒体视频,提供更好的控制和更高效的性能。
🌟 WWDC23 10053 - What's new in privacy
胡军(Hummer):本文以概述的形式讲述了过去一年 Apple 在隐私方面的努力成果。主要涵盖三大方向:
内推
重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
[北京] - 百度网盘 iOS/Android/FE/Server 研发工程师
[广州] 微信支付 - 客户端开发 - iOS/Android
[上海] B 站 - iOS 开发
[上海] 百度输入法 - 客户端开发 - iOS
[深圳/广州/北京/三亚] 字节跳动 - 剪映 - 招聘客户端开发
具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)
关注我们
我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。
关注有礼,关注【老司机技术周报】,回复「2023」,领取 2023 及往年内参
同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。
说明
🚧 表示需某工具,🌟 表示编辑推荐
预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)
This discussion was created from the release 老司机 iOS 周报 #253 | 2023-07-24.
Beta Was this translation helpful? Give feedback.
All reactions