Loading...
墨滴

Parsifal

2021/03/29  阅读:236  主题:自定义主题1

老司机 iOS 周报 #153 | 2021-03-29

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

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

文章

🌟 🐢 IGListKit 源码解析系列 5 篇

@JonyFang:IGListKit 源码解析系列,共分为 5 篇。依次简介下每篇的概要内容:

  1. IGListKit - 开篇
    • 对比简介 UICollectionView/UITableView;
    • 引出 IGListKit 的主要特征;
  2. IGListKit 的基石 - IGListSectionController
    • 介绍 IGListSectionController 是如何和数据层进行绑定的;
    • 介绍 IGListKit 是如何通过 IGListSectionController 来进行扩展以支持多种特性;
  3. IGListKit 的管理者 - IGListAdapter
    • IGListAdapter 作为 IGListKit 的适配器,对外提供相关的刷新接口及一些通用方法,对内负责管理 IGListSectionControllerUICollectionView;
  4. IGListKit 的数据处理 - Updater & Diff
    • 介绍 IGListAdapterUpdater 提供的批量&全部刷新机制的原理;
    • 描述 IGListDiff 的核心实现;
  5. IGListKit - 完结篇
    • 介绍 IGListCollectionViewLayout 的实现;
    • 总结了 IGListKit 的开发历程,及库作者的一些经验总结;

🌟 🐕 Flutter 2.0 下混合开发浅析

@CrazyCoderShi:Flutter 的混合开发大多借助 flutter_boost 等三方库来完成, Flutter 2.0 给了我们更多的选择: FlutterEngineGroup。本文详细讲解了 FlutterEngineGroup 下的混合开发,强烈推荐。

🐕 Flutter Web 在美团外卖的实践

@极速男孩:Google 现在已经将 Flutter Web 合入了 master 和 stable 分支,并在 Flutter 2.0 做了进一步优化。本文主要介绍了美团外卖在 Flutter Web 的探索,在 Flutter Web 基建和 Flutter Web 中的性能优化 , CI/CD 的方面的尝试。

🐎 全局开启 iOS / mac 的 WebView 调试

@AidenRao:Safari 有一个内置的前端调试器,可以调试 MobileSafari 和 Xcode 编译运行的 APP。通过 hook webinspectord 服务的 SecTaskCopyValueForEntitlement 函数,使我们可以在 mac 和 iOS 上,调试系统内置的 App 或者 App Store 下载的应用里的 WebView。对于分析客户端的 XSS、JavaScript bridge 相关的安全漏洞非常实用。

🐢 如何编写高性能的 Swift 代码

@四娘:Swift 官方仓库里的一份性能优化指南,从编译器层面讲述如何编写高性能的代码,让我们了解什么样的代码可以让编译器更好地进行优化,什么样的代码会在 Swift 里产生额外的性能消耗,在哪些情况下我们可以通过改写这些代码来减少这些消耗。

🚧 🐕 Frameworks: embed or not embed that's the question

@红纸:在工程中配置 Framework 时,经常能够看到一个选项 Embed or not。本文作者将静态库和动态库配合这两种选项,4 种实验结果分别做了对比如下。

  • 动态库 + Embed:动态库将在运行时链接,并且会有独立的 Framework 文件夹,独立于 App 的二进制文件
  • 动态库 + Not Embed:App 会崩溃
  • 静态库 + Embed:代码将在编译时进行链接,会有独立的 Framework 文件夹
  • 静态库 + Not Embed:代码将在编译时进行链接,所有代码将会包含在 App 的二进制文件当中

此外,文末有一个 4 种集成方式包大小差异的简单对比,感兴趣的读者可以阅读一番。

🐎 对于移动开发,人工智能的到来意味着什么?

@莲叔:端智能或许已经并不是移动开发领域的一个新鲜话题,各个公司和业务都开始逐步尝试并取得了一定的效果。如果你是一位对人工智能有兴趣但之前完全没有了解的移动开发,这篇文章可以指引你快速了解一个大概的全貌。文章首先从比较符合直觉的视角介绍了人工智能是什么,解决了什么问题,另外还给出了在移动开发目前的主流应用,是一份不错的入门介绍。

🐎 iOS 基于 PGO 优化启动时间

@Leo:冷启动时候 Page In 会占据相当一部分耗时,Profile Guided Optimization (PGO)是一种简单易用的可以优化 Page In 数量,进而提高启动速度的技术,本文介绍了如何使用 PGO ,推荐阅读。

🐕 SwiftUI 中的 Text 插值和本地化

@zvving:SwiftUI 致力于提供简洁灵活的视图描述方式。拿最『简单』的例子Text("I am \(someUser.name)") 来说,你是否好奇:为 Text 设定内容的同时,如何支持本地化,以及各种更复杂的业务场景? 喵神也有同样的疑问,并带来抽丝剥茧两篇文章:详细拆解 SwiftUI 中本地化&文本差值的实现方式。不妨细读,帮助你写出知其所以然的 Swift 代码。

代码

isowords

@老峰:isowords 是一款英语单词字谜游戏,作者客户端采用 SwiftUI、SceneKit 实现了模块化架构,服务端也以 SwiftNIO 实现,并且全部开源。对 SwiftUI、SceneKit、Swift for Server 感兴趣的同学欢迎学习参考。

🌟 iOS Crash Dump Analysis, Second Edition

@Parsifal:这是一本对于理解 iOS Crash 机制非常有帮助的书,中英文版本均有。从什么是崩溃、崩溃如何发生、各种崩溃类型、可采用的工具、崩溃日志解读等等非常系统地为我们阐述了崩溃分析,填补了当崩溃发生时应用程序开发人员与开发平台之间出现的空白。本书讨论了涵盖 iOS、macOS、watchOS 以及 tvOS 等苹果主流软件系统,也包括了 OC 和 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)

Parsifal

2021/03/29  阅读:236  主题:自定义主题1

作者介绍

Parsifal

老司机技术周报,专注移动端技术研究领域。