# 老司机 iOS 周报 #276 | 2024-01-22

![ios-weekly](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/weekly-header/276.jpg?raw=true)
老司机 iOS 周报，只为你呈现有价值的信息。

你也可以为这个项目出一份力，如果发现有价值的信息、文章、工具等可以到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 里提给我们，我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 提出。

## 新手推荐

### 🐕 [Bad practice: using "YYYY" to format a Date](https://www.swiftwithvincent.com/blog/bad-practice-using-yyyy-to-format-a-date)

[@极速男孩](https://github.com/ztlyyznf001)：文章讲述了在 Swift 编程语言中关于日期格式化的一个常见错误。"YYYY" 实际上表示的是该周开始的年份，这会导致新年初几天的日期显示不正确。例如，2023 年 1 月 1 日会错误地显示为 2022 年。这个错误通常在新年开始时才被注意到。正确的年份格式化方法应该使用 "yyyy" ，以确保准确表示日历年份​​。

## 文章

### 🐕 [在微信小程序里运行完整的 Flutter，我们是怎么做到的？](https://juejin.cn/post/7324923422295670834)

[@邦 Ben](https://github.com/linwenbang)：MPFlutter 是一个跨平台 Flutter 开发框架，可用于各种小程序、H5、原生应用开发。这类跨平台开发，在一些中小型的开发场景来说，可以提高比较大的效率。本文主要介绍一下在微信小程序上实现的原理，通过裁剪 Skia 生成符合微信小程序分包要求的 CanvasKit，使用 Flutter Web + W3C BOM + WebGL Canvas 跑通渲染流程，通过字体内置、智能分包的方式很好地解决了微信包体积限制。选型的过程也有介绍，有兴趣的同学可以仔细看看，也可以基于官网流程体验尝试。

参考链接：[官网](https://mpflutter.com/zh/)

### 🐢 [Swift for C++ Practitioners, Part 1: Intro & Value Types](https://www.douggregor.net/posts/swift-for-cxx-practioners-value-types/)

[@AidenRao](https://weibo.com/AidenRao)：这个系列主要是通过将 C++ 的习惯用法、模式和思维模型映射到 Swift 中来帮助 C++ 开发学习和使用 Swift。如果你是一位 C++ 背景的开发，阅读 [Swift 入门指南](https://www.swift.org/getting-started/) 中有比较多的困惑，那可以尝试一下该系列，能帮助你更好的理解和应用 Swift。

### 🐕 [VisionPro News](https://developer.apple.com/news/?id=8fppguuh) && [Q&A: Building apps for visionOS](https://developer.apple.com/news/?id=prl6dp5r)

[@EyreFree](https://github.com/EyreFree)：在这两篇文章中，Apple 专家回答了关于 visionOS 的常见问题，涵盖了如何与实体互动、选择窗口组或沉浸式空间、可视化碰撞形状、在沉浸式空间中定位 SwiftUI 视图、编程定位窗口、用户关注点追踪、onHover 和 onContinuousHover 动作、自定义沉浸式环境纹理、视频格式转换、RealityKit 照明和材料自定义等方面。介绍了 Apple Vision Pro 的 App Store，Algoriddim 公司为 visionOS 设计的适应无限画布的 App djay，以及 Apple Vision Pro 工程师的常见问题解答。文章还提及了重塑企业应用、提供开发实验室和 App Review 咨询服务，以及 visionOS 的示例应用、SwiftUI 教程和音频性能更新资源。

### 🐎 [AnyView ’ s impact on SwiftUI performance](https://martinmitrevski.com/2024/01/02/anyviews-impact-on-swiftui-performance/)

[@东坡肘子](https://github.com/fatbobman)：本文探讨了在 SwiftUI 中使用 AnyView 对性能可能造成的影响。AnyView 作为一种类型擦除视图，使得开发者无需明确指定视图层次结构中各个视图的具体类型，从而简化了代码的复杂度，避免了泛型的频繁使用。然而，这种方便性可能以牺牲性能为代价。

作者 Martin Mitrevski 通过精心设计的测试代码，直观地展示了 AnyView 在 SwiftUI 中所造成的性能影响。文章特别指出，在包含大量子视图的滚动列表等场景中，应谨慎使用 AnyView，以避免不必要的性能下降。

> 介绍摘自 [Fatbobman's Swift Weekly](https://fatbobman.substack.com/p/fatbobmans-swift-weekly-014)，推荐订阅！

### 🐎 [闲话 APPLE 的 APP REVIEW 趣事](https://sketchk.xyz/posts/secret-of-app-review-team)
[@Smallfly](https://github.com/iostalks)：这篇文章探讨了一些 iOS App Review Team 内部的运作机制，展示了 App 常见的拒审原因，并为审核申述提供了一些思路，推荐给提交 App Store 审核遇到问题的开发者阅读。

### 🐎 [std:: versus ::std::](https://mp.weixin.qq.com/s/QwhBdUZbmGFiUP_ssomXUQ)

[@老驴](https://weibo.com/u/6090610445)：最近一段时间原生鸿蒙开发的热度在升温，而开发原生鸿蒙主要用 C++，而 C++ 这么多年下来也一直热度不减。C++ 开发中，作用域这个概念一直对新手不是很友好，尤其是怎么理解在什么情况下用哪种作用域。这篇文章就可以很好的帮你理解作用域这个概念。

## 内推

重新开始更新「iOS 靠谱内推专题」，整理了最近明确在招人的岗位，供大家参考

具体信息请移步：https://www.yuque.com/iosalliance/article/bhutav 进行查看（如有招聘需求请联系 iTDriverr）

## 关注我们

我们是「老司机技术周报」，一个持续追求精品 iOS 内容的技术公众号，欢迎关注。

**关注有礼，关注【老司机技术周报】，回复「2023」，领取 2023 及往年内参**

![](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/qrcode_for_wechat.jpg?raw=true)

同时也支持了 RSS 订阅：https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。

## 说明

🚧 表示需某工具，🌟 表示编辑推荐

预计阅读时间：🐎 很快就能读完（1 - 10 mins）；🐕 中等 （10 - 20 mins）；🐢 慢（20+ mins）
