GitHub - moonlightlong/SwiftGuide: 这份指南汇集了Swift语言主流学习资源,并以开发者的视角整理编排。
3. Using Swift with Cocoa and Objective-C
7. iOS Human Interface Guidelines
1. 官方教程
2. 快速入门
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 版小鸟启动动画。
WWDC 2014 详解 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江宏 | 这就是业界的速度,先机才是致胜法宝。
为 iPhone 6 设计自适应布局(一、二) :"当你们学习完这篇文章后,你们应该会比较自如的使用 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):一篇关于 CMDeviceMotion 类解读及使用方法的文章。对于 iPhone 三轴陀螺仪和加速感应器,以及M7/M8协处理器,核心运动框架(The Core Motion framework)提供了完整的 API 支持。然而文章更重要的意义是启发开发者重视感应器,并结合场景开发新颖好玩的应用。原文:CMDeviceMotion
如何在 Swift 中运用Text Kit 框架(一,二):“现在 iOS 8 发布了,在文本渲染方面在延续了之前强大功能的基础上,又提升了其易用性。” 译者:@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
UIPrintInteractionController:文章介绍了如何格式化打印内容及相关打印定制技巧或控制技术。或许,在如今移动及数子化时代,打印已经被许多人所忽视。无论如何,对于传统行业,需求仍然是切实存在的,因此,这是一篇难得好文章。
在 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 - NSUndoManager:本文分别结合 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 开发,以及需要注意的地方。By @CocoaChina”。来源:AppCoda ,译者:@_HuaQiao
在 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 - JavaScriptCore 中译文(原文):文章介绍了在 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. 站在解决问题的角度,步骤清晰,目标明确。一次很好的开始。
objc.io - #21 Camera and Photos(中译版 By #objc中国#):这一期主要议题包括相机工作原理,图片格式,iOS 上的相机捕捉,照片框架,照片扩展,Core Image 介绍,GPU 加速下的图像处理,GPU 加速下的图像视觉,基于 OpenCV 的人脸识别。很精彩,不容错过。
objc.io - #22 iOS at Scale( 中译版 By #objc中国#):本期通过 Omni,Artsy,Square,Dropbox,Facebook 等一定规模 iOS 开发团队的故事,基于不同侧重(开发流程、开源管理、发布管理流程、代码审查流程、组件化思想等角度)分享项目管理经验。
玩儿转 Swift:粗略听了一下,发现@刘宇波bobo的这套 Swift 基础视频课程也比较适合初学者。PPT 及 示例代码显示很清晰。
Swift Documentation:“对于开发者来讲,良好的代码结构及组织是其引以为豪的事。干净、一致的代码习惯,对于编译器并无所谓,但程序字里行间可以代表个人符号、或与同伴的差异”。两位博主的倾情合作,有了这篇美文。来源:NSHipster
NSHipster - IBInspectable / IBDesignable:通过两者的配合,配置 NIB,XIB 或 storyboard 实例中的键值,所见即所得修改界面元素显示属性。尽管这样开发方式对于程序员来讲,并非那么地不可或缺。然而,对于设计师或美工来讲,则可以更多地参与界面开发,以有效提高实施效率。
Swifty - Learn to code in Swift!:“这款叫 Swifty 的 iOS 应用可以模拟 Swift 代码环境,不知道实际效果如何? By @JailJT_MBlog”。虽然只是基础语法为主。不过这款应用能首先切入移动端教授 Swift 编程知识,还是很有意义的项目。
diwu/LeetCode-Solutions-in-Swift:LeetCode 的 Swift 语言版解题方案。需要面试人的同学可以收录,被面试的同学则要补补功课了。P.S. 虽然相对于 LeetCode 题库完成比例还不高,不过,正好可以学着用 Swift 语言练练手。作者:@diwup
lexrus/LeetCode.swift:@汤圣罡 版 LeetCode 算法解题方案。
objc.io #23 Video - Core Image 和视频:本文介绍如何通过 Core Image 框架结合视频信息进行应景渲染,从而让视频表现出各种奇妙效果。译者:@高考这件尛事 P.S. 上上期(#21 Photo)着重于介绍图片的处理,本期又专注于介绍视频处理。objc 真是一个懂开发者的好网站。
Auto Layout 使用心得(1. 初体验;2. 实现三等分;3. 自定义 cell 并使用 Auto Layout;4. 22 行代码实现拖动回弹;5. 根据文字、图片自动计算 UITableViewCell 高度):这是我见过最为细致入微介绍自动布局及快速入门的中文教程。作者:@吕文翰_JohnLui。
再造 “手机QQ” 侧滑菜单(1. 实现侧滑效果;2. 高仿左视图;3. 视图联动):通过简单直接的代码,实现了完整的动画效果。作者:@吕文翰_JohnLui,示例项目:SwiftSideslipLikeQQ
在 iOS 应用中添加广告-添加 iAD 广告,添加admob广告:“实用教程。学自YouTube(一个神奇的网站)”。P.S. 虽然个人不喜欢应用内插广告,不过,作为一个服务类微博,不能任性。
Searching on a Map View in iOS8 with Swift:地图上搜索指定区域内的酒店和博物馆并显示的教程及示例。来源:iOScreator,附:完整示例。 P.S. 话说 iOScreator 教程示例库真多,不信你可以移步这里看看。
Realm 数据库基础教程:“Realm 是一个跨平台的移动数据库引擎,于 2014 年 7 月发布,准确来说,它是专门为移动应用所设计的数据持久化解决方案之一。Realm 可以轻松地移植到您的项目当中,并且绝大部分常用的功能(比如说插入、查询等等)都可以用一行简单的代码轻松完成”。来源:Ray Wenderlich,译者:@星夜暮晨
Swift 的响应式编程:文章通过在使用 MVC 以及 MVVM 中发现代码繁杂的弊病,引出响应式编程解决方案,并通过解读 ReactiveCocoa,让读者进一步理解响应式编程所带来的好处。原文:Reactive Swift,译文来源:@开发技术前线,译者:@MrSimp1e
iOS 后台模式开发指南:“这个教程会教你在什么时候怎么去用最常用的一些后台操作... 在本教程中你将建立一个关于简单标签应用的工程,来探索从连续播放视频到周期性的获取更新内容的四种常见模式”。原文来源:Ray Wenderlich,译文来源:@开发技术前线,译者:@MollyMmmmm
iOS8 使用 iCloud:“对于开发者来说,如何用适当的方式来存储应用程序数据是一个比较重要的问题。 毫无疑问,任何应用都或多或少需要存储一些数据。对于一般的应用程序来说,被保存的数据各不相同,大部分时间都被存储在本地以便再次在相同的设备运行该应用程序。尽管这不是是唯一的选择”。原文来源:AppCoda,译者:@HarriesChen
Grand Central Dispatch 基础教程:Part 1/2,Part 2/2:“尽管 Grand Central Dispatch(以下简称为 GCD)已推出一段时间了,但并不是所有人都明白其原理;当然这是可以理解的,毕竟程序的并发机制很繁琐,而且基于 C 的 GCD 的 API 对于 Swift 的新世界并不是特别友好”。来源:Ray Wenderlich,译者:@Ethan_Joe
UIKit Dynamics 和 Swift 教程:抛掷视图 (Tossing Views):“在这篇UIKit Dynamics教程中,你将学会如何通过添加手势,用一种很自然的方式将视图抛掷出屏幕的显示区域”。译文来源:@开发技术前线,译者:samw00
UIStackView:“iOS9 新增的 UIStackView 官方文档翻译”。译者:@潇湘TT
玩儿转 Swift:“随着Swift最新1.2版本的出炉,大家期待已久的《玩儿转Swift》系列课程也将迎来暂时的终点。在课程的最后一章,我们将随波波老师全面了解Swift 1.2 的新特性:简洁的if-let、全新的Set结构、as和OC-bridge等内容。一起来学习吧!”。来源:@慕课网
4. 开发技巧
5. 相关文档
1. 实用类库
2. 示例项目
3. 完整项目
3. 项目评测
1. 开发工具
2. 代码管理
3. Xcode 插件
4. 管理工具
5. 调试工具
6. 参考文章
开放平台相对于 Swift 语言更具战略意义,这是开发者不得不面对的挑战。也是苹果新一代创新应用的催化剂。通过 Extension 达成应用之间的协同及通讯,这是对生态内应用开放的基础。让我更期待的是,Extension 在 Safari Action 上实现及支持,这是实现平台开放及跨平台应用最简单直接的方案。