Swift语言实战入门(txt+pdf+epub+mobi电子书下载)

作者:伍星,罗飞,刘志华,王浩力,刘蕾

出版社:《无线电》、《高保真音响》杂志社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Swift语言实战入门

Swift语言实战入门试读:

前言

0.1 本书写作缘起

Swift 语言是苹果公司在2014年苹果全球开发者大会(WWDC)上公开的新编程语言,也是快速、现代、安全、交互的新一代编程语言,如图0-1所示。图0-1 对 Swift语言的官方评价:快速、现代、安全、交互

Swift 语言横空出世,正如苹果一贯的作风,保密工作做得相当好,事先感觉不到任何征兆,事后才发现苹果为之准备已久。

从 2010年 Chris Lattner 大牛开始筹划到现在,Swift 语言已经存在将近 4年了。苹果的官方教程指出:“为了给 Swift 打好基础,苹果公司改进了编译器、调试器和框架结构。我们使用自动引用计数(Automatic Reference Counting,ARC)来简化内存管理。我们在 Foundation 和 Cocoa 的基础上构建框架栈并将其标准化。”我们也看到,现在开发 Swift 语言相关的应用可以完全无缝地集成核心库、使用已有的 Objective-C 库、与 Xcode 完美兼容。更重要的是,在官方手册上,我们也看到了完整的支持,大部分示例都以两种语言给出。

不凭别的,也不分析苹果的商业动机,就凭这种长久而精心的筹划和准备,我们也有理由相信 Swift语言代表了 iOS开发的未来,Swift语言很有可能将代替 Objective-C成为 iOS开发的首选语言。

而这种准备,同样得到了市场的热烈响应。Swift 语言一经推出,就迅速获得了各方的热捧。国内开发者社区在短短9天内就把英文官方教程翻译为近700页的中文教程,而各大培训机构、在线教育社区也纷纷推出自己的教程,可谓各显身手。Swift语言一出现就有人预测,也许它在 TIOBE 语言排行榜上第一次露面就将杀入前20名。事实证明了这个观点,它实际的成绩是第16名!

鉴于Swift语言本身的优良特性、与既有库的良好兼容性,我们相信Swift语言将有一个良好前景,所以我们筹划出版了这本《Swift语言实战入门》。标题叫实战入门,基于两点考虑:一是由于Swift语言是新的编程语言,环境都还处于演进迭代状态,在这么短的时间里,谁也不敢说自己是专家,于是乎我们将此书定位为“入门”,它只是我们自身学习 Swift 语言经验的一些提炼和总结,希望能对想了解 Swift语言的朋友有所帮助。而另一方面,Swift语言作为编程语言,开发出实用的产品才是其最大的价值所在。Swift语言不仅仅是提供一些语法糖,更重要的是它能使用Cocoa、Foundation、UIKit等已有的框架来完成实际产品的开发,同时又能对现有的代码提供良好的互操作支持,所以完全能满足实际的产品开发需求。目前市面上实际讲授 Swift产品开发的内容太少了,所以我们将书籍本身又提升了一个层次,目标是真正使用Swift语言开发出实际可用的产品,故定义为“实战”!

希望我们的《Swift 语言实战入门》能成为大家学习 Swift 语言的入门书籍,同时希望大家能借助本书,开发出真正具有实用价值的产品。

0.2 本书内容简介

本书分为11章。

第1章介绍Swift语言及其开发环境,使用 Xcode 编写我们的第一个 Swift 程序——著名的Hello World!在第1章中,我们也将了解 Swift 语言开发环境的新特性——Playground 功能。

第2章、第3章、第4章分别从基础、进阶和高级特性三个层面介绍Swift语言的语法。我们不仅介绍语法,同时会与其他语言进行对比,指出它们之间有意思的差别。无论是对老手还是对新手而言,了解基础知识不无裨益。

从第5章起,我们正式开始为 iOS 应用开发做准备,介绍在 iOS开发体系中既有的 Foundation 及相关底层的Core Data框架。因为只有掌握这些内容,再结合第6章、第7章、第8章的功能,我们才能够真正地掌握iOS开发,否则不过就是熟悉了一门计算机编程语言的语法而已。

第 6 章是第三方库的引用与介绍。在任何语言的产品开发中,第三方库都是开发的重要补充。而Swift 语言的互操作性,让其更方便地引用第三方库。鉴于本书的实战特性,本书将介绍一些特色鲜明的第三方库。

第7章是界面开发的基本控件的介绍,第8章是高级控件的介绍。正是这些控件构成了 iOS 开发的基础,没有这些控件,就没有丰富多彩的 iOS 应用。在这两章中,我们将强烈地体会到,Swift 语言作为一门产品开发编程语言,已经完全适合开发成型的产品。

第9章是运用Swift语言开发2048游戏项目的介绍。在本章节中详细地讲解2048游戏从界面搭建到成品实现的逻辑与过程,展示出这款游戏是如何从一个简单的按钮,一步步完整实现的。

第 10 章是对 iOS 应用开发的一些基本逻辑和设计模式的总结。通过这一章的简单介绍,读者可以提升看问题的层次,了解 iOS 类库和应用背后的机理。

第11章讲述产品上架和发布的过程。我们学习Swift语言,其实并不是为了学习一门语言,而是为了真正做出产品。而做出产品,也绝不仅仅是为了自娱自乐,在模拟器上自赏,更多地是为了和朋友们分享。所以本章就介绍了如何将应用打包和发布到 App Store的过程。

从上面的介绍我们可以看到,本书从粗粒度的角度来划分,分为三大部分:第一大部分是基础和语法部分,通过这一部分的学习,你可以了解Swift语言是一门什么样的编程语言,并学会使用Swift语言编写简单程序。而学会了第一部分的语法对开发实际产品来讲是远远不够的,还需要对第二大部分,即开发框架和库部分进行学习。在现在这个时代,开发实际的产品避免不了大量地使用各种开发库、开发者工具包(Developer Kit)。所幸尽管 Swift 语言刚刚面世,但是苹果公司已经帮我们完成了大量开发库底层接口的封装,且提供了桥接技术,让我们能够方便地使用现有的成果。第三部分是实战部分,详细介绍2048 游戏的开发,以及生产环境开发与发布所需要了解的一些情况。本书就这样分为三个部分,共 11章,从语法入门步步递进到实战,很好地呼应了本书的定位。

0.3 实战开发2048游戏项目简介

本书定位为实战入门,除了入门语法、实战类库及示例之外,更具亮点的是在本书的第9章,我们以一个完整的2048游戏的设计过程和代码实现展开。而2048游戏开发的逻辑,也稍有点缀地穿插在本书其他的章节介绍之中。

在这里简单介绍一下2048游戏。2048游戏是2014年的休闲游戏中,继 Flappy Bird 之后,又一款火遍全球的游戏。游戏的画面很简单,进入游戏画面,一开始出现的是4×4的16个方格画布,并且有随机的2和4的数字块不断随着版面的划动而产生。方格画布大部分都是空白颜色(也有可能是灰色)的,当玩家划动合并出现新数字之后就会改变颜色。

玩法规则也非常简单,一开始方格内会出现 2 或者 4 等这两个小数字,玩家只需要向上下左右其中一个方向移动出现的数字,所有的数字就会向滑动的方向靠拢,而空白区域就会随机出现一个数字,相邻的同大小数字在划动时会相加合并,然后一直这样不断相加,最终得出2048这个数字就算游戏过关。

在第9章的实战示例中,我们通过从最基本的游戏入口界面开始设计,一步步到游戏画布、数字产生、手势响应、数字滑动、数字合并、游戏设计等,最终实现2048游戏项目的开发。

0.4 学习步骤安排及面向对象

毋庸置疑,在学习一门新的编程语言时,最主要的方式和途径是大量的练习,如果没有大量的练习,只是看了书,学了语法,那不是学会,充其量算作了解。

所以在本书的示例中,很多例子我们都给出了核心部分完整的代码,只要是认真对照,肯定可以实现示例中的效果,而练习多了,就能把语言学会。在学习 Swift语言之前,这里介绍一下相关的学习要求和大致的步骤。

本书面向的读者是想利用 Swift语言开发实际应用的开发者,无论是学生,还是社会工作人士;无论是新学习编程语言的新手,还是编程语言的高手;无论是 iOS 开发体系内想要学习一门新的语言的朋友,还是从其他开发阵营转过来的达人,都能在本书中得到一些收获。相对于完全没有编程基础的同学,我们建议你同时辅以官方的《The Swift Programming Language》来进行学习。

本书对读者的技能要求第一条是,能够熟练操作计算机。但是这远远不够,因为开发苹果的应用不是那么简单,你得有配套的资源供给。

首先你得有一台苹果计算机,可以是Macbook Air、Macbook Pro、iMac,甚至是Macbook。里面配备4GB以上内存,要是配有固态硬盘就更好了!

软件方面的设置我们在第1章会详细地讲到,但是这里讲一下所需的软件环境。请在苹果计算机上安装 10.9.3 以上的 Mac OS X 操作系统,安装 Xcode 6版及以上版本的 IDE。因为这是新出的语言,需要全新的操作系统和集成开发环境的支持。否则只是写出来一些文本代码,而无法进行运行调试。

其他方面的条件要求,则是如果你来学习Swift语言,只是编写玩玩,大可以在模拟器上运行效果。如果你要做真机测试的话,请至少具备如下设备之一:iPad、iPhone、iPod touch,同时需要运行 iOS 7以上操作系统。除些之外,你还得有开发者账号。

无论是下载最新版本的 XCode,还是真机调试,你都得有开发者账号,这里对苹果开发者中心和开发者账号也做一个简单的说明。

如果仅仅是在模拟器上编写程序,你只需要免费的开发者账号。登录苹果的开发者官网,我们直接进入iOS开发者子站http://developer.apple.com/iOS,打开如下页面:图0-2 苹果 iOS 开发者网站首页

点击 Member Center,进入登录界面,如图0-2所示。图0-3 苹果开发者中心登录界面

如果你有开发者账号,输入用户名、密码,直接点击Sign In,否则直接点击 Register,注册一个开发者账号,如图0-3所示。一步步完成之注册之后,再登录 iOS 开发主页面。里面就提供了各类的文档、视频教程和示例代码等各种开发者资源的链接。

免费下载的 Xcode以及相关的 iOS 8 SDK,内置了多个模拟器,可以支持在 Mac计算机上创建和运行 iOS 应用程序。但是,如果编写的程序要正式分发,光有模拟器的运行是远远不够的,因为模拟器不支持某些硬件设备才特有的功能。所以一般应用都先需要真机调试,然后在稳定和测试通过之后,分发到 App Store上。但是,无论是真机调试,还是应用分发,免费的开发者账号是不支持的。我们需要注册收费的开发者计划(Apple Developer Programs)。收费的开发者除了可以提交应用之外,还有一个重要的好处,就是能提前获得一些技术资源,比如Swift语言发布当天,相关的Xcode 只有收费开发者才能下载。

有关收费账号的注册方法,在本章参考中有相应的说明链接。或者大家可以搜索“注册苹果开发者账号”找到相应的资源。而咱们只是让大家熟悉一下苹果的开发者中心的流程,并简要介绍一下相关术语和计划,就不在此赘述了。

点击图 0-2 中的 Programs,我们能进入苹果开发者计划介绍的页面,这里提供了两种类型的开发者账号类型。一个是iOS开发者计划,一个是Mac开发者计划,两种开发者计划分别对应的是移动设备开发和Mac桌面软件的开发,如图0-4所示。图0-4 苹果开发者计划介绍页面

虽然在页面上只列出了针对个人开发者的99美元一年的账号,如图0-4所示,但是实际上,还有一种类型的账号是 299 美元一年的企业账号。个人账号同企业账号最大的不同,就是个人开发者开发的应用需要提交到苹果App Store,应用审核通过了才能被公众下载使用。而企业开发者账号开发好的应用,使用企业证书打包就可以进行分发,真机就可以使用了。

个人账号在申请的过程中,除了花费不同,更大的不同还有审核周期和提交资料的不同。

上面我们简单介绍了苹果的开发者计划,但对于初学者来说,我们不需要这么急切地得到开发者账号,可以先用免费的账号学起来。

学习的最佳方法,是自己依据教程或者网上素材,建立起开发者环境,依据本书的学习,一步步完成代码编写。体会示例制作的全过程,以及修复在代码中出现的问题。遇到解决不了的问题时,可以随时通过本书的相关网站,与老师、同学们交流。

其次的学习方法,是自己从网站上下载代码,直接运行,然后修改相应的功能,体会功能和代码的编写,也可以达到学习的效果。遇到问题,再反馈交流。这种学习方法,我们也是赞同的。

最差的学习方法,是看一遍书或者下载了代码,运行一下就完了。这不是我们要推荐的。因为这种情况必然导致眼高手低的情况出现。我们反对这种学习方式。

0.5 本书特色介绍

这里需要重点介绍一下本书的特色。

本书特色首先体现在内容的实用性上。目前市面上鲜有关于Swift语言正式版编程语言类的指导书。网络上繁杂的入门教程和火爆出现的视频教程也大都在讲语法,不过是官方教程的翻版。而本书内容立意于实战,以流行的游戏2048为例来讲解Swift语言的实际应用方法,注重实战,使你可以学以致用。

本书特色之二是我们提供了更为互动的学习方式,读者可以通过扫二维码的方式方便地打开链接和网页,在网页中看到书中例举的代码清单,而后能下载。同时,还与相应的视频教学与答疑专区相连,使你可以随学随问。并且本书提供优才网一个月VIP特权,使你能够免费观看视频课程。

本书特色之三就是写作团队实力过硬。在优才网创始人伍星和Swiftist.org管理员梁杰的组织下,本书的写作小组得以组建。本书写作小组成员包括:优才网CEO伍星、竞鹿的 CTO 罗飞、优才网CTO兼教学总监刘志华、软件工程师王浩力、iOS开发工程师刘蕾。同时感谢优才网团队教研工程师卢兴占、张友林,以及众包人工智能 ria4 的李文广对本书的大力支持。正是写作团队的一起努力,才促成了本书的面世。

0.6 小结

本章介绍了本书的写作缘起、主要内容以及图书特色,同时也提供了建议的学习方法。本书注重实践,并配合以相应的教学互动平台,希望你通过本书能够得到所需技能。若有任何问题,可扫二维码进入答疑界面。优才网课程答疑二维码

本章参考:

1.如何注册免费的开发者账号 http://www.25pp.com/news/news_60759.html

2.如何注册苹果开发者个人账号 http://www.pc6.com/edu/62315.html

3 .如何注册苹果企业开发者账号 http://jingyan.baidu.com/article/4dc408489ebbb2c8d 946f12c.html。

代码包资源下载地址:

rar 格式:http://ucai.qiniudn.com/code%2FSwiftInAction-Code-final.rar

tar.gz 格式:http://ucai.qiniudn.com/code%2FSwiftInAction-Code-final.tar.gz

zip 格式:http://ucai.qiniudn.com/code%2FSwiftInAction-Code-final.zip第1章欢迎来到Swift语言的世界

学习目标

一、了解iOS开发语言的起源以及Swift语言的概念和特性。

二、搭建Swift开发环境,并在你的系统上运行它。

三、编写你的第一个Swift程序。

四、学会使用Xcode,体验iOS模拟器。

五、体验最新版Xcode带来的PIayground。“近一百多年来,总有一些公司很幸运地、有意识或者无意识地站在技术革命的浪尖之上。一旦处在了那个位置,即使不做任何事,也可以随着波浪顺顺当当地向前漂个十年甚至更长的时间。在这十几年间,它们代表着科技的浪潮,直到下一波浪潮的来临。”“对于一个弄潮的年轻人来讲,最幸运的,莫过于赶上一波大潮”——摘自《浪潮之巅》吴军

大浪淘沙,从20世纪40年代第一代计算机诞生到今天的短短几十年时间,IT领域中出现了许多新的技术,优秀的、应需而生的、硬件的、软件的。最后,有些技术、有些思想留下并盛行了,而有的则被人遗忘并淘汰了。石器时代、青铜器时代、铁器时代、现代,在技术可以影响生产力的任何时代中,当某个领域中基础的和相关的理论积累到某个程度以后,总会产生一个“技术大爆炸”时期。大量基础理论产物会被运用于实际工程领域,通过工程实践又可以为理论研究提供数据,达成反哺构成良性循环。正如同几百年前蒸汽机的诞生拉响工业时代号角一样,我们现在有幸身处于另外一个这样的大时代。这是一个奇妙且充满未知挑战和希望的大技术时代。

程序员,这个兴起不到一个世纪,却成为如今影响最大的技术人群体,不断为 IT 领域贡献实践成果和理论验证。从朦昧时代到现今的科技文明时代,从来没有一个群体能够兴起得如此迅速且强大。我们在不断地探索,不断地学习。同时,这一波波浪潮也欢迎你的加入。

当你选择翻开本书并且读到这里,证明你已经对iOS开发或者AppIe有了一定的认可度和兴趣。这是你一生中无数次选择中的一次,我们没法把它变成最重要或者最成功的一次,但是我们希望经年之后你能想起,当年有这么一本书让自己走上了 Swift 开发之路。此时此刻,不管你是拥有多年实践经验的技术大牛,还是初出茅庐的新手,都欢迎你加入 Swift 开发者群体,来和我们一起探索这个新的世界。在这次计算机程序语言的革命浪潮中做一个弄潮儿,在这个技术至上的领域中学会站立、超越,甚至引领。

开篇我们将为大家介绍一下 iOS 开发的背景知识以及 Swift 语言的起源和特性,回顾完历史之后就是着眼于当下,我们将带着大家搭建开发环境并且完成你的第一个 Swift 语言程序。同时,我们也会用适当的篇幅介绍一下开发环境的使用。请仔细阅读本章,我们将一步一步带你走入Swift语言的新世界。1.1起源

万物皆有起源,但是要说 Swift 语言的起源,我们不得不先简单回顾一下其创造者和前辈的历史,因为新生的 Swift“体内”时刻都流淌着与其创造者一样的血液。当然,我们不会大篇幅的讲述苹果公司的历史,如果有对此感兴趣的朋友,可以查阅Jobs的相关传记。

1976年Steve Jobs和好友一起创立苹果公司,让人难以置信的是,这个一开始从车库中打磨出产品的公司在经过创业和原始积累阶段之后,绽放出了让世界惊讶的活力。

1979年,苹果公司开始开发AppIe Iisa 和 AppIe Macintosh,并且在第二年发布AppIe III。追求极致细节的产品设计基因已经开始扎根,同期产品主要面向中高端用户群体,其定价为4000~7800美元。

1983年,售价为 9998 美元的 Lisa 数据库发布,一如既往的高端市场定位和优秀的产品设计使苹果公司成为当时发展最快的公司。电影阿甘正传中男主角阿甘有一句台词;“他替我买了一家卖苹果的公司股票,有人说,我这一辈子不用再为钱发愁”,其实这里说的就是苹果公司。

20世纪80年代,Steve Jobs获得了Stepstone公司的Objective-C语言的授权及可以自己进行发布的编译器和框架,这进一步突显了苹果公司对软件的重视。从此,Objective-C 一点一点融入了苹果公司的基因,不断回馈能量及血液,并且借助AppIe APP生态链茁壮成长,流行于世。

1985年,Jobs 因为公司内部一些特殊的原因离开这家亲手打造的公司,苹果公司在之后连续很长一段时间内处于低迷期,但是依然全力打造极致产品。

1997年,MacOS 7.6 发布,同年 Jobs 回到苹果公司,开始研发 MacOS 8,并在同年发布。在随后的时间里,这种划时代的操作系统设计渐渐成为主流。同时,苹果公司也回到了辉煌时期。

2002年,AppIe发布了Mac OS的新版系统Mac OS 10.2 Jaguar。

2005年,Jobs宣布Mac全线产品将从PowerPC迁移到InteI平台。

2007年,苹果公司发布了Objective-C 2.0,为其增加一些全新的特性,其中最明显的莫过于语法方面的扩展,比如在新版本中消息传递可以通过"."访问对象方法属性。

优秀的硬件产品不断地诞生,iPod、iPhone、iMac、iPad,推陈出新。同时借助 Objective-C 开发者阵营的精彩应用共同发力,将 AppIe 推上了一次又一次的巅峰。然而“成也萧何,败也萧何”,Objective-C 成就了海量的 AppIe APP 开发者,让他们的产品拥有了无限的可能,却也因为自身的开发门槛让大部分应用开发者望而却步,而此时Android已经异军突起,撼大摧坚。

2010年 7月,LLVM 编译器的原作者 Chris Lattner 接到苹果公司的命令,开始着手打造 Swift编程语言。

2011年,Mac OS X 正式上线,并且 OSx86 计划的努力得到了回报,大批开发者加入了苹果应用的生态圈,苹果公司反击的号角已经吹响。同年,开发者工具包 OpenStep 被重命名为 Cocoa,并延用至今。

2014年6月3日凌晨,在2014年苹果全球开发者大会(WWDC)上发布了基于Cocoa和Cocoa Touch框架的Swift语言,一夜之间,各大IT论坛和社区都开始讨论并探索这门横空出世的新语言。1.2什么是Swift语言

苹果公司为用户提供了近乎完美的 OS X 系统以及用于移动端的 iOS 系统,并且为开发者开放了Cocoa和Cocoa Touch框架,使得开发者在这个平台上开发自己的应用成为可能,但是仅有框架是不够的,你还需要能和框架交流的语言,才能构建出对应的应用。从早期的 Objective-C 到现在的 Swift语言,都是为此而生,也可以说是应运而生。

Swift 语言是一种用来编写 OS X 和 iOS 应用程序的编译式程序语言,既拥有解释性语言的语法简洁、跨平台等特性,也拥有编译语言的执行效率高、强大及通用等特性。可以毫不避讳地说,Swift 语言应该是近段时间内最先进的语言。它易于上手,你可以在极短的时间内学会它,并快速将它运用于简单项目。学会并熟练使用Swift语言,相信它能使你在程序构建上如虎添翼。

注意 由于在2014年发布之前就有一门流行于世的Swift 语言,为了区别老Swift 语言和新发布的 Swift 语言,我们将在下文及后续章节中把过去的 Swift 语言称为“Swift 脚本语言”,而新版本我们则描述为“Swift”或者“Swift语言”。1.3特性

作为一门可以理直气壮说自己是具有现代化编程思想的语言,其必定有一些区别于其他“新老”程序语言的特性。同时,我们得承认,上一小节对“什么是 Swift”这个问题的描述其实是可以继续扩展的,而回答这个问题的另外一个角度,也就是理清楚 Swift 语言的特性。以后当你遇到这个问题,你可以通过这些特性,直接想到Swift是“...”这样一门语言。1.3.1 高级

计算机语言发展史上一大分水岭就是高级程序语言的诞生。由于汇编语言严重依赖于硬件(“一机一码”,可移植性极差),且助记符量大难记,于是人们又发明了更加易用、更符合人类思维模式的高级语言,并且大都拥有易读性、可靠性、易维护性、稳定性、可移植性等优点。

除了少数几个特殊的领域以外,现今的程序编写已经很少直接用到汇编语言。高级程序语言将复杂烦琐的识别翻译等操作交给了编译程序,程序员可以把更多精力用于创造性和抽象层次更高的事物上,大大提高了工作效率和工作质量。

毫无疑问,Swift 正是一门高级语言,拥有高级语言特有的特性。Swift 不仅继承了 C、Objective-C等编译语言的优点,同时也具有Python等解释性语言的简洁和易用性。

在此之前,不管你将编程当作一项艺术还是工程构建,或者是每天工作中需要做的最重要的事,一旦你开始使用Swift语言构建你的程序,你将会发现编程原来是这样快乐的一件事。1.3.2 易上手

Swift 语言的语法简单,完全不同于 Objective-C 的高门槛,你将不再需要为了复杂的消息传递而头疼。让很多致力于 AppIe 开发的程序员高兴(或者是沮丧)的是,Swift 语言没有多少机会让你能写出晦涩难懂的代码。同 AppIe 的其他产品一样,追求完美的苹果公司不想仅仅把它打造成一门强类型、安全性高的语言,而是让它同时拥有相当高的灵活度、可读性和其他的高级特性。

Swift 语言的发布,极大地降低了 AppIe 开发的门槛,这对于广大的开发者或开发者组织来说,都是一个巨大的契机。

而今,程序员已经成为这个时代最大的“手艺人”群体,并且在不断地平民化,通过使用一些新颖的程序开发思想和工具,你甚至动动鼠标就能生成一款 App。构建方式在不断革新,平民编程已经成为一种趋势,笔者在最近一次开发者聚会中就碰到过一个中医,他就一个程序员的话题侃侃而谈,交流程序构建思想。随着AppIe开发门槛的降低,将会有更多的程序新手和普通人加入进Mac和iOS开发的阵营。这个记录必将在随后几年不断刷新,而此时看到这里的你,可能几周后就能上架一个自己设计的App。1.3.3 兼容性

Swift 语言无缝衔接 Cocoa 和 Cocoa Touch,不用担心在使用 Swift 语言之后需要重新熟悉各种框架,AppIe为框架中的接口提供了大量的Swift版本。而且就算某些接口暂时没有支持Swift也不用担心,新的 IDE 允许你使用 Swift 的方式调用 C 或者 Objective-C 编写的程序库和接口。AppIe 会不断更新和升级,最终会使得几乎所有的文档都有Objective-C和Swift两种语言版本。1.3.4 运行效率

Swift 语言所有的代码都使用 LLVM 编译为机器语言,克服了 Objective-C 与 C 语言的兼容性问题,其内部实现中去除了大部分反复包裹主要代码的语法糖,尽可能地轻装上阵。按照 AppIe 给出的最新测试数据,用 Swift 语言编写的程序运行效率比 Python 快 3.9 倍,比 Objective-C 快 1.4 倍左右。测试数据可能跟硬件设备和其他环境因素有关,不过当你亲手构建出自己的程序时,你肯定会因为它的效率感到惊叹。1.3.5 运行时(Runtime)

由于早期 Objective-C 从 iOS 6、OS X 10.8 起就一直沿用相同的运行环境,而 Swift 语言在Mac OS、iOS 平台同 Objective-C 使用的是相同的运行时(Runtime)。也就是说 Objective-C 程序可以运行的大多数平台,Swift 程序也可以运行,我们的应用将不会局限于仅运行在 iOS 8 和 OS X 10.10平台上。1.3.6 可混编

你将有机会使用一种新颖的方式来实现程序的高内聚、低耦合,区别于 Objective-C 和 C 以头文件实现模块化的方式,Swift 语言将声明和实现都放在一个单元文件中,不用单独编写头文件和实现文件。

虽然组织方式不同,但是 Swift 代码支持和 Objective-C 代码混编于同一工程内,这种延伸就如同C 和 C++的关系一样。为了争取大量的开发人员并重复使用已存在的代码,Xcode 6 允许使用 App Target导入Objective-C文件,通过Objective-C的头文件(bridging header)来将类和接口暴露给Swift调用。1.3.7 开发工具

如果你要开发应用,你会需要用到 iOS 软件开发套件(SDK)以及 Xcode,其中 SDK 的全称是Software DeveIopment Kit,而Xcode是苹果提供给开发者的集成开发环境(IDE)。不同于Android的开发环境,Xcode 能够提供给你构建 iPhone、iPod、Mac 以及 iPad 上优秀应用需要的任何东西。Xcode 6带来了新的SDK以及支持实时预览功能的pIayground,在新的编程环境下,我们可以使用交互性更强大的方式编写程序,这种快速展现、即时预览、快速迭代的设计方式将有益于在你的团队中实施敏捷之类的构建思想。这一点,我们将在下面详细介绍。1.4搭建Swift开发环境

工欲善其事,必先利其器,如果想使用Swift语言开发Mac OS或者 iOS应用或者游戏,首先要确保你拥有已经安装好 Mac OS 操作系统(最低版本 10.9.3)的设备和最新的 IDE(Xcode 6.0 ReIease),以及对应运行平台需要的 SDK,以上都是在进行开发之前必须准备好的开发环境,本节将主要介绍开发环境的下载和搭建。1.4.1 Mac OS简介

对于长期使用 Windows 系统的人来说,可能一开始并不习惯这款十分重视用户体验的纯图形化操作系统,但是一但你加入了 Mac OS 用户阵营,将很难再愿意离开。这款基于 Unix 开发的系统拥有独一无二的安全性、稳定性以及让人惊叹的多媒体处理技术,和 iPhone 上的 iOS 一样,Swift 的细节被打造到了极处,从而成就了 Mac OS 如今高度的用户黏性。相比于 Windows 上多如牛毛的应用和游戏,Mac OS 的应用市场虽不缺精品,但数量上略显寒碜,不过这何尝不是你我可以大展拳脚的舞台?1.4.2 Mac OS 下载安装

注意 如果你已经拥有了一台安装有Mac OS X 10.9.3以上操作系统的设备,请跳过本小节。

支持 Swift 语言的最低系统版本是 Mac OS X 10.9.3,如果你现在手中的是版本低于 10.9.3 操作系统的设备,那么请跟随笔者的步骤,升级并部署出一个适合的开发环境。

在笔者编写本书的时候,官方发布的OS X系统最新版为OS X Mavericks 10.94,以及Beta版本的OS X Yosemite 10.10,建议读者选择当前最新的发行版,以追求更好的稳定性。

升级OS X系统有两种方式。一种是使用App Store扫描更新并选择下载更新。但是如果版本跨度太大(如10.8到10.9),则需要使用第二种方式,即直接到苹果公司官方网站下载最新的系统镜像文件来升级安装。下载完成后打开镜像文件,直接运行 InstaII OS X,按照自己的情况选择升级安装方式。注意,一定要在升级安装前备份好自己的文件和数据。

注意 下载系统镜像文件可以直接在 Apple 官方网站下载,但实际上还是会转入 iTunes 去下载,但是作为一个开发者往往需要用到Apple为我们准备的开发者预览版和一些开发资源,这时,你需要到 Apple 的开发者网站中去获取这些资源,Apple 开发者网站地址为:“https://developer.apple.com”。

在升级进度条走满之后,系统会自动进入初始化系统配置界面,在配置过程中关于登录、联网和传输信息的选项请根据自己的情况来选择。图1-1 选择地区图1-2 选择键盘图1-3 设置备份图1-4 设置登录账户图1-5 直接选择同意图1-6 创建用户账号图1-7 等待配置完成图1-8 升级安装成功

现在,恭喜你成功升级安装了自己的 Mac OS 系统,关于 Mac OS 的使用技巧请查阅各大论坛网友的分享。好了,先去体验一下最新安装好的Mac OS吧!1.4.3 下载并安装Xcode

安装系统只是搭建开发环境的第一步,下面我们将开始安装开发 Mac/iOS 应用需要用到的 IDE(集成开发环境)。首先需要下载最新版本的 Xcode,支持 Swift 语言的最低版本为 Xcode6.0。值得一提的是,6.0 GM版本的Xcode中只支持 iOS平台下编写Swift程序,而6.1则没有这个限制,由于我们前两章都将使用命令行程序做示例,所以我们建议大家直接下载安装最新版的 Xcode。使用 Mac OS,必须熟练运用 Mac App Store,它将为你提供海量 AppIe 平台下的应用与资源。如果是 App Store 下载的将会在后台静默安装,在下图所示的搜索框内输入“Xcode”。搜索 Xcode,并点击安装来开始下载,然后等待安装完成,如图1-9所示。图1-9 使用iTunes 搜索Xcode

你也可以登录 https://deveIoper.appIe.com/xcode/,选择页面上的 DownIoads 标签,在打开的页面中可以看到 AppIe 提供的最新发布的 Xcode ReIease 版本和 Beta 版本。建议选择最新的ReIease版本,因为它的稳定性和健壮性毋庸置疑。

请在下载完成后双击打开下载的 dmg 文件。如图 1-10 所示,鼠标点击 Xcode6 图标并拖动到右侧 AppIication 文件夹中从而开始安装,然后耐心等待一会儿,屏幕上会出现一个安装进度条,安装完成后进度条会自动关闭。图1-10 安装Xcode

Xcode 不同于其他集成开发环境,代码编辑、调试、编译、UI 设计等工具以及 SDK 都已经随着Xcode安装到你的本地开发环境中,所以到这里你已经初步完成了开发环境的搭建。接着你可以在App Store 中搜索下载并安装帮助文档查看工具 Dash,或者前往 Xcode 的 Libary 下载页面下载最新的iOS\Mac OS Libary。不过,环境的搭建只是编写代码之前的必须的第一步,随后,笔者将在1.5小节与你一同编写你的第一个Swift程序。1.4.4 iOS开发者计划

要成为官方认可的开发者,首先需要在 iOS 开发者计划中注册,当然,如果你只是在模拟器上测试你写的应用,则不需要注册该计划。注册成功后,你可以无限制地访问 iOS 开发者中心以及 iOS Provisioning PortaI。需要注意的是,这里所说的无限制使用的资源是指一些只有加入了开发者计划后才能使用的开发者资源,比如Mac OS的开发者预览版,比如未正式发布的 iOS Library等。AppIe的开发者注册和应用发布一样,通常需要1~3周时间审核,强烈建议大家加入。1.5熟悉Xcode及模拟器环境

Xcode 包括源代码编辑器、图形用户界面(UI)编辑器、程序编译器、调试器以及许多其他实用的功能模块。它使用一个单一的窗口作为工作区,这个工作区被称为 Workspace 窗口,它承载了大部分我们编写程序所需要的功能和数据。可以说Xcode比大多数其他语言的集成开发环境都要强大和贴心,我们可以很流畅地在编写代码、Debug、设计用户界面这三个状态中自由切换,可以使用强大的自适应UI设计方式,同时你也可以对相应的工具做出扩展。

新版本的 Xcode 不仅为我们准备了 Swift 语言、Home Kit 和 HeaIth Kit,还带来了许多已有特性的升级和扩展。当 Xcode 安装完成后,我们可以在应用程序文件夹中右键点击 Xcode 图标,选择显示包内容,进入 Contents\AppIications\和 Contents\DeveIoper,从而可以看到里面已经包含了新版本的 iOS SDK以及全新的源代码编辑工具,编译器,调试器,界面设计工具以及各种设备模拟器。1.5.1 升级和改变

我们总结了一下以下几点新版Xcode中带来的重要升级和改变,同时,这些新面孔也可能是我们以后实际工作中接触的最多的。

简洁易用的 Objective C 语言继承者——Swift 语言。通过一段时间的实际编码,我们体会到 Swift语言的确可以称得上简单易用,而且要比它的前任更能胜任并且适应现代化的快速开发潮流。

PIayground,实时预览功能,也就是边写代码边看效果,这是一种编程方式的革新,我们可以不经过编译运行就能直接看到当前代码段运行后的效果,这种功能受到了广大开发者极大的欢迎。

Scene Kit 3D 游戏引擎,让开发游戏变得更加简单。如果仅仅开发在 AppIe 平台上运行的游戏,这是一个优先选择,和其他的第三方引擎不同,它的优化和效率做得更加彻底,毕竟是“一家人”。

Home Kit 智能家居,这是一个用来交互控制用户家中连接到 iOS 设备的全新框架。在未来只要硬件厂商支持 Home Kit 的协议,那么我们家里的所有电器设备都可以用 iOS 来控制!同时,Xcode6 也带来了用来测试与设备间通信的 Home Kit 模拟器,设想一下未来的你,结合 Siri的语音指令控制洗衣机快速干衣,或者控制扫地机把午餐时掉到地板上的饭渣清理干净。这是一个预测者们公认的蓝海区域,如果后期的硬件支持足够多的话,这个框架将会大放光彩。

Touch ID 指纹识别,支持应用开发,不过到现在为止所开放的接口还太少。前期可能主要用于购物付款之类的功能。

HeaIth Kit 可穿戴设备,健康专家,是另一个技术趋势。借用这个框架可以协调设备中的电子原件(陀螺仪、重力感应)统计身体指数,比如现在市场上的智能手环、智能眼镜。

Storyboards 更加方便的 UI 设计,其中最大的改变就是 wAny/hAny。开发者可以忽视具体设备的屏幕尺寸和分辨率,不用再分别设计 view 上的控件位置和大小,而是分别设计好普通(reguIar)和紧密(compact)两种适配类型即可,程序会自动适配。

全面支持 Unicode 字符集,这意味着什么?最直接的体现就是中文编程成了现实,你可以试试将程序中的变量名、常量名、对象名、实例名都用中文来代替。当然,这只是其中一种运用方式,你可以发挥自己的聪明才智,为其找到更多的应用场景。1.5.2 第一个Swift语言程序

学习任何一门新的编程语言,编写并运行第一个程序 HeIIo WorId 总是激动人心的。虽然笔者认为这其实没有什么必要,但是为了遵循应用程序开发的惯例,我们还是从零做起,从而使大家对程序编写有一个初步感性的认知。下面我们就从零开始构建一个Swift语言程序。

1.打开Finder选择前往-应用程序-选择Xcode(建议将Xcode拖放到Dock中,这样下次可以直接点击Dock上的应用图标启动Xcode,如图1-11所示)。图1-11 通过lanchpad打开Xcode

2.在弹出的对话框中有三个选项(如图1-12所示)。

Get started with a pIayground:创建一个 pIayground 单元,它将让你快速体验到 pIayground的特性。

Create a new Xcode project:创建一个Xcode工程,通常我们新建一个项目都会选择此项。图1-12 Welcome to Xcode

Check out an existing project:打开一个已经存在的工程,这个功能在你将项目代码转移到其他工作站上的时候非常有用。

在这里我们选择Create a new Xcode project,当然也有另外一种方式,依次选择屏幕顶部菜单栏中的菜单项:FiIe-New-New Project。

3.在 Choose a tempIate(选择程序模版)对话框中,我们需要选择要编写的应用程序的类型。可以看到在 iOS 和 OS X分支下分别有几个子类别,点击每个子类别可以看到其中具体包含的模版,通过选择模版,Xocde 可以快速地为我们快速创建出对应模版的干净应用,你可以选择视图应用、游戏、命令行甚至是框架库。单击左侧 OS X 分类下的 AppIication,并在对话框右侧单击 Command Line TooI(表示需要创建的是一个命令行应用),然后单击Next按钮(如图1-13所示)。图1-13 选择工程模版

4.在Choose options for your new project(设定新项目选项)对话框中填入你的项目信息(如图1-14所示)。图1-14 设置工程信息

在 Product Name(项目名称)中输入“heIIo worId”(这里是项目名称),在 Organization Identifier(机构名称)中填入“com.worId”(组织标识,在新建的项目中所有源文件都会默认以这个标识作为开头来命名),Language(开发语言)项中有“Swift”、“Objective-C”、“C”和“C++”几个可选项,在这里我们当然选择“Swift”。

注意 Xcode 从 iOS 5 时代开始已经支持 Unicode 字符,所以项目名称和组织标识中可以使用空格(实际上Xcode只是隐式的用"-"替

试读结束[说明:试读内容隐藏了图片]

下载完整电子书

若在网站上没有找合适的书籍,可联系网站客服获取,各类电子版图书资料皆有。

客服微信:xzh432

登入/注册
卧槽~你还有脸回来
没有账号? 忘记密码?