内容简介:老司机 iOS 周报,只为你呈现有价值的信息。你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到在今年的 WWDC 中,苹果就已经透露将在下半年推出 TestFlight 的公开链接邀请功能,现在这个功能已经正式开放。
老司机 iOS 周报,只为你呈现有价值的信息。
你也可以为这个项目出一份力,如果发现有价值的信息、文章、 工具 等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
新闻
在今年的 WWDC 中,苹果就已经透露将在下半年推出 TestFlight 的公开链接邀请功能,现在这个功能已经正式开放。
另外 dustturtle 也第一时间分享了自己的实践成果 - 千呼万唤始出来 - TestFlight public link 功能正式发布了! 。
iOS 中使用 swift 的地方在持续增加,在 iOS 12 中包含 swift 的库相比 iOS 11 增加了一倍。
Swift5.0 离我们越来越近了,了解一下最近的进展吧
- 二进制不向下兼容,容易理解,Swift 新版本就没有向下兼容过
- 必须强制迁移 Swift3.0 的代码,不然你只能使用 Swift4.2 来编译了
- 现在提供了 Swift5.0 的尝鲜版
- 预计2018年11月16日对于 Swift5.0 是一个很关键的时间结点(真的吗?)
- 希望你们会喜欢 Swift5.0 的新编程思想(又变?)
专栏
iOS 开发中,或多或少都会有遇到修改私有方法的需求,这篇文章总结了目前我们能够使用的方式,并从面试官的角度推荐应聘者应该怎么回答这类开放性问题。
文章
:turtle:Mirror 的工作原理
这篇文章主要介绍了 Mirror 的工作原理,Mirror 简单来说就是用来做类型反射的 API,可以在运行时里获取实例的类型信息,例如 Playground 里的变量数据预览就是基于这一套 API 来完成的。
文章主要分为两个部分,第一部分是元类型的抽象(类型的类型),运行时函数动态派发的实现原理,第二部分就是 enum / struct / class / tupe 四种元类型各自的实现。
通篇看完感觉其实 Mirror 的实现非常直截了当,因为 Swift 的泛型功能要求它必须有足够丰富完整的 Metadata,才能在运行时更好的描述泛型实例的存在,完成函数派发,属性存取和类型转换的工作。
在这么一个背景下,Mirror 的实现基本就是从已有 Metadata 里获取类型数据,然后展示出来,或者是通过 Metadata 定位成员变量的相对位置,然后进行存取操作。
Ray Wenderlich 的又发新教程了。这次是教你如何用 TrueDepth Camera 来做 AR 面部追踪。
和往常一样,他家教程类文章会有非常详细的步骤和截图,带你一步一步的操作,非常适合对文章中涉及的知识领域不是很熟悉的同学们。
另外这篇文章也是免费教程的一部分,所以并不需要进行任何付费。
文章作者分享了一次自己使用 Carthage 导入自己的库时遇到的坑,来说明了为什么在 SDK 的开发中尽量避免条件编译指令,因为你不知道使用你 SDK 的人的编译环境会有怎样的变数,文章很短,算是一次有趣的小分享。
:turtle: [译] Metal 渲染管线教程
Apple 在 2018 的 WWDC 上正式宣布 OpenGL ES 标记为 deprecated,推荐使用 Metal 来做 3D 渲染,很有勇气。在细致的了解 Metal 后,就能发现苹果的勇气不是没有原因的,Metal 几乎最大限度的利用了 iOS 的硬件特性来提升性能,是 iOS 的首要选择。
本篇文章的文风很像很多经典的 OpenGL 教程,从渲染的概念,流程讲起,并一步步教你如何画出第一个三维的物体,强烈推荐有兴趣的同学仔细阅读。
推荐人:史前图腾
文章介绍了美团所开发的基于 React Native 的组件库,提供了一系列基础 UI 组件,包括按钮、弹窗、表单、输入框等等,覆盖了 iOS 和安卓两端,并分析了一些设计理念。
:dog2:从 FE 视角看大前端
大前端是现在比较流行的话题与方向,相信也有很多移动端的同学对这个方向有很浓厚的兴趣,而这篇文章的目标阅读群体刚好适合对前端 FE 感兴趣的 Native 开发同学, 聚焦在 PC 和 H5 浏览器层面。可以让你对前端开发有全景方式的了解, 以及引发大家的兴趣。很多 native 开发可能苦于前端众多的名词,众多的框架不知从何下手,这篇文章刚好适合你。
:dog2:UIFieldBehavior
文章以悬浮框为例,讲解了 iOS 物理引擎 UIKit Dynamics 中的 UIFieldBehavior 的相关内容。首先描述了 Field Behaviors 是什么,接着讲解了 Spring Fields 怎么用,最后结合 Behaviors 的一些特性实现了一个适用于开发调试的悬浮框。
推荐人: WXGBridgeQ
作者在学习 Vapor 的源码看到一段不需要宏定义的 debugOnly 函数实现。代码如下:
func debugOnly(_ body: () -> Void) { assert({ body(); return true }()) } 复制代码
对于大部分项目来说,这个功能看似没有什么用处,但是仔细考虑一下,对于一个可以被任何一个项目依赖的 SDK 来说,这个 debugOnly 实现可以说是很完美了。
文中实现了 Bloom Filter,并使用了 Swift 4.2 中 Hasher 新特性来优化代码。
对于做偏运营类的应用开发,有一项很重要的技术需求就是能够做到对应用内容进行实时更新,而且是越灵活越好。本文就详细介绍了驴妈妈客户端团队在 SOLID 原则的指导下,重点围绕面向接口、数据驱动、模块隔离这三个点设计了适合自身业务场景的模块化框架。它既满足了缩短内容上线周期的需求,也为创建一个统一规范的业务组件库提供了思路和方向,同时框架的整体设计也是非常值得参考和学习的。
本文的大部分内容是作者在对 Synth One 应用添加 AUv3 扩展时的开发笔记。后来他为了分享自己捣鼓开源项目 AudioKit 和 Synth One 的经历,就写了这篇文章,也希望借此帮助那些想要做类似 iOS 音乐合成器开发的人能够快速了解框架内部的设计。
:racehorse:代码评审的不可能三角
Code Review 是保证代码质量的重要手段之一,但许多研发团队中它常常由于各种原因并未得到真正的落地。为什么会这样呢?本文作者用一个非常简单的观点理解了这个现象,并据此给出一点优化的想法。希望本文的想法对同样被评审困扰的同学有帮助 :)
在平时的开发中,我们可能会遇到一些场景,开发起来,代码写的很繁琐,例如文中作者举的例子:
process1(_ param: String) -> String process2(_ param: String) -> String process3(_ param: String) -> String process4(_ param: String) -> String 复制代码
这种情况,如果直接采用函数式编程,可读性又不会太好。而为了重构让代码变得具有更好的可维护性,作者利用函数的组合来解决这个问题。除了上面函数签名致的例子,作者还提到了函数签名不一致,以及异步操作这两种情况的解决方案。
推荐人: matthew
本文简明地分析了开源库 MMKV 中 LRUCache 的实现。MMKV 中的 LRUCache 实现简单易懂,文章中的源代码也加上了注释,大家看一遍这篇文章就能明白具体的实现原理。
本文介绍了一种更优雅的打log方式,使得开发人员不要再混乱地管理log代码
- 正确对待 OSLog,他本来就帮你分了 log 的等级
- Console.app 能够帮你更好地查看客户端的 log (如果你用的是 os_log 的话)
- 尽量使用 os_log
- 更多应该注意的细节
代码
SubtleVolume 是一个音量条组件,也支持在 iPhone X(S/R) 的刘海上做文章,如果你的播放器需要一个自定义音量条,不妨看看它。
设计
泊学关于 Sketch 入门相关的视频课程。
内推
-
北京-百度网盘 持续招 iOS 开发 :社招、应届、实习均可。项目在技术上很有挑战性,团队技术氛围极好。诚心希望各路大神前来切磋,也欢迎计算机基础好的小白来共同学习。简历发邮箱xuyafei01@baidu.com,暂不考虑的也欢迎微博私信@小非86 聊聊~
-
北京-蚂蚁金服 招iOS/安卓/前端开发 :负责支付宝会员及帐号业务线,地点北京国贸,金台夕照地铁站出口 100 米。有兴趣的同学欢迎将简历发送到:weijing.wdf@alibaba-inc.com / weijing.wdf@antfin.com (同一个邮箱)或者微博私信@折腾范儿_味精 了解情况。
-
上海即刻:如果你认识聪明勤奋、胆大心细、有追求的工程师,那就来加入我们吧!任何推荐或简历可直接发给 Jason(即刻 iOS leader):jasy@okjike.com,或微博@JasonYuh。
-
杭州奇志科技招聘 iOS、前端 :奇志科技自 2016 年起通过行业无人机协同工作流 Mesh 进入物联网与人工智能领域, 并成功为房地产、建筑、测绘、电力巡检等行业提供无人机解决方案。感兴趣可以微博上私信@没故事的卓同学 了解。
-
深圳头条研发中心诚招各路 iOS 好手一起做取悦自己的项目 :如想了解更多深圳头条的信息,可以加小T微信:tomtan,切磋技术和聊情怀都可以喔~~~~
-
北京字节跳动 iOS 团队持续招人中 :简历可以发送到邮箱raozhizhen@gmail.com,或者添加我(@AidenRao)的微信 jingmu1994 了解更多公司及岗位信息。
-
北京百度教育事业部招 iOS 开发 :百度教育事业部,地点:北京西二旗。部门下面有百度阅读,百度文库,百度爱听等 App 产品。团队技术氛围浓厚,有兴趣的同学欢迎将简历发送到我的邮箱:lizelei@baidu.com。
关注我们
我们开通了公众号,每期发布时公众号会推送消息,欢迎关注。
同时也支持了 RSS 订阅: github.com/SwiftOldDri… 。
以上所述就是小编给大家介绍的《老司机 iOS 周报 #38 | 2018-10-08》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 老司机 iOS 周报 #30 | 2018-08-06
- 老司机 iOS 周报 #33 | 2018-08-27
- 老司机 iOS 周报 #36 | 2018-09-17
- 老司机 iOS 周报 #37 | 2018-09-24
- 老司机 iOS 周报 #39 | 2018-10-15
- 老司机 iOS 周报 #40 | 2018-10-22
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。