Thanks to visit codestin.com
Credit goes to github.com

Skip to content

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

Notifications You must be signed in to change notification settings

a1thwn/SwiftGuide

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swift语言指南

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

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

@SwiftLanguage 更新于 2014-11-10,更新内容详见《2014-11-10收录周报》

Swift文档

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

3. Using Swift with Cocoa and Objective-C

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

译文 译者 原文
Swift REPL入门介绍 @pockry Introduction to the Swift REPL
可失败构造器 @DevTalking Failable Initializers
- Building Your First Swift App Video
通过Playground展示一些编码模式 @DevTalking Patterns Playground
Swift中Optional类型的使用案例分析:valuesForKeys @DevTalking Optionals Case Study: valuesForKeys
Swift中的访问控制与protected @DevTalking Access Control and protected
Swift中的值类型和参照类型 @DevTalking Value and Reference Types
WWDC2014大会中的Playground大炮气球示例 @DevTalking Balloons
在Swift中构建布尔类型 @DevTalking Boolean
Swift中的文件和初始化 @DevTalking Files and Initialization
在Swift中使用C语言的指针 @DevTalking Interacting with C Pointers
*Swift新特性 -- 访问控制(文档版) @DevTalking Access Control

6. 快速入门

7. iOS Human Interface Guidelines

8. 相关文档

常用工具

  • 开发工具

    1. Xcode 6 beta下载: 苹果应用集成开发环境。支持C/C++, Objective C, Swift等。不用购买开发者计划,直接下载。
    2. Textmate:Mac OS X上一个可高度自定义的编辑器,尤其在我想做出一个快速改变但又不想等待Xcode加载的时候。该工具目前已经开源
    3. Mou:OS X上一款Markdown的编辑器。非常适用于编写自述文件、变更日志以及其他方面的内容。作者:罗晨
    4. Sublime Text ($):Mac OS X上另一款非常受欢迎的轻量级,可高度自定义的编辑器。
    5. RunSwift:正在犹豫是否入手苹果电脑开始一段Swift编程旅程的同学们,或仅仅为了试验一段简单Swift代码又懒得打开Xcode,可以试试这款Web版Swift编译环境RunSwift。
  • 代码管理

    1. GitHub:声望日盛的资源分享之地。�
    2. GitHub for Mac:一个设计的非常美观的git客户端,不能取代你从命令行获得的所有功能,但使用起来非常简单。
    3. Git:分布式版本控制系统和源码管理系统,其优点是:快和简单易用。对于新手来说,可在此查看免费电子书籍。
  • Xcode插件

    1. CocoaPods:第三方库的管理利器,允许你简单地把第三方库整合进自己的应用中。对我个人来说,我基本上每个项目都使用CocoaPods。
    2. CocoaPods Xcode Plugin:一款Xcode插件,允许你直接从Xcode管理CocoaPod依赖。
    3. onevcat/VVDocumenter-Xcode:快捷注释Xcode插件。By @onevcat
  • 管理工具

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

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

    1. iOS开发工具: "这是我们多篇iOS开发工具系列篇中的一篇,此前的文章比如:那些不能错过的Xcode插件,iOS开发者有价值的工具集,iOS/OS X开发:各种工具快到碗里来!,App原型设计工具使用心得(上)& App原型设计工具使用心得(下),你用哪种工具进行iOS app自动化功能测试?,iOS 开发者必知的 75 个工具" By @CocoaChina

Swift教程

开发技巧


Swift项目

1. 实用类库

以下实用类库仅做为快速参考,更多实用类库需求,可以去这里(Swift toolbox is a community-supported catalog of iOS and OSX libraries) (By Adam Leonard from swiftcast.tv), 这个网站收藏了GitHub开源社区中优质Swift资源库,并提供了分类及查询服务。

  • Mattt Thompson : 著名开源作者,开发了知名的AFNetworking网络库。也是知名开发博客NSHipster网站主。

    类库 | 相关文章 | 备注 ------------ | ------------- | ------------- Alamofire/Alamofire | Alamofire| 网络请求和相关的封装 mattt/Euler | Swift Operators | 这样写是否很数学、很逻辑?∛27÷3±5, ∑[3,1,2], ~0⊻1 mattt/Surge || 基于苹果Accelerate高性能计算框架库,计算效率提升惊人 mattt/Literally|Swift Literal Convertibles| 常用数据类型的使用及转换工具库

  • 工具类

    • Dollar: 尤其在Array和Dictionary的支持上(实现类库仅一个Dollar.swift文件)。用过Javascript版的Lo-Dash或underscore就知道其实用程度。它是一套函数化编程的工具库。另一个类似的更完整的版本是ExSwift,它的实现基于对象化扩展的。
    • ExSwift: 实用类扩展库。另一个Lo-Dash或underscore的Swift版本实现,相对于Dollar.swift,此版本有更完整的API实现。包括了对Array, Int, String, Float, Range, Dictionary, NSArray的扩展及其它实用方法。完全遵循面向对象的扩展原则。
    • lingoer/SwiftyJSON:这是解析JSON字符串封装类。实现功能与Javascript中的JSON.parse相近,使用方便。By @lingoer
    • SwiftyJSON/Alamofire-SwiftyJSON :简单地整合Alamofire和SwiftyJSON后,远程JSON使用方便了。
    • typelift/Basis:这个实用类库支持范围很宽范,封装主要以简化及方便调用系统API为主,使程序代码看上去更优雅。遗憾地是,目前作者并没有提供API文档或示例代码,对于初学者使用会额外带来一点点学习成本。
    • owensd/json-swift: 功能与Swifty几乎一致,使用上要更方便。
    • gfx/Swift-JsonSerializer:JSON解析又多了一种选择。
    • hubertr/Swell: 同时支持Swift和OBJC的Log实用类。喜欢Log4j风格的日志管理类的同学可以收入。
    • RSBarcodes_Swift: "RSBarcodes allows you to read 1D and 2D barcodes using metadata scanning capabilities introduced with iOS 7 and generate the same set of barcode images for displaying and sharing." By @yeahdongcn Swift语言版二维码识别及生成类库。
    • SwiftP2P/SwiftSSL:常用 Digest 和 HMAC 的封装。如此封装后,使用加密算法确实很方便。很不错的一个国产"轮子"!By @你全家都快到碗里来
    • Hearst-DD/ObjectMapper:对象与JSON互转实用类库。需要的同学可以收一下。
    • DaveWoodCom/XCGLogger : 这是一款功能比较健全日志输出框架(Log4Swift)。之前推荐过一款类似的 hubertr/Swell,但它的功能明显没有这款强大。
    • isair/JSONHelper :又一款JSON转对象类库,算上,lingoer/SwiftyJSON,owensd/json-swift,gfx/Swift-JsonSerializer,已经有四款了。同学们根据喜好及需求,择优使用吧。
    • kylef/Stencil:通过在模板中支持if, for, ifnot 等语法标签,实现更强大、更灵活的数据及格式输出。
    • kylef/PathKit: 简单、实用的文件路径操作类,常用功能一个也不少。
    • thoughtbot/Argo:一个带有实战说明的JSON解析方案及类库。
  • 图片

    • kaishin/ImageScout:最小网络代价获得图片大小(宽和高)及类型,它对于很多场合,比如:布局和排版都有积极作用。
    • kaishin/gifu:高性能GIF显示类库Swift版本。
  • 存储

    • SQLiteDB in Swift: "This is a basic SQLite wrapper for Swift. It is very simple at the moment and does not provide any advanced functionality. Additionally, it's not pure Swift at the moment due to some difficulties in making all of the necessary sqlite C API calls from Swift."
    • Realm - a mobile database: Realm主打移动数据库。除了更轻量,甚至还可以应用到可穿戴。低耦、面向对象的设计风格也是非常亮丽的。
    • nerdyc/Squeal:一套非常完善的SQLite数据库访问API,无论建库,建表,CRUD等常用数据库操作命令都进行了很好的封装,另外,版本管理、事务管理、并发管理、命令执行及Prepare Statement等都提供相应支持。它是一套不可多得的SQLite管理访问库。
    • stephencelis/SQLite.swift:简单、轻量,或是使用上最SQL的SQLite封装库。
    • BjornRuud/Swiftache: Mustache的Swift语言实现版本。
    • Haneke/HanekeSwift:貌似这个轻量地带缓存图片组件还不错。主要功能包括图片二级缓存、异步加载、后台执行、自动缩放等。感兴趣的同学可以试用一下。
    • SugarRecord/SugarRecord:相对于SQL,CoreData可以更方便、高效存储数据,而SugarRecord类库可以让你更方便的使用CoreData,同时作者已经封装好iCloud,使你的应用开发更如虎添翼。
    • michaelarmstrong/SuperRecord : Swift版CoreData框架扩展类库。相对于同类型CoreData框架库SugarRecord/SugarRecord http://t.cn/RhYLS4n ,SuperRecord要简单、轻量得多。很棒的快速开发类库。
    • aschuch/AwesomeCache:Swift语言写的高效能缓存对象存储及管理,定义及使用简单、易于理解。支持为每个Cache对象设定缓存有效期。
    • daltoniam/Skeets:网络图片的获取、缓存及显示类库,支持缓存的清理及时效性管理。
  • 远程访问

    • Minimalistic Swift HTTP request agent for iOS and OS X: 一个简单、小巧、实用的HTTP请求Swift语言实现类(仅一个Agent.swift类)
    • lingoer/GRequest:"@李洁信:个人认为AFNetworking这种较重的第三方网络库将逐渐淡出舞台,而像楼主这种基于NSURLSession并充分利用Swift特性写出来的小而美的库会受到更多人的青睐!" 作者解读《GRequest for HTTP Request》
    • daltoniam/SwiftHTTP: Thin wrapper around NSURLSession in swift. Simplifies HTTP requests.感兴趣的可以看看代码,比较与lingoer/GRequest差别。
    • AshFurrow/Moya: 如果你需要如此功能的Swift网络API,可以考虑使用它。它基于Alamofire, swfitz等优秀开源类实现。
    • aleclarson/emitter-kit:用EmitterKit代替NSNotificationCenter。这个库貌似短小、精悍、实用的样子。更重要是语法精练。
    • _daltoniam/starscream:Swift版本WebSocket客户端类库,支持iOS/OS X 。 使用方便,跨平台开发不可或缺的"轮子"。
  • 社交网络

  • 框架

    • robb/Cartography: Set up your Auto Layout constraints declaratively. 这是有关自动布局约束一个实用的Swift项目,代码看似简单清晰,不过由于设计巧妙。代码解读 By @kaiyuz
    • railsware/Sleipnir:一个基于Swift的行为驱动开发框架(BDD-style framework)。API安装,示例及说明相对比较齐全。
    • Quick/Quick:另一款基于Swift的行为驱动开发框架。
    • inamiy/SwiftTask: 一个很标准的任务及其生命周期管理类库。作者还附上了一个基于Alamofire库完成的网络文件下载的任务管理示例。
    • inamiy/SwiftState:Swift版本State Machine,这是SwiftTask的姐妹篇。开发过Workflow类应用的同学有没有很亲切。
    • colemancda/NetworkObjects:基于Swift的轻量版HttpServer框架,可以做为iOS/OS X分布式对象的替代。可惜缺少演示或示例代码。
    • Masonry/Snappy:一个基于AutoLayout封装,语法简洁的轻量级布局框架。当然,用代码还是storyboard,全凭开发者喜好。若偏好可视化自动布局,@DevTalking 的两篇译文值得参考《Swift自适应布局教程》《为iPhone6设计自适应布局》
  • UI组件

2. 示例项目

3. 完整项目

  • FlappySwift: 用Swift语言实现的 FlappyBird
  • 天气预报iOS项目: 新界面还不错,简单,还带点卡通的味道
  • tnantoka/edhita:edhita是一款用Swift重写并完全开源的文本编辑器。AppStore上已经有更新版下载。试用后感觉还不错。它甚至支持Markdown, HTML等文件编辑后的预览显示。
  • jurre/TravisToday:一个功能相对完整的服务于Travis CI系统的OS X应用扩展Today项目案例。

4. 需求文档


推荐网站

  • ksm/SwiftInFlux:作者(Karol Mazur)将Apple Developer Forums上有关Swift特性、缺陷及变更讨论分类汇总并更新到Github,具有很好的可读性。从中可以一窥Swift缺陷及未来潜在地变化。最关键地是有Chris Lattner及核心团队答疑解惑。
  • raywenderlich.com(中文版): 由Ray Wenderlich创建,专注于开发高质量编程指南(近期优质Swift文章及视频教程不断),著名的iOS/OS X博客及开发教程网站,非常适合新手学习。近期第一时间出了三本Swift新书
  • NShipster (中译版): 著名开源作者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 开发者相关的技术话题创造一个正式的平台。“
  • 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》等。

资源合集

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


开放平台

开放平台相对于Swift语言更具战略意义,这是开发者不得不面对的挑战。也是苹果新一代创新应用的催化剂。通过Extension达成应用之间的协同及通讯,这是对生态内应用开放的基础。让我更期待的是,Extension在Safari Action上实现及支持,这是实现平台开放及跨平台应用最简单直接的方案。

1. 文章精选

  • 谈谈 iOS 8 和 OS X 10.10 的 Extension: "我个人认为这是 iOS 和 OS X 发展至今非常具有里程碑意义的一处改进,甚至比 UI 上的改变重要的多。我想简单地谈一下为何 Extensions 这么重要。" By @图拉鼎
  • App Extensions学习笔记: "系统中支持extension的区域,extension的类别也是据此区分的,iOS上共有Today,Share,Action,Photo,Editing,Storage Provider,Custom keyboard几种,其中Today中的extension又被称为widget" By @foogry
  • 详解 iOS 8 的动作扩展: "动作扩展的出现,意味着用户能在应用程序间的切换上花更少的时间和精力,这是相当大的进步。" 译文作者: @米斯特苹果, 原文:《Action extensions in iOS 8: Explained》
  • 苹果iBeacon让智能家居走进现实: "iBeacon最初发布的时候是一个协议,苹果希望利用这一协议取代NFC技术。iBeacon技术则可以利用支持该技术的设备创建一个信号区域,相当于实现了地理围栏的功能,当其他支持iBeacon技术的设备如手机进入这一区域时,对应的应用程序就会自动连接这一区域的信号网络,或者对用户进行提示"
  • Android L/iOS8/WP8.1到底谁抄了谁?: "我们发现在三场发布会上都听到了观众这样的声音:“无耻抄袭!抄了谁谁谁的!!”,这种事情似乎说也说不清,所以我们决定把这三个新系统放到一起来看看,然后再下结论。"
  • Google开源字体Noto Sans CJK简介(By @洋气书生): 这篇Noto Sans CJK(CJK: Chinese, Japan, Korean)字体普及文章简单、直接、专业,且易于理解。作者友善地提供了一份本地下载,赞一个!P.S. 毫无疑问,新版Android上会很快支持,iOS/Mac/Windows上也会尽快缺省支持吗?
  • iOS 8 与 OS X 10.10 间的自由联动:Handoff 使用详解:有关如何开启和使用Handoff,文章做了比较详细的介绍,并以Safari为例进行了使用说明。作者(@iTumbledSea)撰写此文的英文参考《How to use Handoff with iOS 8 and Yosemite》
  • Web Apps:这篇新鲜文章较全面论述了Native应用和Web应用。有关Native应用和Web应用,最近争论渐少,原因应该有两点:1. 无论Apple还是Google,Native应用才是其生态的基础,过于激进推动,将损害其固有商业利益。而微软的话语权严重受阻于移动系统的发展;2. 基于Web View的混合应用基本满足应用跨平台性 。

2. 示例项目

3. 安全控制

  • Back to Mac - XPC by objc.io: XPC 是 OS X 下的一种 IPC (进程间通信) 技术, 它实现了权限隔离, 使得 App Sandbox 更加完备。

4. 实用资源

  • google/material-design-icons :对于喜欢 Material Design风格的同学,这是难得好资源。Google提供了极为完整的各种图标(包含iOS各种精度及SVG)设计资源。

媒体文章

其它相关

  • VM10装Mac OS X 10.9.3及更新到Mac OS X 10.10: "嗯,我写的。屌丝学生党买不起Mac,只能在黑苹果和虚拟机上先折腾会了。" By @Vong_HUST

  • Origami: 快速原型动画开发工具。Origami由Facebook开发Quartz Composer工具库,它使原型开发更容易。参考文章:

    1. 次时代交互原型神器Origami档案: "随着iOS 7的推出,扁平化和极简主义设计风格在移动互联网领域流行起来,App动效越来越成为了决定App气质的重要因素,原型的动态保真度似乎成为了阻碍设计师发挥想象力的一道门槛。传统的以点按为主的App设计,逐渐演变成为大量手势交互,这使得Axure类工具表现手势交互显得心有余而力不足。基于QC的Origami应运而生。"
    2. 用 Quartz Composer 和 Origami 制作一个简单的按钮动画(译文): "结识了 QC 和 Origami 之后,我就能用很短的时间制作出这个动画的原型。我爱上了 QC 和 Origami —— 我希望你在使用它们之后,也会爱上它们。同时,我十二分地感谢 Facebook 创造了 Origami,以及 Apple 创造了 Quartz Composer。" By @nixzhu
  • WWDC 2014 PDF 及session 视频下载脚本:一段下载WWDC2014 全部PDF 和Session 的终端脚本。

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%