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

作者:Olivier Halligon,原文链接,原文日期:2015-12-14
译者:Channe;校对:numbbbbb;定稿:小锅

我的系列文章《Swift 编程思想》第一部分发表后,在 Twitter 上收到一些不错的反馈。现在,我在这些评论的基础上谈一谈什么时候可以使用!来牺牲小马(译者注:本篇文章中的!表示隐式解析可选类型)。

阅读全文

作者:Umberto Raimondi,原文链接,原文日期:2016-02-10
译者:zltunes;校对:numbbbbb;定稿:千叶知风

经过上百小时的编译、各种各样的尝试,甚至弄坏几支 USB 后,我终于能够跟大家分享一下如何在 ARMv6 处理器上实现 Swift 2.2 的初步编译(基于 Raspbian)。

从 DropBox 获取

这个包适用于 树莓派1 (A,B,A+,B+) 和 Zero 系列,基于与 ARMv7 相同的资源包,但是缺少 Foundation, XCTest, LLDB 和 REPL。

阅读全文

作者:Thomas Hanning,原文链接,原文日期:2016-03-07
译者:pmst;校对:littledogboy;定稿:saitjr

随着 Swift 的引入,Apple 生态系统已坐拥两门重要的编程语言。与此同时 Swift 也逐渐成为热门,那么问题来了:你是否依然应该学习 Objective-C 呢?

问题

来自读者的问题:

我是一个刚开始编程的小菜鸟,所以希望得到您关于这个问题的见解。对于一个 iOS 开发者来说值得学习 Objective-C 吗,还是说直接上手 Swift,也无须回过头再去补 Objective-C 的知识?

这个问题提得非常好,那么让咱们来好好研究研究它!

阅读全文

作者:shanks

本周共整理了 5 个问题。涉及问题有:协议作为字典key问题,map问题,构造器自动继承问题,静态变量延迟初始化问题和Array的继承问题。

本周整理问题如下:

阅读全文

作者:Reinder de Vries,原文链接,原文日期:2016-01-09
译者:pucca601;校对:靛青K;定稿:numbbbbb

编者注:这篇文章是由 Reinder de Vries 撰写,一个在 LearnAppMaking.com 的独立应用开发者。

喔不! Parse 即将关闭…你打算怎么办呢?

今年 1 月 28 号,Parse 宣布它将会关闭自己的服务。他们正在慢慢减少已提供的“后端服务”,打算在 2017 年 11 月 28 日全面撤出该服务。

对于从 2011 年开始就依赖该服务的超过 500,000 的开发者来说这真是个坏消息。正如 Jameson 在他的博客帖子中指出的一样,开发者们感觉被他们的信任背叛了。

阅读全文

作者:Gabriel Theodoropoulos,原文链接,原文日期:2016-01-27
译者:bestswifter;校对:Channe;定稿:numbbbbb

“推送通知?喔,不!”。是的,这就是我被叫去实现一个 iOS 应用中的推送通知功能时,脑海中闪过的第一念头,而且我相信你们也曾经有过这样的想法。这不是因为推送通知很难使用,而是在能够测试推送一条单独的通知前有很多步操作需要完成,这些操作步骤最终几乎把所有开发者弄得晕头转向。不过我们再坚持一会儿,从头开始把事情想明白。

在应用不在运行时,我们经常需要把用户的注意力吸引过来。正如我们所知道的那样,这可以通过 通知 实现。作为一名 iOS 开发者,你应该知道 iOS 支持两种类型的通知:本地通知推送通知(或者叫远程通知)。在之前的例子中,通知由应用自己 注册管理,这种通知很容易实现。事实上,你可以在这里这里找到一些先前介绍本地通知的教程。

阅读全文

作者:BENEDIKT TERHECHTE,原文链接,原文日期:2016-02-02
译者:CoderAFI;校对:Cee;定稿:天才175

如果你对 Swift 感兴趣,邮件列表是一个特棒的资源。像 Swift-Evolution 邮件列表里就讨论了很多关于语言未来的发展方向和走势的内容。订阅它肯定会帮助你很好的理解 Swift 的设计理念和新特性。Swift-Dev 邮件列表是从另一个方面阐述 Swift 内部的工作原理。如果你对这些不感兴趣,另外还有一个 Swift-Users 邮件列表是专门帮助你来解决 Swift 开发中遇到的问题的。

阅读全文

SwiftGG 每周都会组织内部技术分享,直播之后会放出视频和 keynote,整理到一起方便大家查看。

这篇文章会不断更新,你可以收藏本文,便于查看最新内容。

直播 视频 keynote
第一期 「SwiftGG Show」第一期 - Xcode Tips & Tricks【星夜暮晨】 keynote
第二期 「SwiftGG Show」第二期 - Something you don’t know on Mac OS X【Cee】 keynote
第三期 GGShow 第三期 - 邂逅 RxSwift keynote
第四期 由于录制视频的同学硬盘被撑爆,录制失败,本期没有视频= = keynote
第五期 「SwiftGG Show」第五期 - 纯函数式的解析器设计 keynote
第六期 「SwiftGG Show」第六期 - Swift Notification Center keynote

如果有什么建议请写到下方评论区,谢谢。

作者:Erica Sadun,原文链接,原文日期:2016-01-12
译者:天才175;校对:Cee;定稿:Channe

译者注:有些内容已经过期,有些提议的状态已经发生了改变。

撤回的

为了进一步的改进,SE-0018,这个灵活的逐个成员初始化提案,没有被接受,也没有被拒绝,回到了进展清单。它提议将逐个成员初始化从结构体扩展到类,以避免过度的模板代码。虽然开始时具体的实现细节并不清楚,但很多开发者喜欢它的核心理念。苹果承诺很快就会反馈具体意见。(校者注:已被驳回)

积极审查的

SE-0010 提议增加一种不可变的 StaticString.UnicodeScalarView(我喜欢这个)。(校者注:已被驳回)

阅读全文

作者:shanks

本周共整理了 5 个问题。涉及问题有:扩展协议问题,函数表示问题,final关键字问题,泛型问题和含有闭包的函数定义问题。

本周整理问题如下:

阅读全文

作者:Weston,原文链接,原文日期:2016-01-27
译者:saitjr;校对:Cee;定稿:千叶知风

自从我昨天发了,收到的最多的评论就是:

我应该选择哪些 App 来练手呢?

这个问题很有趣。理想情况下,如果做一款 App 又不是为了练手,那么你可能会选择你熟悉的技术。先找到自己感兴趣的、有能力解决的问题,然后再尝试用最佳实践去解决它。但我完全能想象,作为新开发者,他可能还没准备好去应对从头开发一款 App 所要解决的问题。怎么办呢,我条件反射就是「学做一款 Twitter App」。Twitter 客户端是一个有趣的项目,它涵盖了开发绝大多数 App 所要用到的技术点。我将会列出 Twitter(或其他高质量的 App)作为练手项目所用到的技术点。

阅读全文

作者:Umberto Raimondi,原文链接,原文日期:2016-2-9
译者:ahfepj;校对:numbbbbb;定稿:小铁匠Linus

GYB(模板生成)是一个 Swift 内部使用的工具,可以用模板生成源文件。

如果你有多个结构体/类/枚举在共享同一个通用的结构,并且你不想维护那些相同的代码,就可以用 GYB。如果你经常需要给不同的对象写一些相似的方法或者属性,那你的维护工作(由于粗心的复制/粘贴导致的错误)就可以全部交给 GYB。这个工具在 Swift 代码库 中广泛使用,很容易就可以将它应用到你的项目中。

作为一个勤奋的荷兰猪(校对注:原文 guinea-pig,也可译为豚鼠)(据我所知,目前唯一使用 GYB 的项目是 Swift-JNI,该项目是安卓的 Swift 移植项目的一部分)我在一个用于简化 Swift 位运算的库 Bitter 中广泛使用了 GYB,在这个库里我写了很多相似的代码来扩展固定长度的 Swift 整型变量。

有了这个工具,我就不需要手工输入所有代码。我只需定义一个模板,就可以用 GYB 工具创建十个扩展。

让我们来看看如何使用 GYB。

阅读全文

作者:shanks

本周共整理了 5 个问题。涉及问题有:浅拷贝问题,Any类型问题,数组初始化问题,泛型类型问题和有继承关系的协议实现问题。

本周整理问题如下:

阅读全文

作者:Joe,原文链接,原文日期:2016-01-24
译者:小袋子;校对:numbbbbb;定稿:Cee

GitHub 上的很多框架和包都在他们的 README 文件中使用「badges(标签)」记录 repository 的不同属性。例如:

  • 一个 repository 的 Travis 构建(译者注:Travis CI 是开源持续集成构建项目)是否通过
  • 一个 release 版本代码的下载次数
  • 代码支持的平台(为苹果设备开发时尤其有用)

Badges!

阅读全文

作者:Joe,原文链接,原文日期:2016-01-03
译者:shanks;校对:numbbbbb;定稿:Cee

在远古时代,程序员们使用 TCP/IP 套接字(sockets)来编写客户端-服务器(client-server)应用。这事发生在黑暗时代 HTTP 诞生之前。

当然,我只是开了个玩笑。HTTP 的出现给客户端-服务器(client-server)应用带来更多的变化,当然它也是 REST 应用的基础。HTTP 带给我们的不仅是将数据在网络中打包传输,还包括一个一致认可的包协议架构(从某种程度上来讲,是一个在特定端口下使用的标准)。可以进行的动作有:GET,POST,PUT 等。HTTP 头部本身也使得 HTTP 协议对于开发客户端-服务器应用变得更加友好。

阅读全文

作者:Jesse Squires,原文链接,原文日期:2016-01-28
译者:pmst;校对:numbbbbb;定稿:numbbbbb

本周我们迎来了 Xcode 7.3 beta2 —— 这是首次支持 Swift 2.2 语法的 Xcode 正式发布版,凝聚了 Swift 开源社区的力量!我从未想过会看到这样的发布版本说明。更令人难以置信地是能够在 “What’s New” 章节看到那些由社区驱使做出的改动,同时还附上了 GitHub 链接。显然,苹果下一步应该是要将 Xcode 开源出来。😉

阅读全文