老司机 iOS 周报 #94 | 2019-12-09

4,649 阅读6分钟

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

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

新闻

🐎 Flutter Interact 2019 即将到来!全球同步直播最先了解新动态

@zvving:Flutter Interact 将在 12 月 11 日于纽约布鲁克林举办,聚焦于跨平台打造精美体验。现场提供同声传译的直播服务,对 Flutter 感兴趣的小伙伴不要错过!

新手推荐

🐎 不同平台操作体验的差异和适配

@极速男孩:flutter 在 iOS 和 Android 当中不同的适配效果,包括不同的手势,控件效果和字体图表等。

文章

🐢 开发企业级移动APP,Flutter准备好了吗?

@CrazyCoderShi:Flutter 自 1.0.0 正式版发布以来, 已经一整年过去了. 在过去的一段时间里面, 官方开发团队始终保持着飞速的迭代效率, 社区的发展状况也让人欣喜, 国内外各大厂开始投入精力. 即使如此, Flutter 在生产中的使用覆盖率仍不是太高, 那么 Flutter 在生产中的表现到底如何? 本文从以下几个角度, 和你深入探讨 Flutter 企业级开发的方方面面:

  • 架构
  • 开发环境
  • 用户界面
  • 访问硬件功能
  • 安全性
  • 其他杂项

🌟 🐕 纷争再起:Flutter-UI 绘制解析

@四娘:作者通过生动形象的方式跟我们讲述了 Flutter 的 Widget 树实现,如何通过轻量级的视图树达成高效的视图树重建,与我们熟知的 View 进行协作完成最终渲染。

🌟 🐕 ​Flutter 沙龙回顾 | 如何缩减接近 50% 的 Flutter 包体积

@老驴:这是字节跳动技术团队做的一篇针对 Flutter 实际落地应用中针对包体积优化的文章。

文章比较长,干货非常多,看得出字节跳动团队在 Flutter 落地应用上做出的努力。虽然大家在自己的项目中并不一定用得到这些优化,但是不妨一读,一定会对大家的实际项目有帮助。

🌟 🐕 Key​Value​Pairs

@xiaofei86:Swift 5 将 DictionaryLiteral 重命名为 KeyValuePairs SE-0214。本周,NSHipster 就为我们带来 KeyValuePairs 的详解。本文延续了 mattt 一贯的“哲学”开场,由宇宙学对事物的分类到阴阳、五行、八卦,从而引出 Array、Set 等 Swift 中的常用集合类型(不得不感叹 mattt 大神的博学)。通过本文对 KeyValuePairs 的介绍,与 Dictionary Literal 的对比以及应用,我们会对 Array、Set 和 Dictionary 之间的根本区别,以及他们在 Swift 中的工作方式产生更加深入的理解。

🐕 Making Swift code extensible through plugins

@EyreFree:本文介绍了如何用 Plugin 模式提高代码的可扩展性。Plugin 是一段代码,可以将其插入另一种类型或系统以修改其功能。Plugin 有许多不同的形式和规模,比如文中举出的例子 typealias Plugin<T> = (T) -> T 就是一个简单的 Plugin。合理利用该模式,能降低我们所编写的代码的复杂性,但如果滥用也会导致系统代码过于分散,一切都取决于我们要构建的软件系统类型。对架构和设计模式感兴趣的同学一定不要错过。

🐕 Vision Framework: Working with Text and Image Recognition in iOS 13

@张嘉夫:2 年前 Apple 在 WWDC 2017 上发布了 Vision 框架,一个令人惊叹但又十分简便的框架,让计算机视觉功能的开发更加容易。不论是文字检测、面部识别、条形码扫描还是与 Core ML 配合执行机器学习任务都可以用这个框架实现。今年,Apple 在 WWDC 2019 为 Vision 框架带来了更多新功能,着实将计算机视觉领域向前推进了一步。AppCoda 在这篇文章里会带领大家构建一个叫 Snapcat 的应用,使用 Vision 全新的动物检测器来检测喵星人、添加滤镜然后拍照。然后 AppCoda 会教你如何利用全新的 VisionKit 来扫描名片,就像 iOS 原生的备忘录 app 一样。最后,Appcoda 还会展示如何对扫描后的名片进行文字识别。

🐎 Faster way to download and install Xcode

@JimQ:平时下载 Xcode 最便捷的渠道就是 App Store,但只能用于下载最新的正式版,而且用过的人都知道,其下载速度和成功与否,除了看网速,有时还要看人品。所以我们需要更多的解决方案:

  1. 使用 Apple Developer 官网在浏览器下载最新的正式版或 beta 版;
  2. download/more 路径下下载更多之前的版本;
  3. 使用 aria2 脚本加速下载;
  4. .xip 包双击之后会有一个合法性验证,可以使用命令跳过这个步骤;
  5. 先删除 Xcode 再安装比覆盖安装速度更快。

代码

NXDrawKit

@老峰:NXDrawKit 是使用 Swift 开发的一个简单易用的手写绘图板类库,提供了绘图应用的基本功能如:撤销、恢复、清除、保存、设置线条颜色,粗细,透明度等,使用它可以实现类似你画我猜,手写签名等功能,因为是作者第一个 Swift 项目,所以代码风格比较偏 OC,另外 Palette and ToolBar 自定义支持并不是太友好。

LEEAlert

@looping:LEEAlert 是一个可自定义 Alert 和 ActionSheet 样式的视图控件库,支持的功能特性相当丰富,能满足绝大多数弹窗提示的需求。通过 .config 开始链式调用,整体语法结构还是非常优雅的,有感兴趣的小伙伴可以参与共同维护。

内推

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

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

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

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

关注我们

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

同时也支持了 RSS 订阅:github.com/SwiftOldDri…

说明

🚧 表示需翻墙,🌟 表示编辑推荐

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