BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

iOS 开发周报:Xamarin 宣布开源,Apple 向开发者推广宣传 Apple Music 相关 API

| 作者 王巍 关注 0 他的粉丝 发布于 2016年5月4日. 估计阅读时间: 7 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

新闻

  1. Xamarin 宣布开源:Microsoft 收购了使用 Mono 进行跨平台开发的工具提供商 Xamarin 后,与本周将 Xamarin 各部件进行了开源,其中也包含 iOS 和 Mac 的相关组件。Xamarin 在之前完全变为免费,而本次的开源也预示了微软继续对这个项目进行开发和支持的愿景。对于同时开发 iOS 和 Android 应用的开发者来说,使用 C# 在同一个项目中对逻辑和 Model 部分进行开发维护是一件很吸引人的方式,而以 Xaramin 为代表的统一逻辑层以及各自原生的 UI 层在现在看来是一种相对稳定的跨平台开发方式。
  2. Apple 向开发者宣传 Apple Music API:Apple 在iOS 9.3中新加了 `SKCloudServiceController` 在内的一系列访问和更新 Apple Music 的功能,但是因为是在小版本中进行的更新,对于开发者来说缺少学习和了解的机会。为了让更多开发者及时了解相关 API 的信息,Apple 本周制作了一个介绍 Apple Music 相关 API 使用方法的网页,并通过邮件的方式通知开发者。如果你需要在项目中涉及访问或者操作 Apple Music 的话,可以关注一下。

教程

  1. ReactiveCocoa vs RxSwift:自从 ReactiveCocoa 以来,响应式函数式编程一直被不少开发者使用和喜爱。相对于命令式的编程方式,响应式编程在处理用户响应和事件流上天生的优势在不少时候能够简化代码,提高可读性。而在 Swift 中,后起之秀 RxSwift 更是抢尽风头。这篇文章为我们对比了 ReactiveCocoa 和 RxSwift 各自的优势和适用场景,如果你正打算在项目中尝试响应式编程的方法,这篇文章可能可以为你的基础框架选择提供一定建议。
  2. 去model化和数据对象:在我们构建项目时,一般都会有一个 Model 层来存储和表示数据。在应用的各组件或者各层中,我们是否应该直接传递这个 model 对象,是一个很重要的选择。因为对于 model 对象的传递,往往意味着向我们的代码中引入新的依赖,这在有些时候可能不是我们想要的结果。本文分析了在数据传递时的“去 Model 化”的一些想法以及对应的替代方式,如果又需要,可以在进行架构设计时进行参考。
  3. 聊聊 Swift 3.0 - 新版本对我们的影响:随着 WWDC 16 的临近,Swift 3.0 也将很快与我们见面。得益于 Swift 的开源和详细的发展进程表,我们可以提前预知 Swift 3 中稳定的 ABI (Application Binary Interface)、更加简洁的新 API 规范、更完善的跨平台支持等特性。新版本中的这些变化到底意味着什么,会对我们的开发产生什么影响,这篇文章从这些方面着手为我们进行了一些分析。
  4. Xcode Search: the Hidden Gems:Xcode 应该是大多数 iOS/Mac 开发者日常工作中最常用的 IDE 工具了。Xcode 其实为我们提供了十分强大的搜索功能,包括像是使用 Pattern 搜索、只搜索定义、自定义搜索范围等等特性。这篇文章为我们列举了那些不太常用但是绝对有效的提高我们搜索效率的方法,如果你经常困扰于使用 Xcode 的搜索却找不到想要的代码的话,这篇文章绝对值得一读。

开源项目

  1. SwiftOCR:SwiftOCR 是一个用 Swift 写的 OCR 框架,相比于 C++ 写的有三十年历史的 Tesseract,作者宣称在识别数字和字母的准确性和效率上,SwiftOCR 都具有压倒性的优势。如果你恰好有识别像是验证码或者礼品卡上的数字和字母这样的需求的话,不妨尝试下这个框架。同时如果你在学习图像识别或者是人工智能之类的课题的话,这个项目也会 是不错的学习资料。
  2. CoreStore:Core Data 是 Apple 官方的数据关系图框架。虽然通过 Core Data 来使用和操作数据库可以不向项目中引入额外依赖,但是 Core Data 强大的功能的背后是较为陡峭的学习曲线和对开发者相对较高的技能要求。很多时候我们往往会选择一些替代方案或者对 Core Data 的再次包装和简化。CoreStore 就是一个基于 Core Data 的 API 封装,它能让我们利用 Swift 的特性以一种更好的方式使用 Core Data。
  3. Palau:Swift 提供的类型安全对现有的 Cocoa API 的改进是很有潜力的,而 `NSUserDefaults` 就是一个很好的改进案例。Palau 用类型安全的方式对 `NSUserDefaults` 进行了封装,同时也扩展了 `NSUserDefaults` 所能支持的类型,让我们可以用更好的方式使用 `NSUserDefaults`。
  4. LeeGo:LeeGo 是一个尝试使用声明式的,可配置的和易复用的 UI 组件进行用户界面开发的方式。相对于直接创建和书写 `UIView` 的子类,LeeGo 通过创建 `Brick` 来将用户界面分解成一个一个的小块,然后再将它们进行组合并展示为完整的用户界面。相比于传统的 `UIView`,LeeGo 的 UI 创建方式是声明式的,并且能够通过 JSON 进行远程的更新,是一种十分具有吸引力的 UI 构建方式。

感谢徐川对本文的审校。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT