写点什么

Swift 被 Apple 定义为面向 Protocol 的编程语言 - iOS 移动开发周报

  • 2015-06-29
  • 本文字数:1261 字

    阅读完需:约 4 分钟

新闻

  1. 21.5-inch 的 4K Retina iMac :在 SDK 放出后,程序员们就没有停止对其中隐藏细节的挖掘。自上周曝出 12-inch 的 iPad Pro 后,这周又有开发者在 OS X El Capitan beta 中发现了分辨率为 4096 x 2304 的一款 iMac 设备,这应该对应的是 Retina 的 21.5-inch iMac。
  2. Apple 发布了第二版 iOS 9 beta SDK :相比起第一版 SDK,beta 2 中主要实装了像 OptionSetType 等 Swift 2 特性,另外还修复了海量的 Swift 编译器错误。一些详情可以在这里找到。

教程

  1. Introducing Protocol-Oriented Programming in Swift 2 :Swift 2 通过 Protocol Extension 大幅强化了 protocol 在这门语言中的地位,而整个 Swift 标准库其实也是基于 protocol 来设计的,使用了大量的 protocol。可以说 Swift 是一门面向 protocol 的语言。这篇教程中列举了一些 protocol 在实际使用中的方法,可以让你掌握面向接口编程的基础知识。
  2. 《RAC Marbles》:一个直观的交互展示 RAC 中各种信号行为的网站。虽然是针对 RAC 的,但是其实很多概念都是函数式编程通用的。对于函数式编程有兴趣的朋友可以看看,另外也很适合在日常工作中用到时进行查阅。
  3. 《基于 CoreText 的排版引擎》:CoreText 在做图文混排和一些复杂的富文本排版时是不可避免要接触到的。这一系列的文章从最基本的开始,一步一步完成一个支持图文混排、支持图片和链接点击的排版引擎。推荐给想要入门和使用 CoreText 框架的朋友阅读。

开源项目

  1. Tropos :Thoughtbot 开源的一个天气预报 app,使用了 ReactiveCocoa 和 MVVM 进行架构。想要学习使用这两种技术的同学不妨仔细读一下代码,毕竟天气预报作为一个入门 app 来说简直是再适合不过了。之后这个项目还有已计划迁移到 Swift 以及 ReactiveCocoa 3.0,所以可以持续关注。
  2. Bohr :实际开发过一些 app 的话你就会知道,设置页面一直很难做好。传统来说我们会选择使用 static 的 table view 来制作设置页面,但是很多时候条件判断和变更起来很不方便。Bohr 虽然也是基于 table view,但是却是一个很不错的改善方案。它封装了一些常用的 cell 来帮助简化构建设置页面的流程,另外也将添加 cell 的工作进行了剥离,这使得设置页面的制作更加简便灵活。
  3. GEOSwift :GEOSwift 是 Swift 写的用来处理地理模型和拓扑模型关系和转换的框架。另外这个框架也和 MapKit 和 MapboxGL 有很好的集成,app 中如果有地图相关内容的话可能会很有用。
  4. SXWaveAnimate :一个很漂亮的灌水动画,可以用来丰富 app 中的动画效果。可能泛用性并不是很好,但是可以对实现的动画代码进行参考,并调整写出自己的动画代码。
  5. DownloadButton :类似 App Store 下载时的按钮,提供了多种样式和状态,并且可以在 Interface Builder 中进行自定义。如果 app 中有类似的按钮需求的话,这个自定义控件能让你省掉很多工作量。

感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-06-29 06:3011217
用户头像

发布了 59 篇内容, 共 24.6 次阅读, 收获喜欢 4 次。

关注

评论

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

嗖的一下就码出一个CLI

蛋先生DX

typescript 前端 命令行 cli 代码生成

关于Java 同步工具和组合类的线程安全性分析

Java快了!

java;

数据中台改名DaaS平台?究竟什么是数据即服务(DaaS)?

雨果

DaaS数据即服务

如何重新评估未完成的工作

ShineScrum

Scrum 敏捷 DoD 未完成的工作

【FAQ】接入华为应用内支付服务常见问题解答

HarmonyOS SDK

资深技术笔译总结的这7条建议,看完提PR效率倍增

OpenHarmony开发者

OpenHarmony

喜提“双黄蛋” | 旺链科技亮相2022世界人工智能大会

旺链科技

区块链 产业区块链 企业号九月金秋榜 人工智能大会

遥居前列!华为云GaussDB再获行业权威验证

华为云开发者联盟

数据库 后端 华为云 企业号九月金秋榜

Spring5源码14-SpringMVC-HandlerMapping

Java快了!

springmvc

我用WireShark结合一款神器成功绘画出入侵者的地图!

wljslmz

Wireshark 9月月更

从系统架构分析安全问题及应对措施

京东科技开发者

网络安全 安全 系统架构 信息安全 ssl

Java进阶(八)Java加密技术之对称加密、非对称加密、不可逆加密算法

No Silver Bullet

对称加密 非对称加密 9月月更 不可逆加密

Spring 源码阅读 29:基于 XML 配置初始化 Spring 上下文过程总结(10+详细流程图)

Java快了!

xml

天翼云加码边缘计算,让普惠算力触手可及!

天翼云开发者社区

LeetCode-20. 有效的括号(java)

bug菌

9月日更 Leet Code 9月月更

LeetCode-14. 最长公共前缀(java)

bug菌

9月日更 Leet Code 9月月更

Karmada v1.3:更优雅 更精准 更高效

华为云开发者联盟

容器 云原生 后端 华为云 企业号九月金秋榜

《小米创业思考》之三:互联网七字诀

郭明

读书笔记

自适应熔断原理分析与源码解读

万俊峰Kevin

Go golang 熔断 go-zero 限流熔断

Hugging Face:成为机器学习界的“GitHub”

OneFlow

神经网络 机器学习

New Wireless Technologies to Help Meet Aviation Demands IPQ6018/IPQ6000/IPQ6010/Wallys

wallys-wifi6

IPQ6010 ipq6018 IPQ6000

Java基础——编码命名规范

守夜人st

java; 编程语言‘ 9月月更

技术解读:Dragonfly 基于 P2P 的智能镜像加速系统 | 龙蜥技术

OpenAnolis小助手

开源 dragonfly p2p 龙蜥技术 镜像加速

Linux系统安装MySQL

MySQL Centos 7 navicat 9月月更

消除 JavaScript 的一些“异味”

掘金安东尼

JavaScript 前端 9月月更

数据库的视图怎么用?

阿柠xn

MySQL 运维 视图 数据库· 9月月更

美团前端一面常见面试题

beifeng1996

JavaScript 前端

SPL工业智能:发现时序数据的异常

石臻臻的杂货铺

SPL 9月月更

保利威重磅开启「828 B2B企业节 · 专场峰会 」!

科技怪咖

看得懂又好看的数学书,万人亲测的硬核教程!

博文视点Broadview

云图说丨初识分布式消息服务Kafka版

华为云开发者联盟

云计算 企业号九月金秋榜

Swift 被 Apple 定义为面向 Protocol 的编程语言 - iOS移动开发周报_移动_王巍_InfoQ精选文章