老司机 iOS 周报 #259 | 2023-09-04 #4194
ChengzhiHuang
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
-
老司机 iOS 周报,只为你呈现有价值的信息。
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
文章
🐕 一文入门最热的 LLM 应用开发框架 LangChain
@zoeGuo:LangChain 是一个用于开发由语言模型驱动的应用程序的框架。笔者认为 Langchain 解决了现在开发人工智能应用(以 GPT 模型为例)的一些切痛点:数据滞后、token 数量限制、不能进行联网、不能与其他数据源链接。文章逐一介绍了 LangChain 以下组件的使用:Models(模型)、Prompts(提示词)、Indexes(索引)、Chains(链)、Agents(代理)。简单示例了用 LangChain 加载 OpenAI 的模型,完成一次问答、通过谷歌搜索并返回答案、对超长文本进行总结、构建本地知识库问答机器人等几个 LangChain 实战。
🐕 Adding teachable moments to your apps with TipKit
在今年的 WWDC 中,苹果推出了 Tipkit,开发者可以通过 Tipkit 快速向应用中添加例如新手引导、新功能介绍等功能,并且 Tipkit 可以通过 iCloud 跨设备显示。本文是 Tipkit 使用的一个实战教程,想要了解这个新功能的同学,可以跟着示例快速实践并掌握如何使用。
🐕 Mastering Thread Safety in Swift With One Runtime Trick
@莲叔:作者首先简单的介绍了多线程开发中最典型会遇到的问题,然后介绍了在苹果平台中性能最好的锁:os_unfair_lock,同时介绍在了 Swift 中如何使用它。之后作者演示了如何通过 propertyWrapper 来更通用的实现原子化的变量,并搭配一个比较冷门的 _modify 方法来规避常见赋值可能因为 get+set 组合不原子化的坑。
🐕 Improve the build times of your SPM Packages and your apps
@含笑饮砒霜:本文主要涉及如何缩短 SPM(Swift Package Manager)包和应用程序的构建时间,以提高开发效率。以下是主要要点:
测量和改进构建时间:文章开始强调了测量构建时间的重要性,并建议在测试前 / 测试后使用相同的环境来进行测量。它区分了两种构建类型:
使用时序摘要和最近的构建时间线:文章介绍了 Xcode 提供的两个工具,用于测量编译时间和构建时间线,以帮助识别需要优化的区域
改进 Xcode 项目中的编译时间:文章提供了一些建议,包括启用警告以标识编译时间过长的代码、明确指定类型以减少编译时间等
改进 SPM 包中的编译时间:文章介绍了如何通过在 SPM 包中应用相同的优化来减少构建时间,以及如何使用自定义规则来规范代码以提高编译效率
SwiftLint 规则:文章提到了一些 SwiftLint 规则,如 explicit_init 和 explicit_type_interface,可以帮助简化代码并可能减少构建时间
总的来说,这篇文章提供了关于如何提高 SPM 包和应用程序构建效率的详细指南,包括测量、警告启用、类型明确指定等技巧和建议。通过实施这些优化,开发团队可以更快地构建和测试他们的代码。
🐕 为现有 App 及 API 架构实现 End-to-End Testing 的可能性验证
@EyreFree:本文记录了作者实验在现有的 App / API 架构之上使用 Proxy Server 录制 API Request & Response 并回放作为 Mock Server API 给 End-To-End Testing 测试时使用的做法试探,同时尝试了基于 Mitmproxy 套件自行撰写 API 录制和回放脚本,有在做相关工作的同学建议阅读。
🐕 解析 SwiftUI 中两处由状态更新滞后引发的严重 Bug
@Damien:SwiftUI 是一个响应式框架,当数据源发生变化时,框架会自动更新视图。本文解析了 SwiftUI 中两个由于未能贯彻响应式编程原则而导致的严重错误:
同时作者也提供了对应的解决方案,如果读者有遇到类似的问题,不妨一读。
🐕 腾讯 QQ 桌面版架构升级:内存优化探索与总结
@Leo:桌面版应用相比 Web 端具有停留时间长的特点,如果没有控制好内存,会导致交互响应慢或者崩溃。在这篇文章中,QQ 相关团队和大家分享新版 QQ 在内存优化方面的探索和阶段性优化进展。虽然本文的讨论主要集中在 Windows 平台,但由于 Electron 的跨平台特性,大部分优化措施也同样适用于 macOS 和 Linux 平台。
🐎 SwiftUI Tips:如何收起键盘
@享耳先森:文章列举了
SwiftUI
中多种收起键盘的方式,适合刚入SwiftUI
的同学们。🐎 Flutter 小技巧之 3.13 全新生命周期 AppLifecycleListener
@Crazy:本文主要介绍了 Flutter 在 3.13 版本中的新的生命周期类 AppLifecycleListener 的使用方法,新的 AppLifecycleListener 类不用再如之前一样选择 mixin 的处理方案,可以直接在类中进行初始化,使用起来更加方便并且有利于全局统一的处理。新的生命周期回调方法更多也更加直观。本文对 hidden 的由来也做了简单的讲解,有利于各位开发者更好的理解 hidden 与 show 方法。
工具
Arc on Windows projects: swift-build
@kemchenj:Arc 是一款在产品体验上做了很多革新的浏览器,除了产品之外,技术选型也非常激进,选择了 Swift 作为它们主要的编程语言,但 Arc 需要支持 macOS 之外的桌面系统,而 Apple 在 Windows/Linux 平台上的投入很少。
所以 Arc 团队找到了 LLVM 团队的工程师 Saleem Abdulrasool,出钱资助他去帮助搭建 Swift on Windows 的工具链,后来他甚至进入了 Swift 的核心团队专门负责这件事情,并且今年也正式加入了 Arc 团队的公司。
如果你也钟情于 Swift 并且需要在 Windows 上使用,可以关注这个项目了解 Swift on Windows 的最新进展。
内推
重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
[杭州] 淘宝 - 终端平台 - iOS/Android/C++
[广州] 微信公众号 - iOS
[北京] 快手 - 本地生活 - iOS
[上海 / 北京] MiniMax - iOS
[广深] TikTok 直播 - 社交互动团队 - iOS/Android
[北京] 知乎 - 会员业务 - iOS
[上海] 扫描全能王 - iOS
[深圳] 手机 QQ - 终端架构 - iOS - T10/T11
具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)
关注我们
我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。
关注有礼,关注【老司机技术周报】,回复「2023」,领取 2023 及往年内参
同时也支持了 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 周报 #259 | 2023-09-04.
Beta Was this translation helpful? Give feedback.
All reactions