Swift Playgrounds
在2014年,苹果公司的世界开发者大会上,苹果推出了让所有iOS开发惊讶的新的编程语言Swift。Swift被宣传为“快速,现代,安全,交互”编程语言。Swift语言简单易学并且拥有很多提高编程效率的特征。
在Swift语言推出之前,iOS app主要由Objective-C语言编写。苹果公司选择这门语言作为Mac和iOS开发的主语言已经有20多年时间了。我和很多iOS开发人员交流过。他们中的大部分都认为Objective-C不易学习并且语法怪异。简而言之,Objective-C 代码吓到了不少开始学习iOS编程的初学者。Swift编程语言的发布可能就是苹果公司对这些评论的一种答复。Swift的语法更加整洁并且容易阅读。从Swift的beta版本发布我就开始使用它编程。我想说,你肯定会认同使用Swift开发会更有效率。Swift确确实实加速了开发进程。一旦你习惯了使用Swift编程,你将不再愿意再使用Ojbective-C。
在我看来,Swift将会吸引更多的网络开发人员开发App。如果你是一名具有某种脚步语言编程经验的网络开发人员,你的经验将会帮助你更好的掌握iOS开发知识。对你来说Swift学习将会很简单。即使你完全没有编程经验也没有关系,你会发现这门语言很友好并且使用Swift开发app感觉非常自然。
让我们通过对比以下程序片段,初步了解一下Swift语言。
第一段代码是由Objective-C编写的,而第二段代码是由Swift编写的。你喜欢哪种语言呢?我猜想你会更喜欢Swift,特别是你会觉得Objective-C的语法非常怪异。常量和变量是编程语言中最基本的两个元素。在Objective-C中,当你声明一个常量或者变量时,你需要指明类型信息,比如integer或者string。对于Swift,引入了一种新的功能,名叫类型推断(Type inference)。你不再需要说明变量或者常量的类型信息。你只需要使用let说明常量和使用var说明变量即可。Swift足够智能,可以通过检查你提供的值来推断类型。
你可能注意到了另外一个不同:Swift省略了队尾的分号。在Objective-C,你在句尾梳写分号。如果你忘记了分号,将会编译错误。很多Objective-C的初学者都经历过这种错误。Swift语言会让你的开发更加简单。Swift增加了许多强力特征让你的编程工作更加流畅。正如你在上面的例子中看见的,String(字符串)的维护更加简单。在Objective-C中,你需要选择NSString和NSMutableString类型来暗示该String是否可以背修改。在Swift中你不必这样做。无论什么时候你将一个字符串String声明为变量,在你的程序里你都可以修改这个字符串。连接字符串非常简单。只要使用+号就可以连接两个字符串。更进一步,Swift允许你直接使用==符号对比字符串。
学习编程最好的方法就是直接写程序。Xcode 6新增了一个功能叫做Playgrounds。这是一个交互式开发环境,开发者可以在该环境里实验编程并且可以直接看到程序运行结果。假设你安装了Xcode 6(或者以上),运行Xcode,你会看到如下开始界面。
Playground是一种特别类型的Xcode文件。你只需要点击“Start with a Playground”,然后在弹出的界面填写项目名和选择平台类型。你可以使用默认的名字或者自己命名,但记得需要选择iOS平台。
一旦你确认并保存信息文件完毕,Xcode将会打开如下Playground交互界面。你会在屏幕中看到在屏幕的左边面板,是你编辑代码的界面。
当你在左边输入代码时,Playground将立即解释你的代码并在右侧面板显示结果。默认情况下,Playground包含两行代码。你可以在右侧面板立刻看到“Str”声明的结果。
我们一起来写一些代码。这个练习的目的是让你初步接触一下Swift编程并且对Xcode有个初步的印象。在讲述过程中我将会解释一部分代码。但是即使你看不懂任何一行代码也没有关系,特别是你还是一个新手的话。我想你会对一些术语比如:类,方法等感到困惑 。现在,不要多想,全身放松地去使用Xcode。我们将再后面的章节介绍这些概念 。
让我们马上开始。
首先,让我们看一下两行代码的关键字。这里我们又定义了两个变量
当你输入上面的代码时,你马上可以在右侧的面板上看到结果
让我们继续增加下面的代码
message1 .uppercaseString
Xcode的编辑器会弹出一个自动完成功能。自动完成功能是一项非常友好的能够帮助你快速完成代码的功能。一旦你输入“mess”,你将会看到一个自动完成窗口,里面会给出一些基于你的输入的一些建议。这时你需要做的就是选择“message1”并且敲击回车。
Swift使用点(.)语法来实现方法调用或者访问变量的属性。当你在message1后面输入点时,自动完成窗口会再一次弹出。里面会列出一系列属于该变量的方法或者属性。你可以继续输入“uppercaseString”或者从自动完成窗口选择。
一旦你完成输入,你可以立刻在输出窗口看到结果。当你使用UppercaseString属性,message1的内容将会自动
转换成大写。
继续输入以下代码
Swift允许你使用+号连接两个字符串(String)。上面这行代码将message2的内容转换成小写,
并且和另一个string连接在一起。更有趣的是,你可以在你的代码中包含emoji字符图形。你可能会问如何在MaxOS中输入emoji字符。很简单,按下control+command+spacebar(控制+命令+空格键),就会出现emoji图形选择窗口。
让我们继续输入下面的代码片段:
条件逻辑在编程中非常常见。有时候,当某个添加满足时你想执行某一段确定的代码。if-else语句是Swift提供的控制流方法之一。在这段代码中,我们使用==操作符对比了message1和message2。如果它们相等,程序会打印出“Same message”。否则,将会打印出“Not the same message”。你将会在你的屏幕中看到如下结果。
让我们做一点更有趣的事情,例如创建一个标签(label),这在用户界面中非常常见:
这里我们使用内建的UILabel 类创建了一个label并且设置它的大小为300*50。我们把它的text属性设置为
message1.为了在Playground中预览UI元素,你可以点击快速查看(Quick Look)或者历史值(Value History)图标。快速查看功能通过一个弹出窗口显示label。如果你使用历史值(Value History),则Playground会打开一个独立的预览面板
刚才的label是一个毫无特色的label。改变它的颜色应该是个不错的想法。不错的是,你只需要一行代码就可以定制颜色。你还可以很容易的中间对齐文本或者将label设置成圆角。输入如下代码你将会看到一个橘黄色的圆角label。
这就是iOS SDK的强大能力。它里面包含了成千上万的预定义的元素,并且开发人员只需要很少的代码就可以定制这些元素。
要说一下,不要被我误导了。一般来说创建用户界面你不需要输入代码。Xcode提供一个叫Storyboard(故事板)的功能,你可以通过拖拽来设计UI。我们将会再下一章讲述。
所以你现在对Swift已经有初步概念了。你现在感觉Swift怎么样呢?喜欢它吗?我希望你能感觉到Swift非常容易学习和使用。最重要的是,我希望Swift不会让你不再想开发app。下一章,你将会学到如何创建你的第一个app。
专题目录: