Swift - 语言指南,来自github学习
@SwiftLanguage 更新于 2016-6-6,更新内容详见 Issue 55。往期更新回顾详见《收录周报》
这份指南汇集了 Swift 语言主流学习资源,并以开发者的视角整理编排。对于精选项目及文章,可直接访问《Swift 项目精选》和《Swift 文章精选》。还有开发者们自己维护的《Swift 开发者、项目、最佳实践》。当然也不能错过那些活跃、优秀的《开发者个人资料页》。
目录
入门指引
苹果为 Swift(中文介绍)开发者提供的官方文档入口,包括 概述,博客(中译镜像)及 开发资源。其中以下几份文档(Swift 2.1)为入门级必备(iBooks 版):
苹果同时也维护着相应 Beta 版(Swift 2.2)文档:Swift Programming Language,Start Developing iOS Apps,Using Swift with Cocoa and Objective-C。
学习实践的角度,标准库示例代码 Swift Standard Library.playground 是很棒的学习伴侣。
教程方面,苹果力荐了斯坦福课程 Stanford University: Developing iOS 8 Apps with Swift(中文字幕版 By @网易公开课)
除以上所涉及入门级文档,iOS Developer Library 还为开发者提供了更庞大、系统化的开发文档支持。
以下列举了几份已有第三方中文翻译文档:
- App Extension Programming Guide(中译镜像)
- iOS Human Interface Guidelines(中文版|PDF 版 By @腾讯ISUX)
- HomeKit Developer Guide(中文版 By @CocoaChina)
值得称道的还有:苹果为 Apple TV Tech Talks 和 WWDC 2015 的视频添加简体中文字幕,从而方便中国开发者观看来自官方的权威技术分享。
对于 Swift 开源及跨平台开发的同学,可以关注 swift.org
教程文章
开源项目
推荐网站
- 苹果官方
- 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. 管理工具
- swiftenv:Swift 版本管理器。类似 rvm(Ruby), nvm(Node.js)。
- HomeBrew:OS X 上非常出色的包管理工具。
- Transmit ($):一个Mac OS X 上 FTP 客户端,有着非常漂亮的用户界面和有用的功能。
5. 调试工具
- mattt/fuckingclangwarnings.com:警告与语义对照表。以后再也不用为 Xcode 各种警告纠结啦!By @foogry
6. 设计工具
- sketch:更适合开发应用的矢量设计工具。通过插件还支持与代码协同工作。推荐书籍:Learn Sketch 3
媒体报道
开放平台
Apple Watch 指南
Swift - 语言指南,来自github学习的更多相关文章
- Swift语言指南(七)--语言基础之布尔值和类型别名
原文:Swift语言指南(七)--语言基础之布尔值和类型别名 布尔值 Swift有一个基本布尔类型,叫做布尔(bool),布尔值又称逻辑值(logical),因为它只能为真(true)或假(false ...
- Swift语言指南(四)--类型安全和类型推断
原文:Swift语言指南(四)--类型安全和类型推断 Swift是一门类型安全语言,类型安全语言需要代码里值的类型非常明确.如果你的代码中有部分值需要String类型,你就不能错误地传递Int. 鉴于 ...
- Swift语言指南(五)--数字字面量和数字类型转换
原文:Swift语言指南(五)--数字字面量和数字类型转换 数字字面量 整数字面量写法如下: · 十进制数,无前缀 · 二进制数,以 0b 为前缀 · 八进制数,以 0o 为前缀 · 十六进制数,以 ...
- Swift语言指南(六)--可选值
原文:Swift语言指南(六)--可选值 在值可能不存在的情况下使用可选值(optional), 可选值是: · 存在一个值,这个值等于 x 或 · 不存在任何值 注: 在 C 和 Objective ...
- Swift语言指南(二)--语言基础之注释和分号
原文:Swift语言指南(二)--语言基础之注释和分号 注释 通过注释向自己的代码中注入不可执行的文本,作为你自己的笔记或提示.Swift编译器运行时会忽略注释. Swift的注释与C语言极其相似,单 ...
- Swift语言指南(三)--语言基础之整数和浮点数
原文:Swift语言指南(三)--语言基础之整数和浮点数 整数 整数指没有小数的整数,如42,-23.整数可以是有符号的(正数,零,负数),也可以是无符号的(正数,零). Swift提供了8,16,3 ...
- Swift语言指南(一)--语言基础之常量和变量
原文:Swift语言指南(一)--语言基础之常量和变量 Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swif ...
- Swift语言指南(八)--语言基础之元组
原文:Swift语言指南(八)--语言基础之元组 元组 元组(Tuples)将多个值组合为一个复合值.元组内的值可以是任何类型,各个元素不需要为相同类型(各个元素之间类型独立,互不干扰--Joe.Hu ...
- Swift语言指南(九)--基本运算符
原文:Swift语言指南(九)--基本运算符 运算符(operator)是用来检查,改变或合并值的一种特殊符号或短语.例如,加号运算符让两个数字相加(如:let i = 1 + 2),还有些更复杂的运 ...
随机推荐
- mysql不同版本号之间的一些区别
5.1.69-community和5.6.26-log版本相比,有一些语法不支持,如: datetime(3),CURRENT_TIMESTAMP(3)
- HDU HDU1558 Segment set(并查集+判断线段相交)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1558 解题报告:首先如果两条线段有交点的话,这两条线段在一个集合内,如果a跟b在一个集合内,b跟c在一 ...
- HDU 4941 Magical Forest(map映射+二分查找)杭电多校训练赛第七场1007
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4941 解题报告:给你一个n*m的矩阵,矩阵的一些方格中有水果,每个水果有一个能量值,现在有三种操作,第 ...
- Win7 x64bit安装Oracle10g
解决方案: 步骤一:在解压出的oracle文件夹中搜索refhost.xml文件,搜索结果出现2条符合条件文件,这两个文件均需要修改. 打开文件发现内容中有包含...5.0 6.0等系统说明, ...
- JavaScript中的跨域
跨域是什么 跨域就是指从一个域名的网页去请求另一个域名的资源,因为JavaScript同源策略的限制,资源无法获取.比如从www.baidu.com 页面去请求 www.google.com 的资源, ...
- word20161129
1. nested 英[nestɪd]美[nestɪd]adj. 嵌套的;v. 筑巢( nest的过去式和过去分词 );[例句]In the makeGrades method I use a cod ...
- Opencv SkinOtsu皮肤检测
void SkinRGB(IplImage* rgb, IplImage* _dst) { assert(rgb->nChannels == && _dst->nChann ...
- Java 数据库操作之Dao类
package Dao; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; imp ...
- java抓取快递100信息接口
package zeze; import java.io.IOException; import org.json.JSONArray; import org.json.JSONException; ...
- C# 基于json通讯中的中文的处理
如果通讯中产生了\\u4e00-\\u9fa5范围的中文的unicode代码,而不是\u4e00-\u9fa5范围的,那么c#的处理就比较麻烦了. 破解方法: 机制 它会把\\u4e00拆成部分来识别 ...