iOS 开发周报:苹果诺基亚专利大战最终和解、用 Swift 中的单向数据流来替代臃肿的视图控制器

  • 靛青K

2017 年 5 月 30 日

话题:iOS语言 & 开发架构

新闻

  1. 苹果诺基亚专利大战最终和解:据外媒报道,诺基亚与苹果宣布就专利纠纷达成和解,并签署一项多年有效期的专利许可协议。12 月 21 日,诺基亚在美国和德国起诉苹果,苹果随即以在零售店下架诺基亚旗下的健康产品还击。如今两家公司通过和解重归于好,并签署了一个“专利许可商业合作”协议。
  2. 苹果无人车上路再被拍,装备已经升级:苹果已在三部雷克萨斯 RX 450h SUV 上测试自己的自主驾驶软件。当地时间 22 日上午,外媒 MacRumors 的读者拍下一辆经过苹果改造的 SUV 上路行驶的视频。视频中可以看到这辆 SUV 配备多个传感器和摄像头,在路上很是显眼。它使用顶级的 Velodyne 64 信道光学雷达(LiDAR),并用了至少两部雷达和若干摄像头进行导航。

教程

  1. 用 Swift 中的单向数据流来替代臃肿的视图控制器:许多 iOS 开发者经常会写出所谓的“臃肿视图控制器”,这往往是过度遵循 MVC 架构的准则导致的。人们提出了不同的方法来避免这个问题的发生,包括使用其他架构。在本次讲座中,Benjamin Encz 将在本文阐述如何在 Swift 中使用 Redux 和 Flux 这两个最受欢迎的架构进行设计。Flux 强制让数据流变为单向的 (unidirectional),从而减少不必要的复杂代码。我们将会看到,用 Swift 实现这个理念会带来怎样有趣的结果。
  2. 手机端运行卷积神经网络的一次实践 -- 基于 TensorFlow 和 OpenCV 实现文档检测功能:本文通过一个真实的产品案例,展示了在手机客户端上运行一个神经网络的关键技术点。除此之外,本文还介绍了如何裁剪 TensorFlow 静态库以便于在手机端运行,如何准备训练样本图片,以及训练神经网络时的各种技巧等等
  3. Hello Bonjour!:如何能在本地网络找到自己想要的硬件设备及相应服务,并连接?在这个以 IP 协议进行通信的互联网世界, 我们的计算机与移动设备都需要一个唯一 IP 作为标示。很多时候,我们希望可以在本地网络获得可用服务的列表,而不需要知道每个服务的 IP 地址、端口。但是我们不想去经过复杂繁琐的网络配置后才能直接获取本地网络在线的服务。本文通过一个真实的项目来逐步探索,简单介绍了项目对本地网络连接的需求:用电脑发现本地网络中所有可供调试的 iOS 设备。
  4. Adding Playgrounds to Xcode Projects:有时我们想要用 Playgrounds 写一些试验代码,但有时我们需要基于一些非系统的 Framework ,本文介绍了如何添加一个 Playground 并支持访问 Project 中的 Framework 。

开源项目

  1. Spry:使用 Spry 你可以在 Playground 写测试了。
  2. RSLoadingView:精美的 Loading 组件。
  3. MacAssistant:Google Assistant for macOS。
  4. MarkdownView:基于 WKWebView Markdown 渲染组件。
  5. Mark:生成 MARK Xcode 插件。

感谢徐川对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

iOS语言 & 开发架构