老司机 iOS 周报 #246 | 2023-05-29 #4032
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 提出。
新闻
来 WWDC23 之夜深圳场,看直播!领 Apple 周边!
今年的 WWDC 有线下观影活动哟!6 月 5 日晚,由 T 沙龙主办的「WWDC 之夜(深圳场)」将在货拉拉深圳研发中心举行,在深圳(或附近)的朋友可以线下参加一起熬夜!点击周报下方外链可以直接报名。活动现场还邀请到了两位货拉拉的嘉宾进行精彩分享,分别是:
新手推荐
🐕 Handling WebP Images When Using PHPickerViewController
@极速男孩:在 iOS14 中苹果推出了 PHPickerViewController 来取代 UIImagePickerController,本身 PHPickerViewController 是不支持 WebP 格式的图片的。这篇文章介绍了如何通过给 NSItemProvider 添加扩展的方式来给 PHPickerViewController 增加 WebP 格式图片的支持。
文章
🐎 SwiftUI under the Hood: Variadic Views
@Smallfly:这篇文章主要讲了在 SwiftUI 中的可变参数视图(Variadic Views)。它介绍了如何使用
TupleView
来构建多个视图,并展示了它在视图修饰符方面的透明性。文章还讨论了 SwiftUI 中的一些底层机制,如_VariadicView
和_VariadicView.Tree
,以及它们与VStack
和其它视图类型的关系。最后,文章演示了如何编写自定义的容器视图,类似于List
和VStack
,以在视图之间插入分隔线。🐕 云音乐中 In-App Purchase 实践总结篇 - 掘金
@Barney:这篇文章主要讨论了如何使用 StoreKit 库进行应用内购买 (IAP) 的开发,并提出了处理 IAP 中挑战和问题的方案。
🐕 This Window Is Leaking
@Cooper Chen:这篇文章主要关注了 macOS SwiftUI 应用开发过程中,在
NSWindow
上设置自定义NSWindowDelegate
可能会引入内存泄漏,并且说明了作者如何发现问题到尝试解决问题的思路,作者建议在在设置自定义 Delegate 之前保存原有的 Delegate,并在窗口关闭之前恢复它。另外值得一提的是这个解决方案对于未来版本是否适配是未知的,因此引入这个方案需要较为谨慎。🐎 构建稳定的预览视图 —— SwiftUI 预览的工作原理
@J_Knight_:文章由一个引发 SwiftUI 预览崩溃的代码为切入点,深入分析和介绍了 SwiftUI 的预览机制(比如生成预览衍生文件等等);也提示了为了提高开发效率需要注意的几个问题。
🐎 饿了么开源自研多端框架 MorJS
@老峰:Mor 是饿了么开发的一款基于小程序 DSL 的可扩展多端研发框架,允许开发者编写一套小程序代码并通过转端编译在多个平台(如微信、支付宝、百度等)运行,从而提高开发效率并确保兼容性和一致性。特点包括:
除此上述核心能力外,MorJS 还实现了对于多端或不同环境构建产出不同代码的能力,产物压缩,程序本地 JSAPI mock 能力。
🐎 Using Layout protocol to align explicitly positioned views in SwiftUI
@JonyFang: 介绍了在 SwiftUI 中定位视图的不同方法。
position()
修饰符允许我们通过设置中心点坐标将视图放在其父容器内。然而,在某些情况下,我们不希望视图遮挡住其他标签,因此需要将视图和锚点右对齐或左对齐。在 iOS15 及之前的版本中,通常的解决办法是使用
GeometryReader
来测量视图的大小并调整偏移量。然而,这种方法存在一些问题,如动画的不一致性等。iOS 16 引入了新的 Layout 协议,它允许我们显式地放置视图,并在调用
place()
方法时指定一个锚点。Layout 协议有多种使用方式,但在只有一个标注的情况下,更简单的选项是每个标注都有自己的布局。实例代码放在了 Github:NilCoalescing/SwiftUI-Code-Examples
Public
🐕 在 iOS 中使用 IdentifyLookup 进行短信过滤
@AidenRao:垃圾短信是一个长期存在、令人困扰的问题,Apple 在 WWDC 2017(iOS 11) 推出了 IdentityLookup 框架,让开发者可以参与到过滤短信的过程中。本文将介绍如何阻止这些短信、设备端的检测以及服务器检测等。
代码
🐕 Sparkle - Mac 应用更新框架
@水水:如果你的应用上了 App Store ,其中最大便利之一就是更新处理,苹果可以通过 App Store 进行应用程序的传播和更新。但是如果你在外部分发应用程序,你需要一种替代方法来进行更新通知和执行更新等操作,Sparkle 就是一个帮你的 Mac 应用进行外部更新的框架,Sparkle 框架功能非常全面。如果你也有这方面的需要,具体可以参考 Sparkle 的实现和接入 一文。
内推
重新开始更新「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 周报 #246 | 2023-05-29.
Beta Was this translation helpful? Give feedback.
All reactions