老司机 iOS 周报 #161 | 2021-05-31

Posted 老司机技术周报

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老司机 iOS 周报 #161 | 2021-05-31相关的知识,希望对你有一定的参考价值。

阅读原文,体验更佳!

老司机 ios 周报,只为你呈现有价值的信息。

你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。

新闻

???? ???? Flutter 2.2 发布

@CrazyCoderShi:Google I/O 2021 大会上, Flutter 2.2正式发布,号称是迄今为止最出色的 Flutter 版本。在稳定版和预览版均有不少新特性发布:

  • 稳定版:

    • Dart 2.13

    • Flutter web 更新

    • iOS 页面转场和增量式安装

    • 更多 Material 图标

    • 改进文本处理方式

    • 自动滚动行为

    • TextSpan 上的鼠标指针

  • 预览版:

    • iOS 着色器编译改进

    • android 延迟加载组件: 可下载的 AOT 代码和资源

    • Flutter Windows UWP alpha 版

    • ARM64 Linux 主机支持

文章

???? ???? A站 的 Swift 实践 —— 下篇

@xiaofei86:经过不断迭代,Swift 如今已成 iOS 乃至苹果全平台首选开发语言,A 站也已经完全投入到 Swift 浪潮中,享受到 Swift 语言带来的舒适和高效开发体验。《A 站的 Swift 实践——上篇》介绍了 Swift 的技术背景、Swift 的架构演进过程以及对最新框架 SwiftUI 和 Combine 等技术的选型。作为下篇文章,本文会继续介绍 Swift 的混编和动态性。

???? ???? SwiftUI @ Netflix:推动新技术落地是怎样一种体验?

@zvving:项目中如何推动落地新技术,是技术人持续面对的问题:

  • 选择什么新技术?可以是有业务/性能收益,也可以是降低开发/维护成本,切换/学习成本是否可控

  • 在什么场景落地?要有足够的用户量级论证收益,也要模块独立避免引入成本过高。业务简单稳定的模块是不错的选择

  • 如何在项目中发起?有充分的调研与清晰的方案(硬实力),也要与上下游团队的频繁沟通同步预期(软沟通)

  • 如何落地?尤其留意通过 A/B 实验论证对产品指标及工程指标的影响,指标不负向,成功大半

  • 落地的后续?反思新技术的引入过程是否和预期一致,后续的规划是怎样

故胤道长对以上问题的思考在文中均有体现,是非常不错的参考案例。你对项目中计划引入的新技术,又有怎样的规划?

???? ???? 源码级调试 App Store 包[1]

@Smallfly: 你是否曾为本地 Debug 没问题,Release 包却不能稳定复现 Bug 束手无策?本文作者 @靛青 介绍了如何从一个壳工程开始,一步步实现调试 AppStore / TestFlight 包。

文中提供了自动化构建调试工程的脚本,你只需要提供自己的 ipa 和 dSYM 文件,使用少量的 lldb 命令,即可完成源码级断点调试。

???? 正经分析iOS包大小优化

@J_Knight_:本文作者笔者根据已有的文章、知识结合自己的理解和实践,梳理了一份比较全面的包大小优化的方案。本文先分析了安装包的构成,然后给出了 Xcode 编译设置优化方案和优化前后的数据对比。另外还提供了资源文件的优化方法,包括无用资源的删除(未使用的代码和图片,重复导入的资源等)以及资源(图片,网页,音频等)的压缩方案。另外在文章结尾还提供了本文的参考文献,读者也可以做延伸阅读和学习。

???? 一种使用 CocoaPods 同步 Git hooks 的方案[2]

@四娘:Git hooks 是一段脚本,可以在 Git 执行某些操作之前或者之后执行,比如说 commit , push 或者 receive,我们可以使用它来进行代码格式化等操作。

但它不会被 Git 追踪,只能通过其它手段进行同步,本文就介绍了如何使用 Cocoapods 插件进行同步。

???? iOS优雅实现Pipeline设计模式[3]

@JonyFang :本文主要介绍了 Pipeline 设计模式,使用场景,以及如何使用 OC 语言用链式语法优雅的将 Pipeline 串联起来。文中最后附带了示例 Demo,对于读者了解 Pipeline 设计模式的实践有一定的帮助。

???? ???? How to scan a credit card using Apple Vision and VisionKit natively in iOS Swift with SwiftUI and UIKit[4]

@红纸:iOS 13 发布的新框架 VisionKit 是关于文档识别的新框架,本文作者保姆式介绍了该框架在扫描信用卡场景下,如何配置工程、视图、逻辑,用自定义解析逻辑提高扫描精度。在文末作者还提供了完整版 Demo,有兴趣的小伙伴可以进行尝试一下~


摸鱼周报

@摸鱼周报 #12:本期摸鱼周报带来了 程序员必知的硬核知识大全 的第二部分内容,包含对:二进制、大小端、缓存、压缩算法等内容的介绍。

另外我们还总结了几个 Xcode 耗时统计的 Tips;博客的筛选将更偏向于主题形式的汇总,除了近期几篇优秀文章外,本期还收录了几篇 wakeup 崩溃相关的文章,便于大家对这一知识有更全面的认识;资料部分收录了一个很不错的网站:swiftbysundell.com,它由 John Sundell (Publish的作者) 创建,网站包含 Swift 开发的文章、播客及新闻等内容。对 Swift 的深度使用和探索一直都是国外开发者走在前面,希望对 Swift 感兴趣的各位能在这个网站中探索更多内容。

赞助者

虚位以待..

非常感谢以上赞助者的支持,如果你也有赞助我们的兴趣,欢迎添加微信 iTDriverr 哦~

内推

老司机周报团队联合知识小集和 SwiftGG 翻译组收录了一份靠谱的内推职位。

如果你想找工作,点这里:https://www.yuque.com/iosalliance/article/bhutav

如果你想招人,点这里:https://www.yuque.com/iosalliance/article/ycyhf3

当然,也欢迎你关注我们每一期的周报,我们会在每期周报底部及时更新编辑内推岗位。

关注我们

我们开通了公众号,每期发布时公众号(LSJCoding)会推送消息,欢迎关注。

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

说明

???? 表示需某工具,???? 表示编辑推荐

预计阅读时间:???? 很快就能读完(1 - 10 mins);???? 中等 (10 - 20 mins);???? 慢(20+ mins)

参考资料

[1]

源码级调试 App Store 包: https://blog.indigo.codes/2021/05/23/debug-your-app-store-app/

[2]

一种使用 CocoaPods 同步 Git hooks 的方案: https://dirtmelon.github.io/posts/cocoapods-sync-githooks/

[3]

iOS优雅实现Pipeline设计模式: https://github.com/ChenZeBin/blogs/blob/master/%E6%96%87%E7%AB%A0/PipelineDesign/iOS%E4%BC%98%E9%9B%85%E5%AE%9E%E7%8E%B0Pipeline%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md

[4]

How to scan a credit card using Apple Vision and VisionKit natively in iOS Swift with SwiftUI and UIKit: https://khalidasad93.medium.com/how-to-scan-a-credit-card-using-apple-vision-and-visionkit-natively-in-ios-swift-with-swiftui-and-247fa0863141

以上是关于老司机 iOS 周报 #161 | 2021-05-31的主要内容,如果未能解决你的问题,请参考以下文章

老司机 iOS 周报 #158 | 2021-05-10

老司机 iOS 周报 #163 | 2021-06-21

老司机 iOS 周报 #165 | 2021-07-05

老司机 iOS 周报 #164 | 2021-06-28

老司机 iOS 周报 #162 | 2021-06-07

iOS 符号化:基础与进阶