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

简介:

本节书摘来自华章计算机《Swift iOS应用开发实战》一书中的第1章,第1.1节,作者:刘铭 著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

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编译为本地代码,然后以极高的效率运行。


image


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


image


不知大家是否有这样的想法:既然苹果的生态系统做得这样出色,为什么还要推出一门全新的语言,这不是自找麻烦吗?在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的。

相关文章
|
26天前
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
105 4
|
2月前
|
设计模式 安全 Swift
探索iOS开发:打造你的第一个天气应用
【9月更文挑战第36天】在这篇文章中,我们将一起踏上iOS开发的旅程,从零开始构建一个简单的天气应用。文章将通过通俗易懂的语言,引导你理解iOS开发的基本概念,掌握Swift语言的核心语法,并逐步实现一个具有实际功能的天气应用。我们将遵循“学中做,做中学”的原则,让理论知识和实践操作紧密结合,确保学习过程既高效又有趣。无论你是编程新手还是希望拓展技能的开发者,这篇文章都将为你打开一扇通往iOS开发世界的大门。
|
2月前
|
搜索推荐 IDE API
打造个性化天气应用:iOS开发之旅
【9月更文挑战第35天】在这篇文章中,我们将一起踏上iOS开发的旅程,通过创建一个个性化的天气应用来探索Swift编程语言的魅力和iOS平台的强大功能。无论你是编程新手还是希望扩展你的技能集,这个项目都将为你提供实战经验,帮助你理解从构思到实现一个应用的全过程。让我们开始吧,构建你自己的天气应用,探索更多可能!
73 1
|
28天前
|
JSON 数据处理 Swift
Swift 中的网络编程,主要介绍了 URLSession 和 Alamofire 两大框架的特点、用法及实际应用
本文深入探讨了 Swift 中的网络编程,主要介绍了 URLSession 和 Alamofire 两大框架的特点、用法及实际应用。URLSession 由苹果提供,支持底层网络控制;Alamofire 则是在 URLSession 基础上增加了更简洁的接口和功能扩展。文章通过具体案例对比了两者的使用方法,帮助开发者根据需求选择合适的网络编程工具。
29 3
|
28天前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
29 2
|
28天前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
29 2
|
1月前
|
安全 数据处理 Swift
深入探索iOS开发中的Swift语言特性
本文旨在为开发者提供对Swift语言在iOS平台开发的深度理解,涵盖从基础语法到高级特性的全面分析。通过具体案例和代码示例,揭示Swift如何简化编程过程、提高代码效率,并促进iOS应用的创新。文章不仅适合初学者作为入门指南,也适合有经验的开发者深化对Swift语言的认识。
48 9
|
1月前
|
机器学习/深度学习 安全 数据挖掘
Swift语言的应用场景非常广泛
Swift语言的应用场景非常广泛
30 4
|
1月前
|
JSON 前端开发 API
探索iOS开发之旅:打造你的第一个天气应用
【10月更文挑战第36天】在这篇文章中,我们将踏上一段激动人心的旅程,一起构建属于我们自己的iOS天气应用。通过这个实战项目,你将学习到如何从零开始搭建一个iOS应用,掌握基本的用户界面设计、网络请求处理以及数据解析等核心技能。无论你是编程新手还是希望扩展你的iOS开发技能,这个项目都将为你提供宝贵的实践经验。准备好了吗?让我们开始吧!
|
1月前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户点击按钮时,按钮将从圆形变为椭圆形,颜色从蓝色渐变到绿色;释放按钮时,动画以相反方式恢复。通过UIView的动画方法和弹簧动画效果,实现平滑自然的过渡。
56 1