Hi,SwiftGG 翻译组启用了新的域名:swiftgg.team今后翻译组的各项活动将会在新域名下开展,不要错过哦!

作者:uraimo,原文链接,原文日期:2016-02-02
译者:Crystal Sun;校对:Cee;定稿:星夜暮晨

明天(本文发表日期是 2016 年 2 月 2 日)就是 Swift 开源后的第二个月了。

这么短的时间当中发生了很多事情。开源社区已经在全面发展这项语言了,他们为 Swift 的每个分支项目都贡献了大量的代码,他们甚至讨论了 Swift 的将来,并为之提出意见和建议。苹果公司非常欢迎开源社区的加入,而开源社区则积极回应了许多贡献和想法。

在我看来这两个月里,开源社区中真正出彩的项目是:把 Swift 语言移植到新的平台当中。一些类似的社区驱动项目让 Swift 在新平台(Android,Linux ARM,FreeBSD,Windows)上运行成为了可能。

现在让我们回顾一下每个项目的状态,从现在起,我会每月会更新两次这些项目的进度,如果你感兴趣,可以点击下方的订阅按钮来关注我的文章。

阅读全文

作者:Erica Sadun,原文链接,原文日期:2016-03-03
译者:Crystal Sun;校对:shanks;定稿:Cee

今天,苹果接受了三大重要的内部驱动的提议(有些提议内容稍作了修改):

由 Swift 核心团队开发的,这三大提议彻底确定了 Swift 语言的特点,开发者如何使用 Swift 继续前进。

阅读全文

作者:uraimo,原文链接,原文日期:2015-09-29
译者:Lanford3_3;校对:shanks;定稿:Cee

这篇 Swift 2.1 相关的文章需要使用 Xcode 7.1 beta 或者更新的版本, 你可以通过 GitHub 或者是 zip 文件 来获取相关 playground 文件。

在即将和 Xcode 7.1 一起到来的 Swift 2.1 中(译者注:原文发表于 2015 年 9 月=,=),函数类型将支持协变与逆变。让我们看看这意味着什么。

阅读全文

作者:Joe,原文链接,原文日期:2016-02-08
译者:Crystal Sun;校对:numbbbbb;定稿:littledogboy

和全球的开源项目开发者一起工作非常有趣并且可以从中获得很多经验。随着计算机设备和宽带成本逐渐降低,给全世界的人带来了新技术,来自不同文化、不同背景的开发者们走到一起努力合作,共同创造了不起的成就。

自从苹果去年开源 Swift 编程语言以来,热心人们已经创建了 Ubuntu 安装包移植到 ARM 设备上如 Raspberry Pi 2,创建了网页开发框架,而现在Umberto Raimondi 发布了 SwiftyGPIO,一个 Swift 库,能够和 ARM 设备(如 Raspberry Pi 和 BeagleBone Black)上的 GPIO 接口进行交互。

阅读全文

作者:Umberto Raimondi,原文链接,原文日期:2015-12-08
译者:CoderAFI;校对:Channe;定稿:shanks

示例程序采用 Swift2.0 编写,需要用 Xcode7 进行编译,可以访问 Github 或者 zipped 下载本文源代码

iOS9 新加入了一个非常易用的布局控件 UIStackView,它可以将一组 UIView 视图进行垂直或水平方向的排列,用来替换手工使用 Auto Layout 对视图进行布局。

阅读全文

作者:shanks

发现每周整理的问题比较零散,并且每个问题浅尝辄止,没有深入去讨论和分析。这周开始,尝试对一个问题进行深入讨论,加深每个知识点的影响。后面有余力把 stackoverflow 上的类似问题都归档一下,慢慢形成一些知识整理。这种形式感觉会好一些。
今天我们就谈谈关于 for 循环的问题。

阅读全文

作者:uraimo,原文链接,原文日期:2016-02-05
译者:Lanford3_3;校对:numbbbbb;定稿:千叶知风

如你所知,Swift 提供了便利的定长整型以及常用的位运算符,所以使用 Swift 进行位操作似乎相当直接。

但你很快就会发现这门语言及它的标准库总是奉行“安全第一”的原则,所以,相较于你过去的习惯,使用 Swift 对位以及不同的整型的处理需要更多的类型转换。这篇文章介绍了一些必须掌握的内容。

在我做进一步阐释之前,首先快速过一遍整型的基础和位运算。

阅读全文

作者:uraimo,原文链接,原文日期:2015-10-23
译者:小铁匠Linus;校对:100mango;定稿:Channe

示例程序可以从 Github 上下载。

(译者注:译者也写了一篇关于 Method Swizzling 的文章 Runtime 之 Method Swizzling,顺便写了两个小 demo 来对比 Objective-C 和 Swift 之间 Method Swizzling 的异同,示例代码传送门

Method Swizzling 在 Objective-C 或其他语言中是一种很有名的技术,用来支持动态方法派发。

Method Swizzling 通过改变特定 selector(方法)与实际实现之间的映射,在 runtime 时将一个方法的实现替换成其它方法的实现。

虽然这看起来非常方便,但是这个功能也有其缺点。在 runtime 执行这类更改时,你就不能在编译时利用那些可用的安全检查了。因此,应该小心使用 Method Swizzling。

阅读全文

作者:Jesse Squires,原文链接,原文日期:2015-03-17
译者:pmst;校对:numbbbbb;定稿:numbbbbb

欢迎来到开源周刊14期!效仿 Dave Verwer,我也对 Xcode7.3 最后发布版本进行了预测 —— 包括 iOS9.3,OS X10.11.4 以及 watchOS2.2 三个版本。Xcode7.3 将包含最终版本的 Swift2.2 语法。核心团队可能会在下周一解开谜底。ps:Apple 将于 3.21 举办 “Let Us Loop You In” 的发布会。

阅读全文

作者:Jesse Squires,原文链接,原文日期:2016/02/11
译者:pmst;校对:numbbbbb;定稿:numbbbbb

欢迎收看 Swift 开源周刊#9!由于周刊期号是从0开始的,这意味着本周已经是我们的第十期拉。🎉感谢亲们长久以来的陪伴!😄本周开源进展似乎略有放缓。甚至 Xcode7.3 beta3 的发布说明也略显平淡。这是否意味着我们越来越接近 Xcode7.3 和 Swift2.2 的正式发布呢。

阅读全文

作者:Jesse Squires,原文链接,原文日期:2016-02-04
译者:小锅;校对:numbbbbb;定稿:numbbbbb

本周在 Swift.org 上面有一篇官方博客宣布了我上周提到过的持续集成配置。关于这个,现在官网上有一个专门的页面,你可以在这里查看当前的状态。似乎它可以跟 GitHub 很好地进行集成,并且现在基本上已经正常运作了。😄

阅读全文

作者:Joe,原文链接,原文日期:2015-12-28
译者:aaaron7;校对:Cee;定稿:littledogboy

这是探索 Swift 写 Linux 程序的系列文章中的一篇。

在上一个例子中,我们通过组合使用 popenwget 命令来调用自然语言翻译服务,来实现像 Google 翻译那样的翻译功能。本文的程序会基于之前我们已经完成的工作来进行。但与之前每次执行都只能翻译一句话所不同的是,这次我们要实现一个具备交互功能的 shell 程序,来翻译在控制台输入的每一句话。像下面的截图一样:

Translate all the things!

阅读全文

作者:Joe,原文链接,原文日期:2016-01-31
译者:shanks;校对:numbbbbb;定稿:星夜暮晨

去年 11 月,我在 Swift 的 JIRA 中创建了一个 SwiftPM 的改进建议:SR-353,在 swift build 中,添加一个类似于 npm init 的包初始化命令,用来创建 Swift 包需要的所有目录和文件。这个提议创建之后不久,Bastian RinscheTobias Landsberg 就实现了这个特性,而且 PR 被合并。Bastian 还写了一篇非常棒的文章介绍他对于 Swift 开源的一些认识,并且介绍了他们实现的swift build --init命令。

阅读全文

作者:shanks

本周苹果发布了 Swift2.2, 语言又往前迈进了一小步,开源后的第一个版本,社区也会更加活跃。本周共整理了 4 个问题。涉及问题有:重写问题,结构体和枚举的结合问题,协议编程和面向对象编程问题,defer不执行的问题。

本周整理问题如下:

阅读全文

作者:walkingway

Swift 2.2 随着 iOS 9.3 一同闪亮登场,相较于 Swift 2.1, 2.2 版本做出了许多调整,从其调整方向上我们也能一窥 Swift 3.0 的影子,以下内容主要来自于苹果 Swift 官方 Blog,接下来就让我们进入正题,一睹 Swift 2.2 的庐山真面目:

阅读全文

作者:Maxime Defauw,原文链接,原文日期:2016-02-29
译者:ray;校对:numbbbbb;定稿:way

每个 iOS 程序员都要时不时的为他们的 app 做 debug。除非你是那种超级大牛,否则你肯定体验过查了无数个小时的 bug 最后才发现那仅仅是个简单的语法错误时那种油然而生的绝望感。或者更糟:你根本就没发现那些 bug。无论你是编程新手,还是开发过很多 app 的老司机,例行的写写单元测试会让你的代码更可靠,更安全,更容易 debug!

阅读全文

作者:Erica Sadun,原文链接,原文日期:2016-02-29
译者:Crystal Sun;校对:numbbbbb;定稿:shanks

当我们提到代码崩坏(code breaking)时,一般是指下面这两种情况。

  1. 语音语义发生了变化。这时你需要重构代码,典型例子就是 Swift 从 (..., $NSError) -> Result? 格式改为错误抛出。

  2. 语言语法发生了变化。这时只需进行迁移,然后大部分代码或多或少都能自动修复(还有一小部分需要微调)。

后者确实会带来一些麻烦,但更具破坏性的是前者。如果我猜的没错,Swift 3 的目标是进行最后一次内部调整,等到 Swift 4 时就不会再重新设计语言了,而是增加新的特性。

阅读全文