Swift语言指南(1)

Swift语言指南

这份指南汇集了Swift语言主流学习资源,并以开发者的视角整理编排。

GitHub: ipader/SwiftGuide | 网站:http://dev.swiftguide.cn | 欢迎开发者一起维护,或反馈/投稿

想了解关于该指南及 Swift 更多信息的同学,可以阅读短文《致 Swift 开发者》。 想快速找到优秀开源项目的开发者,可以访问我们额外整理的《Swift 开源项目精选》。

@SwiftLanguage 更新于 2015-2-8,更新内容详见《2015-2-8收录周报》

目录

  • Swift文档
    • Welcome to Swift
    • Swift Programming Language(中译)
    • Using Swift with Cocoa and Objective-C(中译)
    • App Extension Programming Guide(中译)
    • Swift Blog - Apple Developer(中译)
    • iOS Human Interface Guidelines(中译)
  • Swift教程
    • 官方教程
    • 快速入门
    • 教程精选
    • 开发技巧
    • 相关文档
  • Swift项目
    • 类库
    • 示例项目
    • 完整项目
    • 项目评测
  • Swift网站
  • 相关工具
  • 开放平台
    • 文档
    • 示例项目
    • 实用资源
  • Apple Watch指南
    • 文档
      • WatchKit Programming Guide(中译)
      • Apple Watch Human Interface Guidelines(中译)
    • Watch教程
      • 快速入门
      • 教程精选
    • Watch项目
    • 媒体文章
  • 其它相关

Swift文档

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 小岂子)

  • Basic Operators - Nil Coalescing Operator解读

    1. Swift中Nil Coalescing运算符的使用技巧 By @DevTalking
    2. Swift’s Nil Coalescing Operator In Xcode 6 Beta 5 By Jameson Quave
  • Swift 编程风格指南(译文来自 swiftist.org): 本风格指南的目标是让Swift代码更简洁、可读更强。 原文:《The Official raywenderlich.com Swift Style Guide》

  • 《The Swift Programming Language》读簿: "读书就是要取其精华,去其糟粕、无用、简单和已知的内容。By @Hawstein"。站在作者自己的理解能力上,应该是一份很好的去繁求简读薄。不过,每个初学者基础不同,理解能力也千差万别。因此,对于浓缩版,当有不理解时,应该对照原版章节再进一步细读,千万不能蒙混。

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. Swift Blog - Apple Developer

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

译文 译者 原文
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
WWDC2014大会中的Playground大炮气球示例 - Balloons
在Swift中构建布尔类型 - Boolean
Swift中的文件和初始化 - Files and Initialization
在Swift中使用C语言的指针 - Interacting with C Pointers
*Swift新特性 -- 访问控制(文档版) - Access Control

6. iOS Human Interface Guidelines

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

  • 非官方中译版

    译文 | 译者 | 原文
    ------------ | ------------- | -------------
    UI设计基础 |@腾讯ISUX| Designing for iOS
    设计策略 | - | Design Principles

  • iOS 7人机交互指南(旧版):中译汇总


Swift教程

1. 官方教程

  • Swift入门(视频翻译 By @赵哲A): A001.01, A001.02, A001.03, A001.04: WWDC 2014官方Session 402视频翻译。讲得很细致,口齿清晰,英语发音准确,声音非常好听。
  • Swift进阶(视频翻译 By @赵哲A): A002.01, A002.02, A002.03, A002.04, A002.05 WWDC 2014官方Session 403视频翻译。
  • Testing with Xcode: 本文的目的在于让测试成为你软件开发的重要组成部分,并使测试更方便并易于使用。

2. 快速入门

  • Swift Cheat Sheet(PDF): 形式以代码先行,极简、有效地Swift语言快速学习指南。另一个更新版本:iOS8 Swift Cheat Sheet and Quick Reference Guide
  • An Absolute Beginner’s Guide to Swift: 相对于Swift Cheat Sheet带了不少说明,但整个文档不显啰嗦,可读性强
  • Swift Language FAQ: Raywenderlich的Swift语言FAQ说清楚了很多问题。这份FAQ确实浅显易读,初学者不可或缺好文章!
  • Strings in Swift:了解使用String的更高级技巧(尤其在Unicode的使用上)。文章中作者附上了示列代码在Playground项目中,似乎Swift开发者们已经慢慢地习惯了结合playground讲授Swift使用小技巧及语言特性。
  • 与其它语言对比表:
    C vs. Go vs. Swift,
    C# vs. Swift,
    Scala vs. Swift,
    Go vs. Swift
  • iOS 8应用程序扩展开发技巧:比较全面的概括了iOS扩展开发小技巧。By @星夜暮晨 原文iOS 8 App Extension Development Tips
  • Objective-C开发者对Swift亮点的点评: 这篇译文确实不错,含括了常见的亮点。尽管对于Swift相较于Objective C的亮点描述还不够全面,对初学者很受用。原文在此
  • 开启iOS/Mac开发之旅,过来人告诉你16件事 (译文来自@CocoaChina):"我曾向iOS开发者推荐了《Twitter上最值得关注的30个人》,收到了不少开发者的反馈,受此鼓舞,我向知名iOS开发者和设计师询问了这样一个问题--回到你开始iOS/Mac app开发的时候,你以现在的角度会给“最初的你”哪些建议。" 译文来自,英文原文《13 Things You Must Know When Starting Out in iOS/Mac Development》
  • 74个Swift标准库 (译文): Swift包含了74个内置函数,但在The Swift Programming Langage一书中只介绍了其中的7个,其它的都没有在文档中体现。"文中作者没有提及他是如何发现这么多未在文档中体现的内置函数的,估计是反编译的结果。我测试了好多个都能用,而且Xcode还会给出语法提示:)" by @李洁信
  • ochococo/Design-Patterns-In-Swift:这个项目分享了Swift编程中如何使用常用设计模式。作者提供的Playground示例及常用设计模式的简单介绍。
  • 马上着手开发 iOS 应用程序 (Start Developing iOS Apps Today): 来自苹果官方文档
  • NSHipster - WKWeb​View:"WKWebView 是现代 WebKit API 在 iOS 8 和 OS X Yosemite 应用中的核心部分。它代替了 UIKit 中的 UIWebView 和 AppKit 中的 WebView,提供了统一的跨双平台 API。" 作者:Mattt Thompson
  • Core Location in i​OS 8:有关iOS 8核心位置服务介绍。文章从权限、室内位置跟踪、CLVisit等角度做了较全面的介绍。
  • NSHipster - Apple Pay:继上一期WatchKit后,本期NSHipster专栏给了Apple Pay。分别从以下几个主题阐述:1. 获得商户ID;2. 开发第一个收费程序;3. PKPaymentAuthorizationViewControllerDelegate;4. 动态的物流方式及定价。

3. 教程精选

  • 中译精选

    译文 | 译者 |原文 | 来源
    ------------ | ------------ | ------------- | -------------
    Swift自适应布局(Adaptive Layout)教程(一)|@DevTalking|Beginning Adaptive Layout Tutorial|raywenderlich
    如何使用iOS 8的虚化效果|@CocoaChina|iOS 8 Visual Effects Tutorial|raywenderlich
    Web工程师和设计师必须要知道的iOS 8的十个变化|@罗罗磊磊|iOS 8 and iPhone 6 for web developers and designers: next evolution for Safari and native webapps|mobilexweb
    如何在Swift中创建Action扩展|@DevTalking|Action Extension in Swift|nsnerd.co
    iOS8 Day-by-Day :: Day2 :: 分享应用扩展|@DevTalking|iOS8 Day-by-Day :: Day 2 :: Sharing Extension|shinobicontrols
    Swift 的强大之处|李子轩|The Power of Swift|objc.io
    结构体和值类型|@Onetaway|A Warm Welcome to Structs and Value Types|objc.io
    Swift方法的多面性|@唯木念|The Many Faces of Swift Functions|objc.io
    Swift 的函数式 API|@请叫我汪二|Functional APIs with Swift|objc.io
    Playground快速原型制|Programmer.Du|Rapid Prototyping in Swift Playgrounds|objc.io
    在Swift中自定义下标|@DevTalking|Custom Subscripts in Swift|codingexplorer
    如何用 Swift 语言构建一个自定控件|@BeyondVincent| How To Make a Custom Control in Swift | raywenderlich|
    UIKit重力学(一, 二) |@DevTalking| UIKit Dynamics Tutorial in Swift |raywenderlich
    Swift中的延迟加载|@Swiftist|Lazy Initialization with Swift|mikebuss
    The Swift Programming Language: 实验项目相关解决方案|@CocoaChina|The Swift Programming Language: Solutions to Experiments|swiftcast.tv

  • S008 - iOS 应用基础: 教程对于最基础的UI编程讲得特别细,时有反复强调Swift基础特性。个人感觉这个适合无iOS UI编程经验的同学,甚至也适合无Swift基础的同学。By @赵哲A

  • Getting Your App Ready for iOS 8:让你的应用程序适配iOS 8,这篇文章总结的比较完整。 By @Janselz

  • VectorPDFSupportTest:"Xcode 6 支持 vector PDF 来支持多尺寸的图片,虽然是伪矢量图,但我还是写了点东西来把这东西说清楚。" By @你全家都快到碗里来

  • nettlep/learn-swift: 学习《Swift Programming Language》的同时,配合运行这些playgrounds,对于快速掌握Swift最合适不过了.

  • Swift Reference Playground/Swift Operators Playground: "Swift Reference is a handy playground file that can be used when you are starting to learn swift.It covers the basic syntax definitions and different ways to use" 初学Swift语言的同学一定先玩玩这个,可以让您更快感性的了解Swift语言语法、操作符及语言新特点(代码涵盖地比较完整)。

  • ShinobiControls/iOS8-day-by-day:追剧iOS 8开发,文章几乎篇篇带示例项目。iOS 8开发者进阶必备!

  • Alamofire - 1. 基础教程,2. 进阶教程(译者:@星夜暮晨):Alamofire项目是Mattt Thompson为其著名的AFNetworking采用Swift语言重写的网络基础库开源项目。中译教程原文来自 Ray Wenderlich - 1. Beginning Alamofire Tutorial, 2. Intermediate Alamofire Tutorial

  • VirtualGS教程 (By @林泰前): 几十年的老程序员,资深的iOS开发工程师,把自己儿子培养成苹果应用商店最年少的应用开发者,哪里能找到这样优质的编程老师? 教程包括《How to》系列连载和《图形编程》示例项目

  • Swift Weather APP:“林永坚老师将带领大家使用Swift语言开发一个完整的天气 iOS APP。同时大家能够学习到Interface Builder、CocoaPods、Core Location、AFNetworking的使用,以及如何通过Swift调用Objective-C组件”

  • 使用Swift开发iOS8 App实战 :实战学习是最有效的编程学习方法,推荐@林永坚老师的实战视频。教程代码:1.ChineseZodiac, 2. LoveFinder, 3. BeautyGallery

  • Developing iOS 8 Apps Using Swift (I) – Animations, Audio, and Custom Table View Cells: "这个教程大概7篇blog,一步步讲解了一个『itunes music search app』的制作对于async http, api delegate, 异步图片,动画,代码分层,interface builder都做了清晰的介绍。" By gaohailang

  • Replicating Twitter’s bird zoom startup animation (in Swift!) (源代码): 这是一个有关用Swift开发简单动画效果的编程示例,示例开发灵感来源于近期的Twitter iOS版小鸟启动动画。

  • WWDC2014 详解OSX/iOS8/Swift语言: "极客学院全国首发课程,详解OSX/iOS8新特性/崭新编程语言Swift!极客学院团队通宵录制、上传,只为在这一刻把最新最实战的课程呈现给开发者"

  • 从零开始学Swift计时器App开发(源代码): "通过完成此教程,我对Swift语言的理解也更进了一步。Swift是一门全新的语言,作为开发者,我们需要不断加深对这门语言的理解,并灵活使用语言提供的特性来编程。..." by @李洁信

  • 如何用Swift写UIDynamic:如何用Swift写UIDynamic。代码虽短,功能性完整。可读性也很赞!By @戴铭

  • Swift如何检查系统版本:介绍使用Swift语言检测操作系统版本的方法。 译者:@pockry 原文:Swift System Version Checking 作者:Mattt Thompson

  • How to build a nice Hamburger Button: 小小的按钮,无论在设计上,还是代码上,都进行了精雕细琢。期待作者能尽早发布更完整的Hamburger Buttons. 源码:robb/hamburger-button

  • Hamburger Button Animation: 又一个实用的Hamburger Button。另外,看了作者的博客,感觉他对iOS Animation编程非常有经验,强烈推荐关注。源码:fastred/HamburgerButton

  • 在Playground中添加说明文档:教你如何在Playground中添加说明文档。By @DevTalking

  • 使用 Swift 和 AVOSCloud 构建 iOS 应用:"使用 AVOSCloud SDK 和 Swift 构建 iOS 应用 | AVOS Cloud Blog" By @AVOS江宏 | 这就是业界的速度,先机才是致胜法宝。

  • 为iPhone6设计自适应布局(一、二) :"当你们学习完这篇文章后,你们应该会比较自如的使用 storyboard、constaints、size classes 这三个Apple在Xcode里提供的工具,去探索和构建巧妙的自适应布局。" 译者:@DevTalking 原文:ADAPTIVE LAYOUTS FOR iPHONE 6

  • iOS App集成Apple Pay教程:"Apple Pay还给开发者带来了处理支付的新渠道,用户将期望在应用中使用它,因为它将验证和交易极端简化,仅需手指轻轻一触即可完成。如果应用里面有涉及到交易,开发者很有必要集成Apple Pay。那么如何将Apple Pay功能集成到你的应用里呢?" 可惜Demo是Objective-C版本的。 译者:@pockry 原文:Integrating Your iOS App with Apple Pay

  • WWDC 2014 Session笔记 - 可视化开发,IB 的新时代:"通过一个简单例子介绍了 Xcode 6 的 IB 中自定义 view 的基本使用。" 作者:@onevcat

  • 传感器框架(CMDeviceMotion):一篇关于CMDevice​Motion类解读及使用方法的文章。对于iPhone三轴陀螺仪和加速感应器,以及M7/M8协处理器,核心运动框架(The Core Motion framework)提供了完整的API支持。然而文章更重要的意义是启发开发者重视感应器,并结合场景开发新颖好玩的应用。原文:CMDeviceMotion

  • 如何在Swift中运用Text Kit框架(一,二): “现在iOS8发布了,在文本渲染方面在延续了之前强大功能的基础上,又提升了其易用性。” 译者:@DevTalking 原文:Text Kit Tutorial in Swift

  • Swift中的函数柯里化(Function Currying):柯里化提供了强大的动态函数创建方法,也是动态语言重要组成部分。译文有关柯里化使用方法及应用场景讲解的很清楚。"Swift的各种特性已经被很多人研究过,但有一个特性只有较少人提及,那就是函数柯里化。本文将试图覆盖柯里化函数的基本知识点和一些可能的使用场景,希望对你了解Swift中的函数柯里化有所帮助。" 译者:@pockry 原文:《Swift Function Currying》

  • 使用 Swift 构建自定义(且“可设计”的)控件:"使用 Swift 构建自定义(且“可设计”的)控件。喜欢别人发布的自定义控件?那设计并实现自定义控件需要几步呢?只要三步。读了本教程,你就可以实现任何你想要的自定义控件。" 译者:@nixzhu,原文How to building a custom and designabl control in swift

  • UIPrint​Interaction​Controller:文章介绍了如何格式化打印内容及相关打印定制技巧或控制技术。或许,在如今移动及数子化时代,打印已经被许多人所忽视。无论如何,对于传统行业,需求仍然是切实存在的,因此,这是一篇难得好文章。

  • 在iOS 8 SDK中使用Touch ID API - Part I, Part II:译文详述了如何在一款笔记编辑应用程序中集成iOS 8 SDK中Touch ID API,包括上下两个部分,在开发过程中使用了Swift语言。

  • Core Data 版本迁移经验总结:版本升级是必备经验。文章或许还不够全面,但都是作者点滴经验,非常难得。对于进阶开发的同学文档《Core Data Model Versioning and Data Migration Programming Guide》是必读的,参考文章《自定义 Core Data 迁移》也值得收录。作者:@Chun_iOS

  • objc.io - Games专题(译文):对于致力于游戏开发的同学,相信本专题就是年前最大的福利了。而对于未开始游戏开发或其它领域开发的同学,这个专题所涵盖的人机交互设计,GPU编程,基于OpenGL的3D图形及动画编程,高效多点互联编程,多媒体音效编程同样是不可多得的学习盛宴。

  • Introduction To SceneKit(Part I, Part 2): 从最简单的示例引导式介绍SceneKit的使用及更高级功能编程实战。这是一篇非常用心、专业的SceneKit教程。P.S. SceneKit是官方提供给开发者编写3D游戏及3D互动应用功能强大的编程框架及类库。By WeHeartSwift.com

  • NSHipster - NSUndo​Manager:本文分别结合Swift/Objective-C代码示例讲解UndoManager的使用。

  • 怎样在Xcode 6中使用矢量图形:"苹果在Xcode 6当中给我们带来了一些很棒的工具用以管理图形资源,它们可以帮我们从容的应对未来的iOS设备,例如基于PDF图形文件自动生成各种规格的图片资源..." 来源:@BeForWeb 译者: @C7210 原文:Using Vector Images in Xcode 6

  • 5 Can’t-Miss Lessons from the Functional Swift Conference:娜塔莎博主继续不遗余力的推荐的函数式编程。

  • Mattt Thompson - Cocoa之死:"Cocoa,作为一个包含大多数工作在Objective-C语言上必要的基本库的集合,和CoreData,已经成为了Objective-C的事实标准。而Cocoa Touch基本上就是用UIKit更换掉AppKit的Cocoa,而且它也经常用来和Cocoa放在一起,来指代在iOS上的工作的系统框架。" 来源:@CocoaChina,译者:xiaoying,原文:The Death of Cocoa

  • Mattt Thompson - 新年之际,盘点一些APP开发技巧:盘点了来自不同开发者的编程技巧或 Tips,相比以往 Mattt 文章,本文内容或许略显琐碎,不过,做为学习参考,尤其还能发现几位有经验iOS开发者还是很值得的。原文:Reader Submissions - New Year's 2015,作者:Mattt Thompson,译者:培子,校对蓝魂

  • iOS 8 Handoff 开发指南:“本文通过一个包含不同功能的联系人示例工程详细讲述了如何进行 Handoff 开发,以及需要注意的地方。” 译者@_HuaQiao),原文:Working with Handoff in iOS 8

  • 在iOS8创建一个交互性强的本地通知:“iOS 8里,通知加入了新特性。开发者可以指定用户可触发的具体的动作(actions),而且甚至不用启动App也可以处理这个通知。本文详细讲解了如何开发一个互动性强的本地通知,带示例项目。” 原文:Creating Interactive Local Notifications in iOS 8 。为方便同学们实验使用,译者 @iBenjamin_Go 还将 DropBox 上的示例移至GitHub: ShoppingAlertFinal

  • AppCoda - 理解 iOS 8 中的 Photo Editing Extension:“我们一起来看看怎样制作一个 Photo Editing Extension。由于我们的关注点在创建应用程序扩展而不是写一个完整的应用,我已经创建了一个你们可以下载并且一路跟着做的上手项目”。原文:Understanding Photo Editing Extensions in iOS 8,作者:Joyce Echessa,译者:@X140Yu

  • NSHipster - Java​Script​Core 中译文(原文):文章介绍了在 Swift 中使用 Javascript 的方法和技巧,它对于 iOS 和 Web 应用工程师有两料价值。作者 Nate Cook 是一位独立的 Web 应用开发者及非常活跃的 Swift 博主。前些日子,他还创建了一个自动生成的 Swift 在线文档网站 SwiftDoc.org

  • Swift 云编程功能:“学Swift语言一定需要苹果设备或者虚拟机吗?NO,现在只要浏览器就可以练习Swift啦。看小编用Swift语言在线输出"Hello,World",是不是很神奇?”

  • Stanford 公开课 - Developing iOS 8 Apps with Swift(字幕翻译组):“Stanford 的 iOS 8 公开课在近日发布了。寻找一些想提高自己,愿意为大家做贡献的同学一起翻译字幕。有意向可以加入 QQ 群:277542197。即使英语不好,也有需要你来完成的任务。”

  • 怎样更优雅地处理网络返回数据:“我写了新文章《Swift--怎样更优雅地处理网络返回数据》( 分享自 @ ) 竟然第一次写技术文章,想想都忏愧……希望以后能坚持下去……” 作者:@日光镇 | P.S. 站在解决问题的角度,步骤清晰,目标明确。一次很好的开始。

4. 开发技巧

  • Problems With Building a Today Extension in iOS 8:构建Today扩展时可能碰到的一些问题。
  • 开发Yosemite几个小技巧: "Apple 终于发布了 Xcode 6.1,带来了 Swift for OSX 等多个更新, 这几天我简单研究了下在 Yosemite 下实现一些新的小需求的方法, 这里使用 Swift 语言描述总结一下。" 作者:@diumoo
  • 详解UICoordinateSpace和UIScreen在iOS 8上的坐标问题:今天在整理AutoLayout API时,发现了一个关于UIScreen 坐标的坑。作者:@pockry
  • 我在开发第一个Swift App过程中学到的四件事:"本文翻译自raywenderlich.com,作者Greg Heo,是Razeware(Ray创办的公司)的员工,这是他为讲授iOS 8 App Extensions视频教程而实际使用Swift开发了一款App的经验,来看看他的心得体验。" 译者:@pockry
  • LTBouncyPlaceholder代码解读: "我希望你已经下载了 LTBouncyPlaceholder 的 Demo ,用 Xcode 6 打开并编译、运行,然后在界面中显示的几个 UITextField 里输入一些文字来体验这个扩展。看到 Placeholder 的动画了吗?" By nixzhu
  • Swift中下划线的妙用: "在Swift中,下划线有很多妙用,这里将已经看到的妙用进行总结,希望可以帮助更多学习Swift的朋友。..." By @twlkyao
  • WWDC14 Session 402 学习笔记 By @糖炒小虾_txx
  • Swift与Objective-C混编高级教程之混编框架的创建和调用
  • SwiftSingleton: 三种方法介绍了Swift中Singleton的写法
  • Don’t Miss These Navigation Bar Interactions in iOS8:iOS8新方法,像Safari那样滑动时自动隐藏navigation。
  • Beginning iOS 8 Programming with Swift 读书笔记:点滴都是经验,也是日日夜夜与汗水的交织。好笔记!作者:@荧星诉语
  • 为大屏手机而设计:用了一个简单例子讲解了大屏手机基本的可操作性。总之,无论屏幕有多大,轻易放弃单手操作是不明智的。
  • ochococo/Design-Patterns-In-Swift:列举了很多用Swift实现的程序设计模式。
  • 用Swift的函数式编程解决硬币问题:作者的算法实现简单又巧妙,关键是充分利用到了Swift语法的精妙之处。项目:ijoshsmith/break-a-dollar。"要破开一美元的方法一共有293种之多。也就是说,如果有人给你一美元换零钱,你可以给他293种不同的硬币组合。第二天,我开始思考如何编写代码来破开任意数量的金钱,本文总结了解开这个谜题的两种实现方式。" 译者:@pockry)
  • 盘点开发者最喜爱的Swift技巧:文章首推Natasha The Robot博主Natasha Murashev独门Swift秘籍,还有objc.io博主Chris Eidhof着力推荐的独具特色的Swift版Quicksort,还有... 还是请同学们细细品读文章吧。译者:@唐门教主,原文:Favorite Swift Tips & Tricks of 2014
  • iOS二维码扫描,你需要注意的两件事:相对于ZBar或ZXing,AVFoundation无论在扫描灵敏度和性能上来说都是最优的,所以毫无疑问我们应该切换到AVFoundation,需要兼容IOS6或之前的版本可以用zbar或zxing代替。
  • Swift90Days - iOS 中的设计模式 (Swift 版本) 1/2:文章基于开发应用潜在使用到的设计模式进行论述,与实战结合可以让学习者印象深刻。当然,还可以结合另一个更直接介绍设计模式开源项目 Design-Patterns-In-Swift 进行学习。纠正:严格的说,作者将MVC归到设计模式内并不合适,它是更上层的框架结构。原文:Introducing iOS Design Patterns in Swift – Part 1/2 ,译者:@请叫我汪二
  • Mutating Functions in Swift Structs :Mutating Functions(变异方法)在结构中应用的简明教程。当然,如何需要进一步了解Swift语言中「方法」的特性,可以直接参考『Swift语言编程 - 方法』章节介绍

5. 相关文档

  • WWDC 2014
    • WWDC 2014发布会(带中文字幕): 有关Swift语言演讲部分从103:54开始,首先苹果iOS/OS X及公共平台负责人克雷格·费德里吉(Craig Federighi)针对Xcode及Objective C的简要回顾,克里斯·拉特纳(Chris Lattner)上台做Swift语言演示从107:15开始。
    • WWDC 2014 Videos: 需要苹果开发者帐号才能观看。
    • WWDC 2014 PDFs: 107个PDF压缩包 By @清醒疯子
  • Chris Lattner (译文:Swift 编程语言首席架构师): "Chris Lattner(1978年出生)是 LLVM 项目的主要发起人与作者之一,Clang 编译器的作者。他现在是苹果公司『开发者工具』部门的主管,领导 Xcode、Instruments 和 编译器团队,从 2010 年 7 月开始主导" By 伯乐在线
  • 关于Swift,开发者最需要了解的7个方面 (英文原文): 简明扼要的阐述了Swift语言的几个重要特点
  • 程序员眼中的苹果Swift语言:简单 易学 高效:“以下是记者准备的七个问题,涉及Swift的优点、缺点。以及Objective-C的结局。索菲斯的答案中有些会有点骇人、令人震惊,或许还有几丝伤感。“ 相关参考:知乎《如何评价 Swift 语言?》
  • 行走于 Swift 的世界中: 总结了一下近一周以来的一些觉得这个语言里有意思的地方。By @onevcat
  • 和Swift亲密接触的这半个月:虽然学习能力及基础不同,但这样的学习体会及认识,至少能带给初学爱好者以启发![转发] "未来 Swift 会发展的怎么样我无法预言,我是肯定会怀念这段时间和世界人民一起为 Swift 疯狂的日子的。" By @图拉鼎
  • 我不懂 Swift 语言: 能听到不同的声音是非常有益的,何况作者有些观点很有建设性。比如:"Swift 仍旧在改变,它是 beta 版本,所以它肯定是能够改变的。要知道如果你在它是 beta 版的时候还不提出问题,那么如果你可能会需要很久时间才能让它进行改进。"
  • 从Objective-C到Swift: "Swift背后的概念大多与Objective-C类似,但更为简洁、自然,也吸收了很多其他语言的语法。本文将对Swift的语法、特点及改进进行全面介绍。" By 黄兢成
  • Swift の 函数式编程: "Swift 相比原先的 Objective-C 最重要的优点之一,就是对函数式编程提供了更好的支持。 Swift 提供了更多的语法糖和一些新特性来增强函数式编程的能力,本文就在这方面进行一些讨论。" By @diumoo
  • iOS界面开发的大一统: "简单介绍了下 Size Classes 和 UIPresentationController 的内容。" By @onevcat
  • MVVM 介绍(译者: @nixzhu,原文:Introduction to MVVM): MVVM相较于MVC未必更轻量化,不过它达成了View Controller的轻量化。界面层逻辑(View Model)的抽象,不仅有利于理清View/Controller逻辑的粘连不清,对于单元测度也更容易了。
  • Top 5 iOS 7 Animations: iOS 7 排名前5的动画效果预览。谁能解读一下到这些动画效果对应的程序库、或找到对应或相近开源代码分享吗?(Swift版本更佳,OBJC也可以)
    • IFTTT/JazzHands: Flickr开始界面动画类似效果,OBJC版本实现程序库。
  • An analysis of sorts between Objective-C and Swift:"Swift 到底比 Objective-C 快多少?结论是:6倍以上(仅排序测试) 。 这里有为什么快的原因" By @图拉鼎
  • iPhone 6 屏幕揭秘(译者:@小雪-Joanna):关于iPhone6屏幕渲染的归纳。建议新手脑补一下这部分知识。原文:iPhone 6 Screens Demystified
  • 10 Swift IOS open-source projects you cannot ignore:10大不能错过的#Swift#开源项目。P.S. 本指南都有收录。
  • iPhone6 & 6 Plus 尽寸适配说明
    • iPhone6 & 6 Plus 视觉设计适配说明 作者:@英小俊
    • iPhone6和iPhone6 plus的iOS8设计尺寸参考指南 作者:@芒果道长
  • iOS 5+ 设备一览:作者的意图是通过这样一张直观的图,指导选择相对合理的设备组合进行开发和测试。PDF版本
  • SwiftDoc.org:自动生成的 Swift 在线文档。
  • 超越Objective-C,超越Swift:很有趣的作者,除了对Swift有比较专业地概括式理解,还从应用的纬度对新语言提出了自己的要求。比如:自动持久化,自动RESTful API,有表现力的触发器和响应,所见即所得的UI编辑等。译者:@pockry 原文:Beyond Objective-C, Beyond Swift
  • Some ideas for projects in Swift: “正在造轮子的不妨看看~” By Chris Eidhof(creator of objc.io)
  • 设计师+Xcode:突破产品开发的流程界线:原文作者做为视觉设计师,讲述了采用Interface Builder和Storyboard与开发小组协同工作的故事。虽然只是一个4人小团队,但清晰的分工协作,使项目有序高效进展。Xcode也让视觉设计师及UX设计师有机会分担部分前端开发工作。来源:@BeForWeb 译者: @C7210 原文: Blurring the lines between design and code
  • iOS设计指南(译者:shengbanx):非官方文档,不过原文《The iOS Design Guidelines》遵循并基于《iOS Human Interface Guidelines》进行解读介绍。非常值得收藏。原作者Ivo Mynttinen,是一位来自德国的年轻UI设计师。其个人博客网站也值得同学们收录:ivomynttinen.com
  • Natasha The Robot - Holiday Reading: Functional Programming: http://t.cn/RzsyLqS : 考虑到在写Swift代码时,越来越多的使用函数式编程思想,圣诞节期间,娜塔莎网站特意精选了一份可以更深入理解函数式编程的阅读书单。书单主要以有函数式编程语言著称的Haskel为主要参考。
  • IBM Design Language:"Living Language
    A shared vocabulary for design。Explore the guidelines for making delightful products and enlightening experiences."
  • 怎样从Sketch向Xcode自动导出图形资源:"App设计开发的整个流程中会包含很多重复性的工作,例如在Sketch当中修改设计,重新导出,然后将更新后的图形资源移入Xcode,并再次运行项目以查看实际效果。而通过SketchTool配合Xcode,这些都可以自动化完成..." 来源:@BeForWeb 译者: @C7210 原文: Automatically Exporting Assets from Sketch into Xcode
  • 怎样在Xcode 6中使用矢量图形:"苹果在Xcode 6当中给我们带来了一些很棒的工具用以管理图形资源,它们可以帮我们从容的应对未来的iOS设备,例如基于PDF图形文件自动生成各种规格的图片资源..." 来源:@BeForWeb 译者: @C7210 原文:Using Vector Images in Xcode 6
  • 为什么 iOS 开发不需要 Storyboard(译者:@pockry,原文:The Story of no Storyboard in iOS Development):对于资深开发者或有代码"洁癖者",storyboard 或许会使其代码及配置相对臃肿或不必要的麻烦。即便如此,仍有使用程度及是否用好的问题。而对于大多数开发者,storyboard对于快速开发所带来直接的价值不可抹灭。以及另一故事《设计师+Xcode:突破产品开发的流程界线》对于团队协同开发带来的积极影响。
  • 致 Swift 开发者:“自 2014 年 6 月苹果发布 Swift 以来,本微博通过跟踪、归纳、汇总持续更新《Swift 语言指南》已经半年有余。由于个人力量绵薄,充其量它能让初学者快速索引到有用学习资源,而对于 Swift 进阶开发者,显然是远远不够的...”
  • Swift开源项目精选:“站在个人的角度,将2014年Swift开源项目做了一个甄别、筛选。当然,由于个人能力及涉足范围所限,还远远不够,其中肯定有偏颇及不足,还望同学们多多见谅。更希望能得到你帮助和补充,共同参与。”
  • objc.io - Infinite Things to Learn:通过这篇访谈,你可以了解 natashatherobot.com 博主娜塔莎同学 iOS 学习及"星"路历程。因为有她的不断的学习、分享,无限的开发兴趣,才让我们发现这个与 Swift 同步成长的优秀 Swift 教程类博客网站。
  • 王巍访谈:关于 Swift 学习和 AppleWatch 开发的一些建议:“本期采访对象 @onevcat ,圈儿内人称喵神,知名 iOS/Unity 开发者。喵神是 objc 中国项目发起人,开源过广受开发者喜爱的 Xcode 插件 VVDocumenter 。本期喵神主要跟我们分享关于 Swift 学习和 AppleWatch 开发的一些看法。” By @CocoaChina
  • #objc中国# - Issue 20:三位传奇开发者的访谈,很有意思。天才少年 Andy Matuschak 《终身学习的一代人》 两次创业 Loren Brichter 《让东西变得不那么糟》 以及前 FBI 的俄国妹子 Natasha Murashev 学无止境。简直篇篇精彩”。对于学习 Swift 语言的同学们,个人认为 Natasha Murashev 的访谈故事最应景,也最励志了。
  • Apple Watch 对苹果意味着什么?:作者详述了从 iPhone 的形式追随功能设计向  Watch 形式至上功能紧跟的设计转变;产品设计语言向圆润及曲面化发展,巧妙融入榫卯式连接;吐槽 Digital Crown 又赞赏了 Force Touch 里程碑意义,吐槽图标过密又赞赏三维位移UI; 展望了互联网金融、智能生活及健康医疗的可能性。
  • “设计”是思考的过程,而非光鲜的结果:译文简述了产品设计的定义,以及它在产品研发过程中的意义。“设计流程,是彻底思考清楚一些事物的流程,这个流程才叫做“设计”;在这个流程的末端,就是那些实际可见的蕴含着思考产物的“副产品”。” 来源:@BeForWeb 译者: @C7210 原文:The one thing nobody designs
  • 提前关于 React Native 的一些介绍:“Hacker News 上有人稍微描述了下, 我给翻译了一下. 简单说就是这项技术对于浏览器来说推进了一大步, 但是别期待太高, 只是个开发方案而已. 分享自 @SegmentFault”。作者:@题叶 | P.S. 若能再找到一份有关 React Native 性能、资源占用、耗能方面的评测文章,就更完美了。
  • OS X 10.10 Yosemite: The Ars Technica Review:“看了这篇从 CPU 指令集、编译器来剖析 Swift 的文章,对其的设计越来越肯定了。简单的说,它是一门使用 High Level 语言的语法及特性,同时仍有 Low Level 效能的一门语言。好久没看这么低层的文章了,过瘾!”。来源:@图拉鼎
  • 如何给苹果提交bug或功能需求?:“对于这个问题,好像国内还没有人写过,我觉得随着中国对苹果越来越重要,中国的苹果开发者也有必要站出来,和苹果多多交流沟通,不仅仅是对自己,也对改进中国区的苹果生态圈是有帮助的”。作者:@pockry
  • New Apple Photos app contains ‘UXKit’ framework:“苹果已经移植 UIKit 到 Mac 了,叫做 UXKit,目前仍然未对开发者开放。新版本的 Photo 软件就用 UXKit 编写,相信在 WWDC 会正式推出-到时开发者会有一个接近统一的 iOS/Mac 开发平台。” By @林泰前
  • 让用户在输入密码时看到明文吧:文章分析很全面,论述了各大公司在明文和遮罩间如何找平衡,作者列举了微软、Adobe、Twitter、LinkedIn、PayPal、Amazon 等大公司解决之道,结果是若仍采用密码方式,均非全平台最佳解决方案。最终只有借助 Touch ID (指纹)或其它可识别身份特征才是终极解决之道。

你可能感兴趣的:(Swift语言指南(1))