老司机 iOS 周报 #65 | 2019-04-29

栏目: IOS · 发布时间: 5年前

内容简介:老司机 iOS 周报,只为你呈现有价值的信息。你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到在 65 期,我们收录了『基于多重替换方式的 iOS 代码混淆方案』一文,后经读者反馈,我们发现这篇文章的内容存在严重的抄袭迹象。文中涉及到的混淆方案抄袭自
老司机 iOS 周报 #65 | 2019-04-29

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

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

新闻

在 65 期,我们收录了『基于多重替换方式的 iOS 代码混淆方案』一文,后经读者反馈,我们发现这篇文章的内容存在严重的抄袭迹象。文中涉及到的混淆方案抄袭自 @kaichcodeobscure 。目前该文章的在知乎和掘金上已经被删除,周报也在第一时间删掉了有争议的推荐内容。对此次事件,我们对 @kaich 和广大读者表示抱歉,同时也感谢各位读者的监督和反馈。

另外,在收到反馈之后,我们小挖了一下那篇抄袭文的作者,发现此人是惯犯,洗稿专业户。他的 GitHub( RobinChao )和博客(Technical.io),真的是仿品聚集地。

距离今年的 WWDC 已经只有将近一个月的时间了,众所周知,WWDC 向来能带给行业和开发者带来全新的围绕用户体验新技术,本篇文章给我们介绍了本次 WWDC 会发布的新的 API 以及特性,主要有:

  1. 新的 Siri intents
  2. Marzipan 的优化(Marzipan 就是让 macOS App 也能用上 UIKit 的技术)
  3. Swift-only 的 AR 框架
  4. 震动引擎,NFC 在以前的基础上提供了更多的功能
  5. CoreML 支持动态训练以及音频的分析

新手推荐

@邦Ben:该文从 Frame 布局,到 Autoresizing 讲到了 AutoLayout,并且介绍了如何简单的进行封装 AutoLayout,以提高易用性。毕竟众所周知,原生的 AutoLayout 异常难用,在 OC 下,Masonry 的出现简直是拯救了世界。在 Swift 下,各种布局系统百花齐放。同时眼光不妨放到 React Native 和 Flutter 上,声明式布局非常值得学习。

文章

@Damonwong :之前我问过好多人这样一个问题,你觉得 Rx 框架到底解决了一个什么样的问题?虽然答案都不太一样,但是引入 Rx 框架,便于封装 ViewModel,然后编写单元测试提高应用稳定性是大部分人比较认可的一点。

所以推荐大家阅读一下作者写了三篇关于 RxSwift & MVVM 的文章:

@四娘:之前我们在 29 期周报 里介绍过这篇文章的第一篇:

本文讲述了 Swift 中方的条件编译。当然首先是传统的方法 arch(),作者对各个参数都做了详细的介绍。不过随着 Swift 4.1 的到来,你更应该了解一下方便好用的 targetEnvironment()(SE-0190)。其次是使用配置文件(.xcconfig),这个方式其实被 CocoaPods 大量使用。作者也用示例做出了详细的介绍,同学们不妨也在自己的工程中试一试。

后面陆续写了 Part 2 和 Part 3,主要是介绍了跨平台代码库编译选项的一些控制方式,对这方面有疑虑的同学可以看一看

:dog2:Flutter 实时视频渲染

@CrazyCoderShi :Flutter 如火如荼的火了一段时间了,但鲜少有关于音视频方面的文章,本文是声网 Agora 的高级架构师张乾泽在 RTC Dev Meetup 上的分享,主要介绍 Agora 在 Flutter 实时音视频开发方面的实践经验,整个分享分三部分:

  • 基于 Texture Widget 实现思路分析
  • 基于 PlatformView 实现思路分析
  • 两种方案的性能对比

:racehorse:对职业发展的一些想法

职业发展是每一个职场同学都会去思考的很重要的问题,我们也常常说有时候选择比努力更重要,除了个别的运气成分外,我们能过左右的就是如何去做选择。本文是 limboy 对职业发展的一些看法,从 稀缺度剩余市场空间 这样两个角度去谈,结合生动的坐标图,让人一看就很明了。

:dog2: How to run a single test in Xcode

@老峰 :本文作者归纳总结了在 Xcode 中运行单元测试的一些小 tips:

  • 通过 gutter (左边列)
  • 通过 shortcut (快捷键 ^ ⌥ ⌘ U)
  • 通过 scheme
  • 通过 terminal
  • 通过开源测试库如: Quick

:dog2:iOS 中的 Promise

@四娘:当你需要连续地执行多个异步过程时,总会无可避免的出现地狱回调,Promise 是一个不错的解决方案,这篇文章前半部分主要讲了 Promise 具体的实现,后面介绍了一些实用的 API,感兴趣的朋友可以看一下。

@张嘉夫 :Swift 的属性观察器 (即 willSetdidSet hook 函数)非常实用,可以用于验证、通知和调用 log 方法等等,适用于结构体、类和枚举。但在使用强大的属性观察器时,要避免搬起石头砸了自己的脚,这篇文章会为你介绍如何避免在 Swift 属性观察器中创建无限循环。

画架构图是架构师的第一门课,本文介绍了架构图的各种画法和具体案例,希望让大家在架构图方面的理念和经验得到提升

架构图分类

  1. 场景视图:一般就是我们理解的用例图
  2. 逻辑视图:一般是组件图和类图
  3. 物理视图:一般是部署图
  4. 处理流程视图:一般是时序图和流程图
  5. 开发视图:一般是包图

好的架构图:好的架构图是不需要解释的,它应该是自描述的,并且要具备一致性和足够的准确性,能够与代码相呼应

最后推荐C4官网,有各种画图的模板可以参考

工具

MTHawkeye

@looping :MTHawkeye 是美图 iOS 团队开源的调试和性能优化辅助工具集,旨在帮助 iOS 开发者提升开发效率、优化性能体验。目前已经包含对内存、CPU、电量、网络等的使用监控。由于该工具模块采用了可扩展的插件式设计,所以我们也可以根据自己的需求定制合适的开发调试插件。详细介绍可以参考这篇文章 MTHawkeye:美图开源的iOS调试辅助、性能优化工具集

代码

Swiftshield

@oldonkey :这是一套代码混淆工具,作用是加密工程的函数和类名,来免疫一些逆向工程。加密的原理很简单,就是把所有函数和类名都替换成一段新的字符串。此工具可以加密,也可以解密,以方便对 Log 进行 Debug。

开源库

IkigaJSON

IkigaJSON 是一个非常快的 JSON 解析器,它的解析速度大概是是 Foundation 中对应组件的 4 倍。它也提供了 SwiftNIO 的支持(同时也依赖 SwiftNIO),你可以直接从 ByteBuffer 对象初始化需要的 JSON 。

音视频

@J_Knight_ :本期 ggtalk 邀请的嘉宾是李亮老师和莲叔。围绕本期的主题,二位嘉宾和主持人梁杰都分享了各自的编程启蒙经历。

此外,还分享了对“中年危机”的看法以及关于小孩应该如何入门编程的讨论。

内推

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

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

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

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

关注我们

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

老司机 iOS 周报 #65 | 2019-04-29

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

全栈开发之道

全栈开发之道

和凌志 / 电子工业出版社 / 68.00元

全栈(Full Stack)是一种全新的以前端为主导的框架,框架选型聚焦在MEAN(MongoDB、Express、AngularJS、Node.js)上。选用MEAN全栈技术,可以快速地实现敏捷开发,尤其是到了产品的运营阶段,其优势表现得非常明显。本书主要介绍MEAN全栈技术,分为入门篇、基础篇和实战篇,入门篇对全栈进行了概述,基础篇重点介绍了全栈的四个主要技术,即MongoDB、Express......一起来看看 《全栈开发之道》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试