老司机 iOS 周报 #167 | 2021-07-19

原文转载自 「老司机 iOS 周报」 ( https://github.com/SwiftOldDriver/iOS-Weekly/releases/tag/#167 ) By ParsifalC

预计阅读时间 0 分钟(共 0 个字, 0 张图片, 0 个链接)

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

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

新手推荐

🌟 🐢 Develop Apps for iOS

@EyreFree:苹果官方 iOS 开发教程终于来了,原来苹果没有忘记!此教程预计需阅读 12 小时左右,介绍 Xcode 的基础用法以及如何利用 SwiftUI 和 UIKit 两个框架来开发 iOS 原生 App,渐进式的代码演示,通俗易懂,非常适合初学者。

🐕 使用 Swift 提高代码质量

@ChengzhiHuang:文章首先简单介绍了 Swift 的类型安全等特性,接着列举了一些容易忽略却较为有效的代码实践以及性能优化方案,例如 减少方法动态派发避免随意给予可选值默认值protocol 添加 AnyObject 等等。如果团队计划投入 Swift,不失为一份大家可以参考的编码规范的最佳实践。

WWDC 21 内参本周更新

【WWDC21 10030】高级 Web 内容开发

@LittleSmart: Web 应用作为互联网内容的重要组成部分,近些年随着 Web2.0 概念的蓬勃发展和包括 WebAssembly、WebGL2.0 等技术的演进,Web 应用在很多场景下已经具备和原生相媲美的性能,Apple 在过去的一年中为 Web应用带来了哪些改进,Safari 和 Webkit 又新添了一些怎样有趣又好玩的功能呢,让我们跟随 WWDC21 一起来探索一下吧~

【WWDC21 10053】优秀 Mac Catalyst App 的品质

@OneeMe: Catalyst 这项技术是苹果于 2019 年的 WWDC 上推出的新技术,其目的在于让开发者能够很快的将一个 iPad App 转换成一个能够跑在 Mac 上的 App。三年来的积累也给这项技术带来了足够丰富的特性。那么,面对 Catalyst 中丰富的各种能力,如何才能让我们所创建的 App 在 Catalyst 下有更好的体验呢?让我们来逐一看看苹果工程师给我们的建议吧!

【WWDC21 10122】图表的无障碍支持进阶

@Ckitakishi: 今年,Apple 带来了全新的音频图表(Audio Graphs),以此为契机,本文将围绕图表无障碍化的基础知识,现状和新特性展开讨论,旨在为正在探索图表无障碍访问的你点亮一盏明灯。

【WWDC21 10276】使用相机进行键盘输入

@LinusLing: 我们在日常生活中使用 iOS 应用程序时,常常对那些非数字文本的输入感到很头疼,比如发票,活动传单,还有酒店房间的大活页等。幸运的是,iOS 15 出了一个新功能,可以让你使用相机从周围的世界直接捕获文本,不再需要自己在键盘打字输入了。本文将探讨使用相机进行键盘输入的内容过滤方式以及原理,从而帮助开发者开发相应场景的功能,从而让用户在使用应用程序时获得更流畅、更愉快的体验。

播客

WWDC21 瞎谈:Swift 支棱起来了吗?

@没故事的卓同学:我们终于录上了一期技术播客,本期播客中我、四娘、老驴三人谈了谈对 Xcode cloud 的看法,也谈了 Swift 的异步和并发的新特性。欢迎大家收听、评论、订阅。本期节目在苹果播客、网易云音乐、QQ 音乐、汽水儿、喜马拉雅中也有上线。

文章

🌟 🐕 西瓜客户端埋点实践:基于责任链的埋点框架

@Barney:本文深入浅出,从一个基本的收藏点击埋点切入,对比分析了常见的透传埋点,全埋点的优劣,最后引出基于责任链的埋点介绍。

文中的关键信息总结如下:

  1. 埋点的背景介绍,经典消费场景分析。
  2. 以收藏场景为例,通过伪代码分析对比透传和全埋点的优劣。
  3. 基于责任链的埋点框架介绍
    • 优点:侵入性小、关注点分离
    • 缺点:理解成本、无强制约束

🐎 Experience of using VSCode as a Swift IDE

@Keith:上周我们介绍了码农批量下岗项目 Copilot,该项目还在测试阶段就已经让无数程序员大呼 woc。解放全 GitHub 的项目自然少不了 Swift 代码的投喂,虽然 Copilot 目前只可在宇宙 IDE - VS Code 中使用,但支持多平台一直是 Swift 服务端团队 SSWG 的目标之一。Experience of using VSCode as a Swift IDE 一文介绍了目前在 VS Code 写 Swift 的优缺点和对未来的展望。至于如何进行部署,可以参考官方的 IDEs/Editors with Swift Support,和非官方但更加通俗详细的 iOS Development on VSCode。值得一提的是,尽管目前 Copilot 只对 Python、JS、Go、Ruby 等网红语言才有最完美的支持,但在少有人用 VS Code 开发 iOS 的情况下,其对 Swift 的支持依然十分惊艳。最后,因此对人类失去信心的同学可以复习王垠的「人工智能的局限性」,重拾改一辈子 bug 的无产阶级觉悟。

@Keith 推荐并完成简评

🐕 听说你想写个 DNS 服务器 - 数据包

@J_Knight_:本文作者开始了一个新的系列来讲解如何用 Swift 语言来实现 DNS 服务器。作为本系列的开篇,本文主要介绍了 DNS 数据包的结构(包头和包体数据),各个部分的字段定义,布局信息以及介绍了如何通过抓 DNS 数据包来解析 DNS 相关数据的方法。

扩展阅读:

🐕 Improving Platform Channel Performance in Flutter

@Damien:本文是 pigeon 的作者 Aaron Clarke 带来的精彩好文,Aaron Clarke 通过减少在 Dart、C++、ObjC、JVM 之间信息传递中发生的多余 copy 优化,来提升 Native 与 Flutter 通信的性能。最终取得的效果在老设备上 15% 的提升,新设备上获得了 42% 的性能提升。并在文章最后给出了一些优化建议,如果对性能要求高场景,可以使用 BasicMessageChannel 和 FlutterBinaryCodec 并且配合自己实现 encode & decode,通过这个组合来提高 Flutter 和 Native 之间的性能。

摸鱼周报

@摸鱼周报 #18:第十八期摸鱼周报来啦,一起看看本期概要:

本期话题:什么是暗时间,来源于刘未鹏的《暗时间》。

Tips 内容用一张详细的思维导图总结了 Fastlane 几乎所有的常见方法。

面试解析围绕 block 的变量捕获机制展开说明了 block 的一些用法和面试高频考察点。

优秀博客带来了几篇编译优化相关的文章。

学习资料带来了一个从 0 设计计算机的视频教程,偏电路一些;还有 Git 和正则表达式的文字教程。

开发工具介绍了两个代码片段整理应用:SnippetsLab 和 CodeExpander。

代码

Hammer

@SmallflyHammer 是一款模拟交互事件的 Swift 开源库,支持模拟触摸,iPad 手写笔,键盘输入。它能很好地用于 UI 自动化测试,尽可能替代一系列的人工操作。有兴趣的同学可以了解一下。

赞助者

虚位以待..

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

内推

杭州网易云音乐社区团队招聘高级/资深 iOS 开发工程师,包含云音乐动态,MLog 视频,评论,播客,云圈,音视频编辑等多条核心业务。负责音视频社区生产分发建设,打造良好的社区互动氛围。我们保持将最新技术引入,提升开发效率,带给用户更好的体验。联系方式:简历发送至 iostalkboy@gmail.com

老司机周报团队联合知识小集和 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)

more_vert