扣丁书屋

老司机 iOS 周报 #144 | 2021-01-14

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

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

WWDC20

本周在周报公众号上我们推送了 2 篇 WWDC20 内参专栏内的文章,每篇都很精彩!

新闻

The 2020 State of the OCTO—VERSE[1]

@Parsifal:GitHub 官方的 2020 年度报告,作为聚集了最多全球开发者的开源平台,GitHub 这次从社区、生产率以及安全三个方面,展示不同的数据来总结过去的 2020 年。

新手推荐

he different types of self in Swift[2]

@极速男孩:这篇文章简单的介绍了在 Swift 三种 self 的不同用法,包括 self. 前缀,.self 后缀和 self 类型。

文章

从 Weex 到Web,性能逆势如何破局?

@Damien:今年双十一飞猪会场从前端渲染引擎从 Weex 回归到 WebView,在迁移变化的同时,同时性能指标上的优化也不能落下,飞猪团队为了极致的性能体验,使用了端侧预渲染、服务端渲染、页面快照、SPA 单页应用模式以及资源&数据预缓存等方案来进行极致的优化,同时取得的效果也是很惊艳的:日常会场首屏耗时环比降低 25%,较 618 以及国庆会场首屏耗时环比降低 20%。对 WebView 优化相关的同学推荐阅读此文,或许可以找到灵感。

如何持续的自我提升

@J_Knight_:本文作者结合自己的实际学习案例分享了 “如何自我学习/提升”的问题,整体的学习思路如下:

  • 初识:被灌输知识的过程。
  • 思考:主动消化知识的过程。
  • 探索:手动进行研究的过程
  • 总结和超越:完成自我提升的过程

而且文章还提到了费曼学习法,感兴趣的读者可以阅读一下本文。

Preventing Data Races in the Swift Concurrency Model[3]

@享耳先森:并发一直是现代语言的重要部分,根据 Swift Roadmap,预计 Swift 6.0 将推出基于协程的 async/await 模型及新的 Actor Isolation 并发模型,Swift 核心成员 Doug 写了一篇文章,介绍 Swift 加入了新的并发模型之后,有哪些方式可以避免数据竞争。

参考:

  • Swift Concurrency Roadmap
  • Protocol-based Actor Isolation: Draft #2

8 Common SwiftUI Mistakes - and how to fix them[4]

@zvving:SwiftUI 之于 UIKit,就像 objc 之于 swift:二者在设计思想、具体实现方面有诸多关联,却又是底层逻辑完全不同、『推倒重建』的两类事物。

带着 UIKit 已有经验去学习 SwiftUI,能快速上手的同时也会掉一些不易察觉的坑:细节不符合预期、实现冗余、写法错误而不自知……本文作者总结了 SwiftUI 新手常犯的 8 类错误,解决问题的同时,帮助你更好的理解 SwiftUI 的独特之处。

更现代的 Swift API 设计

@EyreFree:Swift 是一门简洁同时富有表现力的语言,这其中隐藏着众多的设计细节。本文通过提出一个 Struct 的语义问题,在寻找答案的过程中逐步引出 DynamicMemberLookup 应用、PropertyWrapper(WWDC19 的 PropertyDelegate) 的实现原理以及 SwiftUI DSL 中 PropertyWrapper 的应用,来一起看看更现代的 API 背后的设计过程。希望这些理念能帮助你用 Swift 在项目中设计出更现代、清晰度更高的 API。

一文了解 Xcode 生成「静态库」和「动态库」 的流程

@JonyFang:本篇主要解答了 iOS App 的链接是由谁完成的。作者通过创建 Demo 来实践 Xcode 生成静态库动态库的流程,过程中分析 Report navigator 页面中详细的 Build(构建)日志,得到的结论是:

  • 只有在 动态库 的链接过程会依赖 clang Driver
  • 真正执行生成 静态库动态库 的任务的是 libtoolld64

工具

iSimulator[5]

@红纸:iSimulator 是一款用于操控 Xcode 模拟器的 GUI 工具,其包含基础增删模拟器、展示应用安装列表、快捷导航应用的 Sandbox/Bundle 文件夹、APP 多模拟器同步装载等多种功能。还在烦恼找不到模拟器安装、文件夹路径的小伙伴可以尝试一下此工具。

代码

滴滴DoKit For Flutter正式开源,功能及核心实现解读

@邦Ben:本文介绍了滴滴开源的 DoKit,DoKit 是一个针对 Flutter 的产研工具包,集成了各种丰富的小工具,UI、网络、内存、监控等等。本文也简单介绍了一下原理,但是实际实现方式还是仔细看代码更为确切。作为辅助类的工具,可以在调试方面提供到比较实时的反馈(例如测试找你反馈bug的时候,不用连个线去 debug 或者传日志一点点看),有需要可以一用。

  • Github 地址:https://github.com/didi/DoraemonKit/tree/master/Flutter
  • Pub 仓库地址:https://pub.dev/packages/dokit

https://mp.weixin.qq.com/s/7j6gNjSQE9Jxr1te1BbdIA

最多阅读

快速配置 Sign In with Apple 1年以前  |  4392次阅读
使用 GPUImage 实现一个简单相机 2年以前  |  3091次阅读
APP适配iOS11 2年以前  |  2994次阅读
开篇 关于iOS越狱开发 2年以前  |  2887次阅读
在越狱的iPhone设置上使用lldb调试 2年以前  |  2838次阅读
App Store 审核指南[2017年最新版本] 2年以前  |  2829次阅读
给数组NSMutableArray排序 2年以前  |  2791次阅读
所有iPhone设备尺寸汇总 2年以前  |  2749次阅读
UITableViewCell高亮效果实现 2年以前  |  2590次阅读
使用ssh访问越狱iPhone的两种方式 2年以前  |  2571次阅读
关于Xcode不能打印崩溃日志 2年以前  |  2436次阅读
使用ssh 访问越狱iPhone的两种方式 2年以前  |  2315次阅读
iOS14 隐私适配及部分解决方案 1年以前  |  2081次阅读
为对象添加一个释放时触发的block 2年以前  |  2070次阅读
使用最高权限操作iPhone手机 2年以前  |  2069次阅读

手机扫码阅读