Swift 语言指南

@SwiftLanguage 更新于 2016-1-5,更新内容详见 Issue 43。往期更新回顾详见《收录周报》

  这份指南汇集了 Swift 语言主流学习资源,并以开发者的视角整理编排。对于精选项目及文章,可直接访问《Swift 项目精选》和《Swift 文章精选》。

目录

  • 官方文档

    • Welcome to Swift
    • Swift Programming Language(中译)
    • Using Swift with Cocoa and Objective-C(中译)
    • App Extension Programming Guide(中译)
    • HomeKit Developer Guide(中译)
    • Swift Blog - Apple Developer(中译)
    • iOS Human Interface Guidelines(中译)
  • 教程、指南、文章
  • 开源项目
  • 推荐网站
  • 开发工具
  • 媒体报道
  • 开放平台
  • Apple Watch 指南

官方文档

1. Welcome to Swift

苹果针对 Swift 开发者官方文档入口。其中包括:
Swift 概括,Swift Programming Language,Using Swift with Cocoa and Objective-C

2. Swift Programming Language

  • 苹果官方文档:
    在线版(英文) | iBooks 版(英文)

  • 爱好者翻译版:
    在线版(中文) By @Swift 中文翻译组|
    PDF 版(提取码:vmcb) By @老码团队|
    百度阅读版(By 小岂子)

  • 相关文档

    • Swift Style Guide(非苹果官方):本风格指南的目标是让Swift代码更简洁、可读更强。

      1. RayWenderlich 版(中译版)
      2. GitHub 官方小组版(中译版)
    • Swift 官方 API 设计准则:“与此前文章《Swift 3 API 设计准则》的区别在于,之前文章只是一个 Swift 3 工作的概览说明,而这是有内容的干货!虽然还处于样稿阶段,但是有很好的参考价值”。译者:@星夜暮晨

3. Using Swift with Cocoa and Objective-C

  • 苹果官方文档:在线版(英文)|iBooks 版(英文)
  • 爱好者翻译版:在线版(中文)(By @CocoaChina)|PDF版(By @CocoaChina)

4. App Extension Programming Guide

  • 应用扩展要点(App Extension Essentials)

    译文 译者 原文
    应用扩展如何工作 @DevTalking Understand How an Extension Works
    开发应用扩展 - Creating an App Extension
    APP 扩展提高你的应用影响力 - App Extensions Increase Your Impact
    常见问题的处理方案 - Handling Common Scenarios
  • 应用扩展类型(App Extension Types)

    译文 译者 / 校对 原文
    Today @CocoaChina / 唧唧歪歪 Today
    Share @CocoaChina / 张国鹏 Share
    Action @CocoaChina Action
    照片编辑 - Photo Editing
    Finder 同步 @星夜暮晨 Finder Sync
    文档提供 - Document Provider
    第三方输入法 - Custom Keyboard

5. HomeKit Developer Guide

  • HomeKit 开发指南(中文版)(By @CocoaChina):“内容包括:简介、启用HomeKit、创建Home布局、创建Homes和添加Accessories、观察HomeKit数据库的变化、访问服务和特性、测试HomeKitApp、创建动作集(Action Sets)和触发器(Triggers)以及用户管理”。

6. Swift Blog - Apple Developer

“值得一提的是,Swift 博客是苹果官方网站的第一个 Blog,这也代表了苹果对开发者和消费者的态度正变得越来越开放。”

译文 译者 原文
- N/A New Playgrounds Part 2 - Sources
Swift Nullability and Objective-C Bannings Nullability and Objective-C
- N/A New Playgrounds
- N/A The as! Operator
Swift 1.2 和 Xcode 6.3 beta @老码团队 Swift 1.2 and Xcode 6.3 beta
- N/A New Swift Development Courses Available on iTunes U
Swift REPL:一切皆可重定义 @MichealGeng Redefining Everything with the Swift REPL
Swift 中的 NSMethodSignature 怎么了? @pockry What Happened to NSMethodSignature?
Swift REPL 入门介绍 - Introduction to the Swift REPL
可失败构造器 @DevTalking Failable Initializers
N/A Building Your First Swift App Video
通过 Playground 展示一些编码模式 @DevTalking Patterns Playground
Swift 中 Optional 类型的使用案例分析:valuesForKeys - Optionals Case Study:valuesForKeys
Swift 中的访问控制与 protected - Access Control and protected
Swift 中的值类型和参照类型 - Value and Reference Types
WWDC 2014大会中的 Playground 大炮气球示例 - Balloons
在 Swift 中构建布尔类型 - Boolean
Swift 中的文件和初始化 - Files and Initialization
在 Swift 中使用 C 语言的指针 - Interacting with C Pointers
*Swift 新特性 - 访问控制(文档版) - Access Control

7. iOS Human Interface Guidelines

  • 苹果官方文档:在线版(英文), iBooks 版(英文)
  • iOS 9 人机交互指南

    译文 来源 原文
    UI 设计基础 @腾讯ISUX UI Design Basics
    设计策略 - Deisgn Princibles
    iOS 技术(上、下) - iOS Technologies
  • iOS 8 人机交互指南

    译文 来源 原文
    UI 设计基础 @腾讯ISUX Designing for iOS
    设计策略 - Design Principles
    iOS 技术(上、下) - iOS Technologies
  • iOS 7 人机交互指南 By CocoaChina


教程、指南、文章

旧版内容过于庞杂,不再维护,取而代之的是《Swift 文章精选》。P.S. 需要查阅旧版内容的同学,详见Swift 教程(旧版)。


开源项目

旧版内容过于庞杂,不再维护,取而代之的是《Swift 项目精选》。P.S. 需要查阅旧版内容的同学,详见Swift 项目(旧版)。


推荐网站

  • 苹果官方

    • Swift:Swift 概述、博客以及开发资源。
    • swift.org:开源后独立出来的 Swift 开源社区。
    • GitHub:apple:苹果在 GitHub 上的开源项目。
    • GitHub:apple/swift:swift 语言在 GitHub 上的开源项目。
  • ksm/SwiftInFlux:作者(Karol Mazur)将 Apple Developer Forums 上有关 Swift 特性、缺陷及变更讨论分类汇总并更新到 GitHub,具有很好的可读性。从中可以一窥 Swift 缺陷及未来潜在地变化。最关键地是有 Chris Lattner 及核心团队答疑解惑。
  • raywenderlich.com(中文版):由Ray Wenderlich创建,专注于开发高质量编程指南(近期优质Swift文章及视频教程不断),著名的iOS/OS X博客及开发教程网站,非常适合新手学习。近期第一时间出了三本 Swift 新书。
  • Natasha The Robot: 时髦码农不容错过的 Swift 开发实战教程类网站。为了简化学习复杂性,每一篇文章涵盖技术点单一又独立,配以开发步骤、运行结果以及代码等标准方式教授。难能可贵的是,它往往出品“追剧式”(最新开发特性或API跟进式)教程,实在是开发者必藏精品网站。
  • NShipster (中译版:@刘镇夫,April Peng,@李乐佳,@程序员付恒 等翻译):著名开源作者 Matt Thompson 创建的开发技术博客网站,他开发了 AFNetworking 网络库,也是非常多产的开源作者。更多了解参考:《COCOA 潮人 MATTT THOMPSON》 By @程序员付恒
  • jamesonquave.com:移动开发者,优秀个人博客(近期文章同样关注于Swift 语言,写得很优质)。同时他将于8/30发布一本新书《Developing iOS 8 Apps in Swift》 (Learn To Make Real World iOS 8 Apps)及视频教程。
  • objc.io(中译版 By @onevcat 及其朋友们):”关于 Objective-C 最佳实践和先进技术的期刊。 由 Chris Eidhof, Daniel Eggert 和 Florian Kugler 成立于柏林。我们成立 objc.io 的目的是针对深入的、跟所有 iOS 和 OS X 开发者相关的技术话题创造一个正式的平台。“
  • iOSCreator:这类开发指引式教程对于初学者来讲,是直接明了的有效学习资源。推荐者@荧星诉语
  • iOS Dev Weekly:收录一周以来 iOS 开发资讯链接,并于周五发布。由 Dave Verwer 创办,他是一位 iPhone 和 iPad 开发者以及培训师。
  • Appcoda.com:质量很高的一个 iOS 开发教程站,其中iOS Programming Course这个专题很适合刚接触 iOS 开发的新手学习。
  • 中文 iOS/Mac 开发博客列表:By @唐巧_body
  • devtalking.com:高产的中译博客。翻译了官方博客 Swift Blog - Apple Developer,《App Extension Programming Guide》。参与翻译了《Swift Programming Language》等。
  • SwiftGG:一个走心的 Swift 翻译组,由《The Swift Programming Language》中文版翻译团队原班人马组成, 翻译的文章来源于国外的优秀 Swift 网站和博客,且全部获得作者和网站授权。
  • Swift Weekly Brief:“这个博客现在每周会将Swift开源中的重要讨论和提交整理成Open source Swift weekly brief,这对一线开发者尽早了解这门语言的动态情报很有帮助。By @崔康总编 ”。来源:Jesse Squires
  • iosdevtips.co:iOS Development Tips

  • 资源合集

    以下是其它开发者社区或 Swift 爱好者整理的有关 Swift 语言学习的资源列表。

    • SwiftEducation:“这是建立在 GitHub 上的一个 Swift 学习资料汇集,包括了有关幻灯和多个练手的应用程序源码。By @极客头条”。的确有不少基础实用的好教程。这对于基础学起的同学有福了。
    • Awesome-Swift-Education:整理地如此美妙的学习资源,实在让人太欢喜了。
    • matteocrippa/awesome-swift:这个版本的 Swift 资源集合内容丰富,分类也不错。作者:Matteo Crippa
    • 适合iOS开发者的 15 大网站推荐:的确很全、很主流的国外 iOS 开发者网站。
    • 码农周刊 -《Swift 特刊》
    • CocoaChina -《Swift 新手入门汇集帖》
    • CSDN_CODE -《Swift 编程语言资料大合集》
    • InfoQ -《学习苹果 Swift 语言的一些在线资源(英文)》
    • 刘兰涛 -《Swift 学习资源》 By @懒桃儿吃桃儿
    • learnswift.tips:国外主流 Swift 学习资源集合。
    • Awesome iOS:一个 iOS 的各类优秀的开源项目集合。真不错!可惜Swift开源项目资源不足。
    • iOS Developer Tips:还是有关 iOS 的开发资源及文章合集。
    • Wolg/awesome-swift:一位俄罗斯朋友分类整理的 Swift 资源列表(有持续更新)。
    • Aufree/trip-to-iOS:显然作者很用心的做了非常深入的整理。它对于开发者拓展学习范围及开发知识面非常有益。
    • Robin Eggenkamp - Awesome Swift:“一个收集了很多 Swift 开发资源的网站”。
    • iOS 开发技术前线:“一个定期翻译、发布国内外iOS优质的技术、开源库、软件架构设计、测试等文章的开源项目”。主要翻译来源 Ray Wenderlich,App Coda,Medium。来源:@开发技术前线
    • 11个超棒的 iOS 开发学习网站:还算比较主流的归纳。不过,缺了raywenderlich.com 和 ioscreator.com 这两个重量级教程网站实在是不应该啊。

开发工具

1. 编程工具

  • Xcode 6 beta下载:苹果应用集成开发环境。支持 C/C++, Objective C, Swift 等。不用购买开发者计划,直接下载。
  • Textmate:Mac OS X 上一个可高度自定义的编辑器,尤其在我想做出一个快速改变但又不想等待 Xcode 加载的时候。该工具目前已经开源
  • Mou:OS X 上一款 Markdown 的编辑器。非常适用于编写自述文件、变更日志以及其他方面的内容。作者:罗晨
  • Sublime Text ($):Mac OS X 上另一款非常受欢迎的轻量级,可高度自定义的编辑器。
  • RunSwift:正在犹豫是否入手苹果电脑开始一段 Swift 编程旅程的同学们,或仅仅为了试验一段简单 Swift 代码又懒得打开 Xcode,可以试试这款 Web 版 Swift 编译环境 RunSwift。
  • InfinitApps - Bezel:“嫌 Xcode 6 目前提供的 Watch 模拟器不够直观?Bezel 是一个用于视觉预览 WatchKit 所开发程序效果的小工具,前提是你安装了 xScope 软件(Mac端)或 xScopeMirror(iPhone端)。 By @WatchKit开发”
  • Markdown -> Playground:该开源项目可将内含有 Swift 代码的 Markdown 自动转换为 Xcode Playgrounds 文件。喜欢用 Markdown 编辑的同学很激动吧。P.S. 这款工具写于 NodeJS,原因作者有交待。
  • iOS/Mac Autolayout Constraints:这个工具不错,很直观,布局时可以省不少工夫。推荐者:@荧星诉语
  • 在线生成 AppStore 审核用截图:便捷的生产力工具。免费,易操作,可自定义。

2. 代码管理

  • GitHub:声望日盛的资源分享之地。
  • GitHub for Mac:一个设计的非常美观的 git 客户端,不能取代你从命令行获得的所有功能,但使用起来非常简单。
  • GitCafe:GitCafe is a source code hosting service based on version control system Git。国内的代码托管服务,基于 Git,值得一提的是最近也推出了和 GitHub Pages 类似的服务 Gitcafe Pages。因为是在国内,所以相比较 GitHub 有速度优势,在网络环境差的情况下也许可以作为 GitHub 的备用。
  • Bitbucket:国外的代码托管服务,不同于 GitHub 的是,Bitbucket 可以免费建立 private 项目。
  • Git:分布式版本控制系统和源码管理系统,其优点是:快和简单易用。对于新手来说,可在此查看免费电子书籍。

3. Xcode 插件

  • CocoaPods:第三方库的管理利器,允许你简单地把第三方库整合进自己的应用中。对我个人来说,我基本上每个项目都使用 CocoaPods。
  • CocoaPods Xcode Plugin:一款 Xcode 插件,允许你直接从 Xcode 管理 CocoaPod 依赖。
  • onevcat/VVDocumenter-Xcode:快捷注释 Xcode 插件。By @onevcat
  • ColorSense:一款显示颜色数值的插件,还可以直接通过系统的ColorPicker来自动生成对应颜色代码
  • Xcode 优秀插件整理:持续保持整理更新的 Xcode 插件整理 By @ddapps
  • CodeEagle/SwiftCodeSnippets:自动下载指定 Xcode Snippet 源的 Xcode Plugin。项目缺省提供 Snippet 代码源 burczyk/XcodeSwiftSnippets 。
  • realm/SwiftLint:Realm 采用 Swift 编写的基于 GitHub’s Swift Style Guide 规则的检查工具。除了命令行运行方式,也提供集成 Xcode 的方法。对于新团队,这样的工具可以自动约束大家遵循编程规范。
  • XCode 升级后插件失效的原理与修复办法:由一条命令引发的分析文章。@_TongJZ
  • feinstruktur/CoPilot:通过此插件,Xcode 可以协同编程了(采用 WebSocket 通讯)。如此强大的“黑工具”,不爱它能行吗。演示视频

4. 管理工具

  • HomeBrew:OS X 上非常出色的包管理工具。
  • Transmit ($):一个Mac OS X 上 FTP 客户端,有着非常漂亮的用户界面和有用的功能。

5. 调试工具

  • mattt/fuckingclangwarnings.com:警告与语义对照表。以后再也不用为 Xcode 各种警告纠结啦!By @foogry

6. 参考文章

  • iOS 开发工具:”这是我们多篇 iOS 开发工具系列篇中的一篇,此前的文章比如:那些不能错过的 Xcode 插件,iOS 开发者有价值的工具集,iOS/OS X 开发:各种工具快到碗里来!,App 原型设计工具使用心得(上)& App 原型设计工具使用心得(下),你用哪种工具进行 iOS app 自动化功能测试?iOS 开发者必知的 75 个工具” By @CocoaChina
  • IOS 各种调试技巧豪华套餐:讲得很细。对于初学 Xcode 开发的同学值得参考,对于有经验的同学可以略过。作者:@David戴未来
  • 详解Xcode 6的视图调试:教程非常实用,值得学习。另外,教程选用的开源项目(jessesquires/JSQMessagesViewController)也很经典。来源:Ray Wenderlich,译者:@CocoaChina 翻译组

媒体报道

开放平台

Apple Watch 指南

Swift 语言指南相关推荐

  1. Swift语言指南(十)--字符串与字符

    原文:Swift语言指南(十)--字符串与字符 字符串是一段字符的有序集合,如"hellow,world"或"信天翁".Swift 中的字符串由 String ...

  2. Swift语言指南(二)--语言基础之注释和分号

    Swift语言指南(二)--语言基础之注释和分号 原文:Swift语言指南(二)--语言基础之注释和分号 注释 通过注释向自己的代码中注入不可执行的文本,作为你自己的笔记或提示.Swift编译器运行时 ...

  3. Swift语言指南(一)--语言基础之常量和变量

    原文:Swift语言指南(一)--语言基础之常量和变量 Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swif ...

  4. GitHub上Swift语言指南

    Swift 语言指南 @SwiftLanguage 更新于 2016-6-6,更新内容详见 Issue 55.往期更新回顾详见<收录周报> 这份指南汇集了 Swift 语言主流学习资源,并 ...

  5. Swift 语言指南-Issue 46

    Swift 语言指南-Issue 46 本期特别推荐 1. 项目:30DaysofSwift(相比 100 Days of Swift,一样的赏心悦目),Tactile(让手势识别如虎添翼),fold ...

  6. 学习苹果Swift语言的一些在线资源

    Swift 是苹果为 OS X 和 iOS 平台引入的一种新的程序设计语言,这种程序设计语言已经激发了开发者社区的大量关注.仅仅几天之内,在 Stack Overflow 网站上提出的关于 Swift ...

  7. 汇集了很多swift 学习指南

    https://github.com/ipader/SwiftGuide 1,059  Unstar 7,294 Fork1,966 ipader/SwiftGuide  Code  Issues 0 ...

  8. 《Swift 权威指南》——导读

    本节书摘来自异步社区<Swift 权威指南>一书中的目录,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 内容提要 前言 第1章 未来的iOS开 ...

  9. Linux平台swift语言开发学习环境搭建

    摘要  介绍在Ubuntu平台搭建Swift开发环境: 介绍Swift脚本解析器swift的使用: 介绍Swift编译器swiftc的使用: 1.序言 这两天一直忙,没来得及记录东西,周三12月4日凌 ...

最新文章

  1. 计算机改变了我们的生活英语作文带翻译,一件事改变了我的生活的英语作文,带翻译,求帮忙,最好是符合初中三年级的英语作文...
  2. 基于Go语言来理解Tensorflow
  3. sublime福音:微信小程序组件及API补全插件
  4. Java中的异常处理:何时抛出异常,何时捕获异常?
  5. C#的控件输入法变换
  6. 【NLP】新分类!全总结!最新Awesome-SLU-Survey资源库开源!
  7. python 单元测试 工具_Django单元测试工具test client使用详解
  8. 密钥交换算法 - Java加密与安全
  9. java 中组合与复用_Java 代码复用(组合与继承)
  10. Android Wifi简单的梳理【转】
  11. Widows核心编程第一章:错误处理
  12. OpenCV矩形检测
  13. 大数据与商业地理分析
  14. truffle console用法 总结
  15. 3.15PMP试题每日一题
  16. Reportlab生成图文并茂的pdf报告
  17. Pycharm 添加自动表头(包含汉化和英文版本路径)
  18. android https cer证书转换BKS
  19. 【因果学习】因果推断分析
  20. Windows版navicat for mysql 11.2注册码

热门文章

  1. 利用pcl库实现简单单帧障碍物检测
  2. 几种典型的重介质选煤工艺
  3. 李永乐复习全书概率论与数理统计 第四章 随机变量的数字特征
  4. 友基s400手写板怎么安装_电脑手写板安装步骤 手写板怎么用
  5. 【经验分享】网络剪贴板-PasteMe
  6. Flink事件时间、水印以及迟到数据处理的个人理解
  7. C语言-宏定义和字符串
  8. 一步步展示如何用C#和ACCESS编写一个登录界面
  9. (others)PPOE的疑惑
  10. FPGA/CPLD学习心得体会-送给入门学习的你(后附郭天祥FPGA视频教程)