写点什么

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

  • 2017-05-30
  • 本文字数:1164 字

    阅读完需:约 4 分钟

新闻

  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 )关注我们。

2017-05-30 19:002083
用户头像

发布了 41 篇内容, 共 96196 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

DDD实战(6):战略设计之技术决策

深清秋

DDD 软件架构 生鲜电商系统 3月月更

关于技术团队的考核(24/100)

hackstoic

技术管理

Ant Design Landing

云原生

SaaS React Ant Design Landing page

模块九作业-设计电商秒杀系统

CH

架构实战营

ABAP 简易弹出输出/输入框

Jasen Ye

Input abap decide CONFIRM

java培训JVM面试题分享

@零度

JVM JAVA开发

AliSSR 语音超分算法:让在线会议语音更明亮更自然

阿里云CloudImagine

阿里云 音视频 智能降噪 音频3A 音频算法

云原生-模块十二

hunk

浏览器原理

wudaxue

一文了解MySQL的Buffer Pool

华为云开发者联盟

MySQL 缓存 缓冲池 Buffer Pool 脏页

重学架构之拆分电商系统为微服务

陈华英

架构实战营

模块六作业-拆分电商系统为微服务

浪飞

面试突击34:如何使用线程池执行定时任务?

王磊

java面试

模块六作业

Leo

架构实战营

电商系统微服务拆分

tom

一文带你了解 Python 中的装饰器

踏雪痕

Python 装饰器 3月程序媛福利 3月月更

适合 Kubernetes 初学者的一些实战练习(一)

汪子熙

云原生 #Kubernetes# Kubernetes 集群 Serverless Kubernetes 3月月更

【高并发】解密导致并发问题的第二个幕后黑手——原子性问题

冰河

并发编程 多线程 协程 异步编程 精通高并发系列

【模块六】拆分电商系统为微服务

yhjhero

#架构训练营

css

wudaxue

常见的反爬措施:UA反爬和Cookie反爬

华为云开发者联盟

Python 爬虫 Python爬虫 反爬虫 Cookie反爬虫

「架构实战营」毕业总结

DaiChen

「架构实战营」

模块六作业

blazar

「架构实战营」

时间轮原理及其在框架中的应用

vivo互联网技术

服务器 时间轮

表数据都删了一半,可我的表文件咋还是那么大

华为云开发者联盟

MySQL 文件 innodb 数据页

【前端架构必备】手摸手带你搭建一个属于自己的脚手架

战场小包

前端 脚手架 3月月更

电商系统微服务拆分

Geek_8d5fe5

「架构实战营」

Vue

wudaxue

Java中的序列化安全漏洞梳理

陈德伟

Java 安全 编程语言、 序列化机制

AppCube低代码快速开发健康打卡应用

DS小龙哥

3月月更

什么是分支模式 ? 各(类)分支正确的使用方式

阿里云云效

云计算 阿里云 云原生 Feature 分支模式

iOS 开发周报:苹果诺基亚专利大战最终和解、用 Swift 中的单向数据流来替代臃肿的视图控制器_Android/iOS_靛青K_InfoQ精选文章