老司机 iOS 周报 #239 | 2023-04-03 #3933
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
-
老司机 iOS 周报,只为你呈现有价值的信息。
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
新闻
Xcode 14.3 正式版发布
Xcode 14.3 的正式版来了,除了大家关心的 iOS 16.4 与 Swift 5.8,部分开发者可能在使用 new 创建对象时遇到
new is unavailable
的报错。遇到的话需要检查下对应对象的默认 init 方法是否被标注为了 NS_UNAVAILABLE ,如果是的话进行修改即可(之前版本不会强制报错)。因为 new 本身就等价于 alloc + init ,在 init 被禁用的前提下让 new 也在编译阶段报错能够更好地暴露问题。新手推荐
🐎 Xcode Tip: filter to show modified files only
@Smallfly:在大型 Xcode 工程中,定位已修改文件的效率会降低。这篇文章介绍了使用过滤器来查找最近修改过的文件,并提供了一些快捷键和技巧来更好的使用 Xcode,开发人员能够更加轻松地管理最近修改的代码文件,提高代码开发和维护效率。
文章
🐢 Custom Actor Executors
@JonyFang:Actor Executors 是 Swift 中用于处理 actor 模型的并发机制。传统的模型在处理大量并发请求时可能会遇到一些问题。Swift 引入了自定义 actor executors,允许开发人员创建自己的 actor executors 对象,更好地管理并发操作。开发人员可以创建多个 actor executors 对象,并将它们分配给不同的线程或协程。此外,自定义 actor executors 还可以动态地创建或销毁 actor executors 对象,以适应应用程序的需求。
Working with percentages in SwiftUI layout
@极速男孩:本文介绍了如何在 SwiftUI 布局中使用百分比来控制子视图的大小。SwiftUI 的布局中通常不提供相对大小选项,例如“使此视图占其容器宽度的 50 %”。因此,我们可以在 Layout 协议之上构建自己的相对大小调整器。本文提供了一个名为 RelativeSizeLayout 的私有结构体,用于实现这一目的。同时,在 View 扩展中,我们添加了一个名为 relativeProposed 的公共 API,用于使用刚刚编写的布局。最后,文中还提供了实际使用的示例,展示了如何使用 relativeProposed 来控制聊天泡泡的大小,并说明了在使用相对大小时可能会遇到的一些问题。
🐎 写给小白的 Midjourney 教程
@Cooper Chen:随着 AI 技术的持续大火,越来越多的机遇 AI 技术的产品或工具相继推出,而 Midjourney 应该是最近最火的 AI Image generator 了,作为一款可以用户通过文字描述,就可以绘制出图像的 AI 的应用,其生成的图像质量之高,令人叹为观止。然而由于 Midjourney 使用起来还有有一些门槛,所以本文写给完全没有任何编程基础的用户,你可以把本文当做一本 Midjourney 操作指南来使用。
🐎 How the relative size modifier interacts with stack views
@zoeGuo:这是一篇适合 SwiftUI 初学者的文章。笔者在 HStacks 中使用 .relativeProposed 和 .layoutPriority 对比几种情况下的视图的尺寸,分析出 HStacks 和 VStacks 在使用相对大小时视图尺寸计算的规则,得出结论:HStacks 和 VStacks 并没有将相对大小的修饰先整体计算出一组约束,而是根据子视图优先级的顺序,挨个计算子视图符合的尺寸,排在最后的视图的尺寸表现取决于最后剩余的空间大小。
🐎 一个用在 Swift 中的模块管理框架
@kemchenj:在 OC 里,我们一般是可以通过
__attribute((used, section("__DATA,"#sectname" ")))
这种编译器提供的修饰符来将模块信息存到 Mach-O 的 section 去,等到运行时,在+load
或其他时机取出进行注册,这种类似于自动注册的方式自然是很方便。但是在 Swift 中,上面这种方式自然是不行的,本文作者封装了一套 Module Manager,通过扫描 Mach-O 中的
__objc_classlist
节拿到所有的 class,继而过滤出符合模块要求的 class 进行后续操作。另外 Swift 官方在几个月前也提出过一个草案提供自定义注解 API,让我们可以通过类型安全的方式提供元数据,并且可以在运行时进行读取和操作,感兴趣的同学也可以查看。
🐎 Flutter 小技巧之霓虹灯文本的「故障」效果的实现
@Crazy:这是一篇优秀的 Flutter 实践文章,介绍了如何制作霓虹灯特效。文章简短明了,首先讲解了如何使用 TextStyle 中的 Shadow 的 blurRadius 属性来制作发光文字特效,接着引出了利用 BackdropFilter 的 ImageFilter 制作发光图片的方法。之后,作者利用 ClipPath 和 Polygon 实现了文字撕裂效果,并提供了完整的效果对比。最后,作者通过变形闪动的技巧增强了撕裂效果的真实感。整体的代码实现简单易懂,没有任何难点。文章虽然简短,但在效果上表现出色,适合需要制作霓虹灯文本效果的同学参考。
降低网络延迟:让你的 App 变得更快
@dustturtle:如何打造更快的 App ,对于开发者来说是一个永恒的课题;原因无他,因为对于一个以网络交互为核心的现代应用来说,这是用户体验的核心所在:它意味着更流畅的音视频播放、低延迟的网络会议、快速加载的页面和资源、更少的游戏等待时间等等。2021 年,苹果通过 Session 10239: Reduce network delays for your app[2] 给大家分享了许多网络延迟优化相关的理论知识,并提出了 RPM (每分钟往返次数) 的概念和基于此概念的测试工具;而今年,苹果在去年的基础上,又为我们带来了这一篇实战性质颇强的分享,从客户端侧、服务端侧、网络协议侧三个方面入手提供一系列行之有效的建议,帮助开发者们更好的分析和改善应用的网络延迟状况,从而打造响应更加快捷的 App ,带来更好的用户体验。
内推
重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)
关注我们
我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。
关注有礼,关注【老司机技术周报】,回复「2021」,领取 2017/2018/2019/2020 内参
同时也支持了 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 周报 #239 | 2023-04-03.
Beta Was this translation helpful? Give feedback.
All reactions