老司机 iOS 周报 #196 | 2022-03-21 #3322
Damonvvong
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 提出。
新闻
4 月 25 日开始,提交到 App Store 的 app 都必须使用 Xcode 13 构建
从 2022 年 4 月 25 日开始,所有提交到 App Store 的 iOS、iPadOS 和 watchOS app 都必须使用 Xcode 13 构建。Xcode 13 已包含 iOS 15、iPadOS 15 和 watchOS 8 的 SDK。
Developer - 设计开发加速器
使用 SwiftUI 打造卓越体验
2022 年 3 月 24 日- 25 日(报名截止 2022 年 3 月 23 日)
欢迎参加为期两天的 SwiftUI 活动!通过本次活动,您将全方位了解 SwiftUI,包括 SwiftUI 的工作原理和控件使用,数据模型和视图的关联,容器布局和高阶渲染,以及使用 SwiftUI 打造多平台 app。此外,我们还邀请到社区内活跃开发者,来分享他们的 SwiftUI 实战经验。加入我们开启 SwiftUI 之旅!
文章
🐕 Tips for getting the most out of DocC
@四娘:文档工具 DocC 发布了已经快要一年,这段时间里加上了 static hosting,C/Objective-C 的支持以及 SPM 插件等功能,依托它来构建内部文档工具是一个不错的选择,也是一个顺便梳理项目内部代码的机会。
本文作者提供了一个渐进式接入 DocC 的步骤建议:
🐎 Swift进阶
@老峰:作者比较系统的介绍了学习 Swift 的一些知识点,主要包含如下内容:
🚧 🐎 All Thumbs, Why Reach Navigation Should Replace the Navbar in iOS Design
@ChengzhiHuang:一篇偏向交互设计的文章,介绍应该如何做好 Reach Navigation 的设计。随着 iPhone 手机屏幕越来越大,用户手指越来越难够到屏幕的顶部,在 Navbar 上设计功能交互区也显得越发不友好。于是作者提出了 Reach Navigation 的概念,并对三种情况做出了建议:
使用 Tab Bar 的新 APP
不使用 Tab Bar 的新 APP
修改传统的 APP
PS:本文是17年的文章了,但即使在现在看来也依旧不过时。一个的近期类似设计就是 iOS15 Safari 将 URL/search/tab bar 也挪到了底部,单手操作的体验获得了较大的提升。开发者也不应拘泥于写代码,懂一些交互的基本原理也是加分项。
🐎 iOS代码覆盖率-增量覆盖率自动化实践
@Damien:全量代码覆盖率可以帮助开发者聚焦代码的逻辑缺陷,从而更好地避免线上问题,全量代码覆盖率可以直观的看到整个App的代码的覆盖率情况,但是往往有用的或者被关注的是增量代码覆盖率数据。本文通过探索和学习,研究了基于 Git Diff 能力,结合 Clang 覆盖率信息,最终形成了一套增量覆盖率自动化方案。有兴趣的同学不妨一读。
iOS番外-搞点音乐玩玩
@zvving:疫情波动的日子里,不妨听一首自动播放的钢琴曲(演示看这里)。
作者梳理唱名与 MIDI 值的对应关系,定义贝加尔湖畔曲谱文件,使用 MIKMIDI 加载钢琴音色完成播放。代码简单,也可以很有趣!
🐢 Better performance with canvas in SwiftUI
@CrazyCoderShi: Canvas 在各个平台都是一个备受争议的技术,在 SwiftUI 中也不例外,本文使用 Shape , Canvas , 静态图片来对比单个实例的创建和多实例滚动试图下的性能差异,综合结果还是 Canvas 胜出 ✨
🌟 🐕 音视频工程示例专栏
第四篇 iOS 音频解封装:从 MP4 中解封装出 AAC
第五篇 iOS 音频解码:免费获得源码
@JonyFang: 第四篇主要内容:
第五篇主要内容:
1)实现一个音频解封装模块;
2)实现一个音频解码模块;
3)实现对 MP4 文件中音频部分的解封装和解码逻辑,并将解封装、解码后的数据存储为 PCM 文件;
🐕 Writing testable code when using SwiftUI
@JimQ:移动端界面开发不需要写单元测试,貌似已经成为理所当然的事(与界面弱相关的功能模块除外)。来到 SwiftUI 的时代,由于 SwiftUI 诸多开发范式的限制,业务逻辑与 UI 框架交互之间的解难解分比之 UIKit 的时代更有过之。
鉴于此,本文探索了如何使 SwiftUI 开发的 相关逻辑充分可测试(Test),主要包括两个部分:将逻辑提取到相应的 ViewModel 中,以及相对独立的逻辑抽取到相应的扩展中。
文章最后,作者也坦诚自己从未对 SwiftUI 的视图本身写测试(UITest)。作者专注于提取所有想测试的逻辑,使其从 UI 框架中摆脱出来,将主要精力致力于编写这部分的测试。小编作为一个页面仔也深感认同,这可能是一条更加可行的路线。
🐢 iOS15 动态链接 fixup chain 原理详解
@Leo:Fixup chain 是 Apple 在 iOS15 系统上所应用的一种新的动态链接技术,使用了 fixup chain 动态链接方案生成的 Mach-O 文件具有以下两个优势
本文从二进制布局和运行时解析两个角度深入分析了 fixup chain 解决的问题以及实现原理,推荐对底层原理感兴趣的同学阅读~
代码
SafeDecoder
SafeDecoder支持在Codable解码某个字段失败时设置默认值,并且默认值可配置。
摸鱼周报
@摸鱼周报 #47:第四十七期摸鱼周报来了,完整内容可以点击左侧链接,一起来看下本期摘要:
上周还有一期人物访谈,对话一位全职的 iOS 独立开发者,全职独立开发还是非常有难度的,而且听他说靠独立开发的收入即将赶上工作时期的薪资。感兴趣的小伙伴可以点击这里探寻这位独立开发者的进阶之路:人物访谈 | 极简时钟作者:道哥 。
内推
[北京、上海、杭州、深圳] 抖音 - iOS 开发 - 研发效能方向
我们是负责抖音客户端基础能力研发和新技术探索的团队。我们在工程/业务架构,研发工具,编译系统等方向深耕,支撑业务快速迭代的同时,保证超大规模团队的研发效能和工程质量。在性能/稳定性方面不断探索,努力为全球数亿用户提供最极致的基础体验。
更多介绍详见: https://www.yuque.com/iosalliance/article/ozi46h
其他
老司机周报团队联合知识小集和 SwiftGG 翻译组收录了一份靠谱的内推职位。
如果你想找工作,点这里:https://www.yuque.com/iosalliance/article/bhutav
如果你想招人,点这里:https://www.yuque.com/iosalliance/article/ycyhf3
当然,也欢迎你关注我们每一期的周报,我们会在每期周报底部及时更新编辑内推岗位。
关注我们
我们是「老司机技术周报」,一个持续追求精品 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 周报 #196 | 2022-03-21.
Beta Was this translation helpful? Give feedback.
All reactions