《Swift iOS应用开发实战》——1.1初识Swift

1.1初识Swift

Swift是苹果在WWDC 2014所发布的一门编程语言,用于开发iOS和OS X应用程序。
2010年7月LLVM编译器的原作者暨苹果开发工具部门总监克里斯·拉特纳(Chris Lattner,就是在WWDC 2014大会上亲自演示Swift代码的那位仁兄)开始着手开发Swift语言,一直到2014年6月发布,Swift大约经历了4年的开发期。在WWDC 2014大会中,苹果宣称Swift的特点是:快速、现代、安全和具有交互性。
Swift的处理速度非常快。在WWDC上,苹果展示了Swift、Objective-C以及Python的速度对比,Swift比Objective-C快1.4倍,比Python快3.9倍,如图1-1所示。在进行RC4加密算法测试中,Swift则是Python的220倍。但笔者认为苹果在这里使用了障眼法,因为每门编程语言都有其优缺点,如果非要用自己的长处与别人的短处相比,明显有些小气了。
在笔者看来,Swift就像是一门可以被编译的脚本语言。因为在很多语法特性上Swift和一些脚本确实非常相似。但是,在应用程序开发中,Swift不是以一门脚本语言来运行的,所有的Swift代码都会被LLVM编译为本地代码,然后以极高的效率运行。

Swift和Objective-C都是类型安全的语言,变量和方法都有明确的返回,并且变量在使用前需要进行初始化。而在语法方面,Swift迁移到了业界公认的非常先进的语法体系,其中包含了闭包、多返回、泛型和大量的函数式编程的理念,函数终于可以作为变量保存了。初步看来,Swift在语法上借鉴了Ruby的很多人性化设计,但借助苹果自己手中强大的LLVM编译器,在性能上必然要甩开Ruby很远。
从另一方面说,Swift的代码又是可以通过交互来“解释”执行的。Xcode 6加入了所谓的Playground功能来对开发者输入的Swift代码进行交互式响应,当然,我们也可以使用Swift的命令行工具交互式地执行Swift语句。这里之所以把“解释”两个字打上双引号,是因为即使在命令行中,Swift其实不是被解释执行的,而是在每条指令后都从开始的Swift代码全部进行编译,然后执行。这样的做法依然可以让人“感到”是在做交互解释执行,由此这门语言的编译速度和优化水平可见一斑。同时Playground还顺便记录了每条语句在执行时的各种情况,称做一组Timeline。我们可以使用Timeline对代码执行逐步检查,省去断点调试的时间,也很方便,如图1-2所示。

不知大家是否有这样的想法:既然苹果的生态系统做得这样出色,为什么还要推出一门全新的语言,这不是自找麻烦吗?在WWDC 2014大会上,克雷格·费德里吉(Craig Federighi)给出了这样的答案:苹果一直使用Xcode作为Mac和iOS平台的开发工具,而Xcode的核心是我们用来开发应用的Objective-C语言,它已经为我们服务了20多年,我们很喜欢它。但我们必须问自己一个问题,一个没有C的Objective-C会是什么样子?
苹果不仅仅想了,还将其付诸实践,因此出现了Swift语言,并且苹果希望使用Swift来主导该领域。苹果将Swift视为“亲生儿子”,并把它视为Objective-C的继承者。作为iOS或Mac的开发者,笔者深感学习和使用Swift的必要性。现在Swift可以和原来的Objective-C或C代码混用(不同于Objective-C和C++或C在同一个.mm文件中的混编,Swift文件不能和Objective-C代码写在同一个文件中,需要将两种代码分开)。编译出来的二进制文件是可以运行在iOS 7和iOS 8设备上(不支持iOS 6及之前的系统)。
现在Xcode 6中所有的文档都有Objective-C和Swift两种语言版本,并且按照苹果开发者社区的一贯跟进速度,有理由相信在不久的将来,苹果很可能会逐步废弃对Objective-C的支持,而全面支持Swift。所以,关于到底是学Swift还是Objective-C的问题,笔者的建议是,尽快学习Swift,尽快使用Swift。在苹果无数工程师和语言设计天才的努力下,Swift吸收了众多语言的精华,应该是当下最新也是最先进的一门编程语言之一。我想,也正是苹果对这门语言有这样的自信,才会在公司全盛的时候,不墨守成规,如此大胆地推出新的语言。因为苹果必定比你我都更明白,更换语言带来的利必须远大于弊,才会值得冒如此大的风险。从这个意义上来说,WWDC 2014大会就是程序开发业界的一枚重磅炸弹,也必将写入史册,而你我身在其中,变成了这段历史的见证者。修改一位伟人的话:苹果开发是Swift的,也是Objective-C的,但归根结底是Swift的。

时间: 2024-09-09 14:17:41

《Swift iOS应用开发实战》——1.1初识Swift的相关文章

《Swift iOS应用开发实战》——导读

前言 苹果公司在2014年6月的WWDC(Worldwide Developers Conference,苹果全球开发者大会)上向公众展现了全新的iOS 8移动操作系统和Yosemite桌面操作系统.作为开发者,大会开幕之前的任何爆料,我都是不会错过的.在大会开幕的前一天,我得知本届大会的宣传标语为:编写代码改变世界(Write the Code. Change the World).历届WWDC的宣传标语都是以全新.卓越.领先.创新.引领等作为关键词,而这次却使用了非常接地气的"编写代码&qu

《Swift iOS应用开发实战》——1.3 了解Xcode

1.3 了解Xcode 作为一名开发者,不管在什么平台上进行开发,总需要一大堆的软件支持,才能将自己的想法变成可以让成千上万人受益的应用程序.苹果不希望这样,它为开发者提供了一个优雅的.功能强大的.光鲜亮丽的开发工具包,这个包就叫做Xcode.通过Xcode,我们可以创建.测试.部署和发布iOS或OS X应用程序.在2014年6月,苹果发布了iOS 8和Xcode 6的beta版本,在使用的过程中笔者能够感受到苹果力求让开发工具无比简单.实用.通过其强大的功能和全新技术,帮助开发者在创建应用程序

《Swift iOS应用开发实战》——3.1MVC设计模式简介

3.1MVC设计模式简介 要想成为一名优秀的iOS程序开发人员,至少要具备一种面向对象程序设计语言的开发经验,比如Java.C++或C#,并且C语言也是我们必须熟练掌握的,在此基础上学习Swift语言就会游刃有余.除此以外,我们还要对设计模式有一定的了解.在iOS中最重要的,也是使用最多的一种设计模式就是:模型-视图-控制器(Model-View-Controller,MVC)设计模式. 在开发面向对象应用程序之前(甚至是面向对象程序开发成为主流后的一段时间),程序员们在编写程序代码时还总是愿意

《Swift iOS应用开发实战》——第2章 搭建计算器的界面

第2章 搭建计算器的界面 作为一名开发者,有的时候你可能会听到身边的人在指着手机不停抱怨:"如果有这样一款应用该多好--"是呀,当一个不经意的想法被你变成现实的时候,你所得到的不仅仅是经济方面的利益,更多的是那种经历,那种从无到有,从幼稚到成熟的过程,而经历和过程无比珍贵.通过本书的学习,你将学会如何创建基于iOS平台的应用程序,并且通过对程序的改进,你完全有可能开发出一款在App Store上有百万用户下载的应用,但"千里之行始于足下",让我们一起先从本书的第一个

《Swift iOS应用开发实战》——第1章 Swift简介

第1章 Swift简介 北京时间2014年6月3日凌晨1点,苹果公司(以下简称苹果)在美国旧金山Moscone中心举行了WWDC开发者大会开幕式,会上正式发布了iOS 8移动操作系统以及OS X Yosemite桌面操作系统.抛开Yosemite不谈,苹果在iOS 8中更新了很多内容,其中包括: 锁屏状态下直接快速删除通知. 支持发送语音信息. 输入法支持预判联想功能. 新增Healthkit健康应用. Siri支持流媒体识别,可以直接通过它购买音乐. 自带相册集成更强大的图片处理软件. 大幅改

《Swift iOS应用开发实战》——1.4  使用代码编辑器

1.4 使用代码编辑器 回到刚刚创建的HelloWorld项目,此时在项目导航中可以看到以下3个文件:AppDelegate.swift.ViewController.swift.Main.storyboard故事板文件.当然还有一些其他文件存在于项目之中(比如Images.xcassets文件夹),我们暂时先不去管它们. 步骤1 在项目导航中选择顶部的HelloWorld条目(蓝色图标的),在编辑区中选择"General"标签,然后在下面的Deployment Info部分的&quo

《Swift iOS应用开发实战》——2.1为移动平台开发应用

2.1为移动平台开发应用 如果之前根本没有为Cocoa或它的前身NeXTSTEP开发过应用程序,你可能会感觉到在最初使用Cocoa Touch(iOS的应用程序框架)开发iOS应用程序时,之前所学的所有程序语言(比如Java..NET)在这里都派不上用场,时常处于一头雾水的混沌状态.这是初学者在学习时的正常状态,你根本不用害怕这种状态,只要坚持下去就会慢慢适应.本书假定你已经具有面向对象的开发经验,以及初步掌握了Swift语言的相关知识,这些经验和知识对于编写iOS应用程序是非常重要的.在为移动

《Swift iOS应用开发实战》——1.2 了解Playground

1.2 了解Playground 本书使用Xcode 6 beta 4作为开发工具,与之前发布的beta 1版本相比,beta 4对Swift语言做了大幅度改进.开发者可以使用Swift来编写更好.更安全的应用程序,而且新版本的Swift也修正了许多开发者提出的请求,尤其是对数组进行了重新设计.但是,beta版本毕竟不同于正式版,依然存在着许多Bug,只不过对Swift初学者来说影响不大.启动Xcode 6,就会看到一个欢迎界面,如图1-3所示.欢迎界面分为左右两部分,左侧有三个选项,分别是直接

《Swift iOS应用开发实战》——2.5与代码进行关联

2.5与代码进行关联 通过前面的学习,我们已经知道如何在故事板中创建用户界面,但在搭建好用户界面以后又要做什么呢?接下来就需要将控件对象和程序代码关联起来.我们在创建Calculator项目的时候使用了默认的Single View Controller模板,该模板关联了故事板中的View Controller场景和ViewController.swift文件中的ViewController类.现在我们在故事板中查验一下.在故事板中选中View Controller场景,使用Command+Opt