Swift 语言指南

前端之家收集整理的这篇文章主要介绍了Swift 语言指南前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

https://github.com/ipader/SwiftGuide

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

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

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

@SwiftLanguage更新于 2015-6-22,更新内容详见《Issue 32》

目录


Swift 文档

1.Welcome to Swift

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

2.Swift Programming Language

3. Using Swift with Cocoa and Objective-C

4.App Extension Programming Guide

5.HomeKit Developer Guide

6.Swift Blog - Apple Developer

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

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

7. iOS Human Interface Guidelines


Swift 教程

1. 官方教程

2. 快速入门

3. 教程精选

4. 开发技巧

5. 相关文档


Swift 项目

考虑到本文档内项目收录部分或许过于杂碎,因此,站在个人的角度,额外整理了一份《Swift 开源项目精选》,做已收录项目做了一个甄别、筛选。当然,由于个人能力及涉足范围所限,还远远不够,其中肯定有偏颇及不足,还望同学们多多见谅。更希望能得到你的帮助和补充,共同参与。

1. 实用类库

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

2. 示例项目

3. 完整项目

  • WWDC app for OS X:去年还只是一个会后的脑补演示项目。而今年已然成为追剧观看的超实用项目。连编译都懒得做的同学直接下载应用即可。
  • fullstackio/FlappySwift:用 Swift 语言实现的 FlappyBird
  • JakeLin/SwiftWeather:天气预报iOS项目,新界面还不错,简单,还带点卡通的味道
  • akeFiveInteractive/WeatherMap:基于地图的天气预报(上架)应用。比较适合长途自驾游的同学。
  • tnantoka/edhita:edhita 是一款用 Swift 重写并完全开源的文本编辑器。AppStore 上已经有更新版下载。试用后感觉还不错。它甚至支持 Markdown,HTML 等文件编辑后的预览显示
  • jurre/TravisToday:一个功能相对完整的服务于 Travis CI 系统的 OS X 应用扩展 Today 项目案例。
  • stakes/Frameless:一款基于 WKWebView 的最小化全屏浏览器,主要功能是方便开发者采用HTML5做原型设计或 App 发布。对于测试工程师或喜欢极简、全屏浏览用户,可以直接在AppStore下载使用。
  • mozilla/firefox-ios:Swift 写的 iOS 版 Firefox。P.S. 第三方库用到了 Alamofire,Snappy,swift-json 等,内置阅读器还使用了 Readability。
  • lexrus/VPNOn:一款驻在通知中心内的基于 Today 扩展的 VPN 开关应用。
  • victor/whereami:一款用 Swift 语言写的通过命令行获得当前设备地理位置程序。虽然很简单,不过,实用性及学习性俱佳。
  • Ahmed-Ali/RealmObjectEditor:Realm 数据库 Swift 版开源编辑器。提供针对实体,属性及关系的编辑功能,完成后可以将实体结构导出为 Swift,Objective-C 或 Java 类模型。非常实用。
  • jpsim/DeckRocket:在相同 WiFi 网络环境内,通过 iPhone 控制并播放 Mac 中的 PDF 文档。ft 编译器崩溃的测试用例。这是一个疯狂又非常有意义的开源项目。可以定期关注一下。P.S. 该开源项目作者最新提示:Xcode 6.3 beta 与 Swift 1.2 已修复了其已发现编译器崩溃级缺陷的 83%。
  • Carthage/Carthage:更简单的方式来管理 Cocoa 第三方框架。有了 CocoaPods 为何还要使用 Carthage,作者在 README.md(中译) 已经做了充分说明。
  • artsy/eidolon:艺术品拍卖的投标亭平台。作者提供了一个很励志的开发故事:从商业创意到最终实现。心路历程从不开源到开源,从 Objective-C 到 Swift(去年夏天的事,现在当然是 Swift),以及选择时髦的反应式编程框架 ReactiveCocoa……
  • mortenjust/androidtool-mac:“一款用 Swift 写的可在 Mac 上使用的 Android 工具,支持一键截屏,视频录制,APK 安装等功能”。
  • lexrus/JSCoreDemo:“演示了一下怎样在 Swift 里用 JavaScriptCore 把原生功能桥接给 JS 用,代码少很容易理解”。简单、易懂的基础演示代码。P.S. 希望进阶学习的同学,这里有一个完整项目供参考RichEditorView:基于 HTML 5 的可定制富文本编辑器组件及示例。
  • gilesvangruisen/Swift-YouTube-Player:用不了的同学就当学习吧。或参考并试着写个 Swift-(...)-Player。
  • Imperiopolis/WatchScreenshotMagic快速生成干净、漂亮的 Apple Watch 截图的实用工具应用。
  • beltex/dshb:OS X 系统状态(cpu、电池、内存、温度传感器、风扇及杂项)监视器应用。每秒刷新文本界面,极低系统开销。
  • nscoding/sleep-osx:在 Spotlight 中输入 sleep 即休眠你的 Mac。实现特别简单,几行代码而已。

3. 项目评测

  • 【Workflow 测评】Workflow 是款什么软件?(作者:@JailbreakHum):"除了圣诞降价以外最近最火的软件话题应当是 #Workflow# 了。如果你没接触过此类软件,或许会纳闷它有何魅力。我们针对这款软件的测评系列的第一篇就是来向你概述它是什么软件的,所以文中给出大多是基本知识,不过相信也会给老手一定的启发。"

Swift 网站
相关工具

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 插件

4. 管理工具

5. 调试工具

6. 参考文章


开放平台

开放平台相对于 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 技术的设备如手机进入这一区域时,对应的应用程序就会自动连接这一区域的信号网络,或者对用户进行提示"
  • @L_502_1138@:"我们发现在三场发布会上都听到了观众这样的声音:“无耻抄袭!抄了谁谁谁的!!”,这种事情似乎说也说不清,所以我们决定把这三个新系统放到一起来看看,然后再下结论。"
  • 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 的混合应用基本满足应用跨平台性 。
  • Back to Mac - XPC by objc.io:XPC 是 OS X 下的一种 IPC (进程间通信) 技术,它实现了权限隔离,使得 App SandBox 更加完备。
  • MATERIAL DESIGN设计规范学习心得:“编者按:自学笔记就该这么做!今天分享@東門王三同学关于 Material Design 的自学成果,他的学习笔记严谨有序,触类旁通,从 Material Design 到其他系统的设计规范都有所研究,还认真地做了思维导图,同学们可以边学习边借鉴他的自学方法,一举两得呦。By@优秀网页设计
  • 聊聊移动端跨平台开发的各种技术文章研究很全面、很透彻。赞同林老师建议。实在需要时,iOS/WKWebView 和 Android/WebView 可以做为跨平台衔接技术。“@林泰前:目前看到对跨平台开发最完整的文章,对这方面有兴趣的朋友建议一读。不过这是我的建议:好好学习 Swift/iOS 和 Java/Android,没有任何跨平台方案比得上真正原生的方案。”

2. 示例项目

3. 实用资源


媒体文章
Apple Watch 指南

WatchKit 确定了开发者在第一代 Apple Watch 能做什么,显然,这只是一个保守的开始。

1. 文档

3. Watch 教程

4. Watch 项目

  • kostiakoval/WatchKit-Apps:WatchKit 开源小项目示例集锦。是不可多得地学习 WatchKit 的示例式教程。
  • saigyoji205/Map_For_AppleWatch:一个简单的WatchKit地图示例应用扩展。
  • frosty/Flipbook:"Flipbook 是一个能录制 iPhone 上 UIView 动画生成帧动画序列并传输给 Apple Watch 以供直接播放的工具。By@WatchKit开发"
  • WatchApps:“可交互的演示网站,和 Apple Watch 应用开发者合作,利用 Javascript 和动态 PNG,以及来自视频,真机屏幕截图等素材,让大家预览 Apple Watch 上热门应用的使用体验,包括应用界面,Glance 一瞥界面,通知界面。” By@苹果网
  • Apple Watch 的 5 个产品思路畅想:“接下来的几年会很有意思,数字产品的体验模式正朝着多平台的方向迅速进化着,每一类设备都在开疆破土。我(英文原文作者)整理了五个类型的产品思路,或是说畅想,在 Apple Watch 即将正式上市的前夕,与大家做以分享和探讨...”
  • kiavashfaisali/KFWatchKitAnimations:为  Watch 提供 60 帧动画显示效果解决方案及示例。
  • mobitar/Starburst:几款可用于 Apple Watch 应用的 PNG 序列动画。
  • sandofsky/soon:一款倒计时 WatchKit 示例应用。作者从架构的角度,思考如何设计一款完整、通讯高效且性能又好的 WatchKit 扩展应用。该示例学习性非常强。
  • shu223/watchOS-2-Sampler:基于 watchOS 2 若干新特性,作者写了相应的示例代码供大家学习、参考。
  • KhaosT/HMWatch:即便只是一个有待完善的 watchOS 2.0 HomeKit 示例,参考价值还是很高的。

5. 媒体文章

  • Apple Watch应用开发正在紧锣密鼓地进行:"因此大家可以想象,终于可以在最新 Apple Watch 身上小试身手时,iOS 开发者们该有多兴奋。周四,苹果公司首席执行官蒂姆·库克(Tim Cook)宣布将推出 WatchKit 开发工具,让开发者和移动行业创业者能够开始为这款最新设备开发新的应用程序。" By福布斯
  • Apple Watch需求被低估:"大摩分析师凯蒂·霍伯特(Katy Huberty)表示,投资者还低估了苹果即将发布的智能手表 Apple Watch 的市场需求量。大摩分析师凯蒂·霍伯特(Katy Huberty)表示,投资者还低估了苹果即将发布的智能手表 Apple Watch 的市场需求量。"
  • 苹果 Apple Watch 的杀手级特性:"方便简单:目前我们已经了解了很多关于 Apple Watch 的功能以及特性,但是了解了这些你是否会产生这么一种感觉:我的生活需要 Apple Watch?其实这种感觉并不强烈吧。" 文章短,且论述平实,适合大众阅读。
  • 沃兹:Apple Watch 将改变世界:“手表会改变世界。每个人都会说很多人都在做智能手表。但是谁把它做的好了呢?苹果其实很多时候都站在风口浪尖的地方。每个人都会说很多人都在做智能手表。但是谁把它做的好了呢?我用过智能手表,但是每次我用完之后都很不喜欢,马上就不用了。只有苹果让我觉得好用” 来源@林泰前
  • 当特斯拉有了 Apple Watch 应用:“第三方开发商 Eleks Labs 就为特斯拉开发了一款 Apple Watch 应用。这款应用可以让用户通过手表控制特斯拉 Model S,包括上锁、解锁、调节车内不同区域的温度、开启大灯、定位……此外,宣传视频中还可以看到,应用能查看车辆电量、里程等信息。”
  • Apple Watch 究竟有啥用?首批 60 款应用告诉你:嗯,很全。同学们在开发  Watch 应用之前先补补功课、随随主流或找找灵感,避免闭门造车。
  • 独家视频:Apple Watch开箱:“上一条是图文版详细评测,我们还准备了一短视频,快速介绍Apple Watch和两款表带开箱过程,并介绍它的主要的功能点。只此一家,别处没有。” By@苹果汇

其它相关

  • Workflow 教程 - 如何上手 Workflow:"Workflow 就像格莱美开奖前数月发售的一张钻石专辑,横空出世一鸣惊人,年终登上了各大媒体的最佳 App 榜。这篇文章用了一个实用的例子,介绍了 Workflow 里从简单到中等的一系列动作,相信会给没有头绪的你不少灵感。" 作者:@JailbreakHum
  • 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
  • 10 个 Safari for iOS 8 的实用小技巧:"继上回 7 个 Safari for Mac 实用技巧之后,这次来介绍 10 个 Safari for iOS 8 的小技巧,相信一定有你可能还不知道的使用新姿势。by@子不语Rex" 本身的细节,外加应用扩展,组合成更强大的 Safari 浏览器。
  • WWDC 2014 PDF 及session 视频下载脚本:一段下载 WWDC 2014 全部 PDF 和 Session 的终端脚本。
  • cesards/AndroidElementals:"分类整理了 GitHub 上常用的 Android Library 和 Open Project,整理的结构目录很清晰,找起来很方便。By@Vanilla_Alan"
  • Brett Terpstra 的 2014 年度最佳 Mac 软件推荐:“Marked 的作者,Podcaster,独立程序员 Brett Terpstra 近期在自己的博客发布了自评年度最佳名单,涉及了硬件、软件、网络等产品近百项,我们将名单中的 Mac 软件提取出来,向大家介绍一下”。来源:@Mac玩儿法
原文链接:https://www.f2er.com/swift/326769.html

猜你在找的Swift相关文章