老司机 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
Uh oh!
There was an error while loading. Please reload this page.
-
老司机 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