阅读原文获取更佳体验~
老司机 iOS 周报,只为你呈现有价值的信息。
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
@CrazyCoderShi:Flutter-Notebook 由 OpenFlutter 小组产出,包含了很多常规移动端开发的组件/效果实现, 在目录的最后还附上了一本 Flutter in Action, 着实为一份 Flutter 入门学习不可多得的资料:
@AidenRao:去年,Apple 推出了 NaturalLanguage 框架,用于分析自然语言文本并推导其特定于语言的元数据。你可以将此框架与 Create ML 配合使用来训练和部署自定义 NLP 模型。
iOS 13 上此框架更新了新功能
@张嘉夫:判断某一块代码是否需要重构往往是件很棘手的事。虽然采用可复用的函数或类型可以大大减少代码冗余,但过于抽象的代码会导致难以阅读和维护。在这篇文章里,作者通过几个关键因素来帮助我们最大程度地重用代码,同时又能够避免让代码过于复杂或难以理解,从而取得良好的平衡。
@looping:作者在用 Flutter 开发了一款应用后,总结了 Flutter 的一些特性和自己使用后的心得体会,整体感觉是 —— “Not bad” —— 还不错。本文虽然是大半年前写的,但还是可以当作技术选型的避坑指南来参考。 Flutter 的好处就不用多说了,列下作者比较在意的几个点:
@莲叔:很多没有建站经验的童鞋对于域名唯一的了解就是它作为 IP 别名的作用,其实域名背后的学问有很多。正确的了解域名解析的知识可以让我们在设计底层网络模块的时候更有信心,并实现更优雅的网络层解决方案,比如近期在移动端非常流行的 HTTPDNS 技术,就是从域名解析的原理出发,巧妙的解决了劫持问题。leancloud 这篇文章较为体系的介绍了域名的组成结构以及 DNS 服务器进行域名解析的基本流程,还扫盲了常见的域名记录类型以及作用,非常适合不熟悉域名的童鞋们阅读。
@J_Knight_:本文作者 Mattt 介绍了 CAEmitterLayer 的使用方法,并结合代码展示了如何使用 CAEmitterLayer 和 CAEmitterCell 来实现一个从上方自然落下的纸屑效果。在文章末尾,作者还给出了实现同一效果的7种不同的方案:
对粒子发射器效果有兴趣的读者可以看一下这篇文章。
@红纸:当应用程序消耗太多内存,就会被系统杀掉。占用过多的内存空间会增大被查杀的概率。在本文中,作者介绍了多种图片处理技巧,让我们更好的减少内存的占用,总结如下:
@zvving:iOS 13 中苹果引入 BackgroundTasks framework
,力求在提供流畅用户体验与延长电池使用时间之间找到平衡。本文可以快速了解后台任务的新变化:
Background fetch mode
:规则与之前一样是 30s 执行时间,介绍如何使用新框架的 BGAppRefreshTask 实现Background processing mode
:新增的后台模式,可以持续几分钟高 CPU 占用运行(指定充电期间运行,可以避免因 CPU 占用过高被『杀死』)如果你希望了解更多,移步全新后台任务框架及最佳实践有更详细的介绍。
@老峰:本文作者总结分享了以下三个清理项目无用资源文件,清理 Xcode 无用缓存文件的开源工具:
Tips:FengNiao 和 LSUnusedResources 实现原理相似,都是遍历资源目录下后缀 ["imageset", "jpg", "png"...] 的文件,然后在源文件 ["m", "swift", "xib", "storyboard"...] 中字符串匹配,无匹配则是无用的资源文件。
@kyo:对于我们平时写的一些项目工程代码,常常需要写一些文档,否则不要说交接给别人,就是过几个月,如果没有文档,可能我们自己都不一定能完全理解。但是,随着工程的迭代,文档也常常需要更新,这需要我们花费很多时间在里面。而今天推荐的这款工具,可以帮我们自动的生成 iOS 文档,在文章中作者也简单示范了下,还是很容易上手的,推荐经常需要写文档的同学试一试。
@四娘:将数据转化为人类可读的文本格式是一个重要且复杂的任务,需要根据用户的国家,语言,时区和货币等因素进行格式化,仅仅使用对象的 description
是远远不够的,实际工作中我会用到一个存在于 Foundation 核心部分的类型 —— Formatter
。
本周 NSHisper 为我们介绍的就是 Formatter
这个重要的工具,文章里为我们列举介绍了 Apple 平台上 DateFormatter
/ NumberFormatter
等等各种不同的 Formatter
以及它们对应的用途,对于这些格式化工具不熟悉的同学都可以看一下。
@Parsifal:Lookin 是微信读书团队出品的一款免费的 UI 调试工具,功能像 Xcode 自带的 UI Inspector 或者简版的 Reveal。除支持查看 UI 层级和视图信息外,还提供了方法监听功能,算比较实用的一个特性。目前虽然不能与强大的 Reveal 比较,但作为一款免费的功能软件,还是也比较推荐有相关需求的同学使用。
@享耳先森:Apple 在 WWDC 2019 新增了 UITableView/UICollectionViewDiffableDataSource
,不过新 API 仅限 iOS 13,如需支持之前系统的话就用不了了,DiffableDataSources
基于 DifferenceKit 实现,提供了与官方近似的 API。
@anotheren:来自网易的 UITableView
的组件化解决方案,