关东升swift 专访关东升:学习Swift语言 迎接iOS8时代

2017-06-11
字体:
浏览:
文章简介:「编者按」社区之星18期采访了一直致力于iOS开发的iOS技术作家.iOS技术顾问.移动开发专家关东升,他有着近20年开发培训经历.在软件开

「编者按」社区之星18期采访了一直致力于iOS开发的iOS技术作家、iOS技术顾问、移动开发专家关东升,他有着近20年开发培训经历。在软件开发中,他认为需要把更多的人文的元素融入到产品中,这样的产品才能成功。今天,关东升老师携他的新书《Swift开发指南》做客CSDN社区问答栏目, 担任第十一期的嘉宾,届时会接受广大网友的提问,欢迎各位网友前来与关老师一起探讨Swift开发。

苹果公司于6月3日凌晨在美国旧金山召开2014年全球开发者大会,在所有为开发者提供的服务中,最新的编程语言Swift成为该会的最大亮点,其可与Objective-C共同运行于iOS和Mac OS平台,用于搭建基于苹果平台的应用程序。

时隔近三月之久,Swift在慢慢成长着,仅发布1月,Swift就进了TIOBE 2014年7月编程语言排行榜Top 20,获得了广大程序员的青睐。

三月来,伴随Swift诞生,业内也上演着一个又一个传奇,《Swift中文版》翻译组在GitHub上进行协同翻译。此项目开始不到一周就获得了1067个Star。令人吃惊的是,该项目的发起人是北航的大三学生。

此外,全球第一本关于Swift语言的技术书籍《Swift开发指南》也由我国关东升、赵志荣共同完成出版,该书在苹果宣布Swift语言三天后就启动了《Swift开发指南》撰写,在Swift语言二十天后第一稿就交予出版社,后又进行了多次修改。

这本书特别之处在哪里?20天时间写出全球第一本Swift书,如何做到的以及质量有保证吗?Swift语言究竟如何?和Objective-C相比,Swift到底有什么优势?Swift将取代Objective-C吗?……带着这些疑问,我们采访了《Swift开发指南》第一作者关东升,且看关老师是怎样说的。以下为采访正文:

Swift 1.0正式版本发布后,会有更多的人投入到iOS开发。

关东升(博客),国内知名iOS技术作家,iOS技术顾问,移动开发专家。精通iOS、Android和 Windows Phone及Html5等移动开发技术。曾先后主持开发大型网络游戏神农诀iOS和Android客户端开发、国家农产品追溯系统iPad客户端开发、酒店预订系统iPhone客户端开发、金融系统微博iOS、WP7、Android客户端开发。

在App Store发布多款游戏和应用软件,擅长移动平台的应用和游戏类项目开发。

近期为中国移动研究院、惠普、云南移动、东软、方正科技、大唐电信、中石油、深圳康拓扑、上海财富168、天津港务局、北京工商银行、南航、NTT、广州软件协会、福州软件园等企事业单位授课。

用4年时间建立起iOS学习培训体系,撰写8本相关书籍,录制15个系列,近6000分钟在线视频课程。是国内建立完整的iOS学习培训体系的第一人,Swift第一人,Swift第一视频创建者。

著有多部移动开发畅销书:《iOS开发指南》、《iOS网络编程与云端应用最佳实践》、《iOS传感器应用开发最佳实践》、《iOS多媒体技术开发最佳实践》、《iPhone与 iPad开发实战——iOS 经典应用剖析》、《Android开发案例驱动教程》、《Android网络游戏开发实战》、《品味移动设计》和《Swift开发指南》等。

CSDN:请和大家介绍下你和目前所从事的工作。

关东升:我现在主要从事iOS、Android相关的开发、培训和图书撰写。

CSDN:你用20天时间写出全球第一本Swift语言书,能否简单介绍下《Swift开发指南》的撰写情况?以及如何保证质量的呢?

关东升:我们团队5个人,《Swift开发指南》主要是我与赵志荣老师编著,赵大羽老师负责图片,其他人做审核,在给出版社之前,我们已经自己审核了三遍。20天的时间里,我们每天工作20小时,也没有周末和假期。因为我以前有多本著作,撰写了Java、C 和C#等语言的教程,经验比较丰富,思路也是有的,这次只不过是换成Swift语言,对我们来说还是比较轻车熟路的。

看起来20天写一本书时间比较短,难免会产生一些疑问,质量如何保证?其实按正常写一本书的时间是5-6个月,每天3-4个小时写作,除去周末,大概需要500小时写作时间。但是我们这本书用了20天时间,每天写作近20小时,这期间没有周末和假期,而且是我们一个团队5个人一起在努力。

虽然看起来比较短的时间完成了这本书,但是整本书每个环节都没有疏漏,而是更加严格,所以在质量把关这块我们也是下了很多功夫。还有就是一个版本迭代的过程,正式版马上也要出来了,我们会第一时间全力做出修订版本,然后我们把更新的部分发布到图灵社区和智捷课堂社区里面。

CSDN:本月,关于Swift语言的另一本技术书籍《Swift权威指南》也上市了,《Swift开发指南》一书的特点是什么?

关东升:《Swift开发指南》一书注重考虑基础语言的学习特点,前几章安排的篇幅都比较短,在每一章后面附加了同步练习,读者学习完一章,利用同步练习加强巩固,以便于消化吸收书中的知识点。在最后一章,我们重点介绍了一个iPhone的计算器应用,考虑到Swift和Objective-C混合搭配,我在书中提出了分层架构设计模式,应对于Swift时代下的架构设计。

CSDN:以你这么多年移动开发经验,你会给Swift什么样的一个评价?

关东升:Swift最主要的是具有现代计算机语言的特点,简单的面向对象、数据类型的自动推断、具有闭包特征等。

Swift最大的特点是简单,吸取了其它的优点,Swift独到的地方是它使得结构体和枚举类型都具有面向对象的特征,并且简化了面向对象实现。Swift语言降低了苹果开发的门槛,又综合了很多优秀语言的优点,相信未来会赢得很多开发者的青睐。

CSDN:你觉得Swift语言与其它语言有什么异同?

关东升:从面向对象的角度Swift语言没有封装特性,在变量声明的时候我们可以不指定具体的数据类型,由编译器自动推断出来它的类型,看起来很像JavaScript,其实Swift的很多特征都类似于JavaScript。

CSDN:Swift语言和Objective-C的关系是怎样的?和Objective-C相比,Swift到底有什么优势?Swift会取代Objective-C吗?

关东升:Swift语言出现后,iOS程序员有了更多的选择。在苹果社区里,有很多人在讨论Swift语言以及Objective-C语言的未来,人们关注的重点是Swift语言是否能够完全取代Objective-C语言。然而在我看来,苹果公司为了给程序员提供更多的选择,会让这两种语言并存。既然是并存,我们就有4种方式可以选择:

CSDN:自今年6月份苹果公司在WWDC2014上对外宣布Swift编程语言以来,该公司开发的编程软件Xcode 6已经发布了6个Beta版本,可以说Swift语言在不断改进中进步,直接导致Swift语言无法稳定。当Swift 1.0到来的时候,它会变成什么样子呢?Swift 1.0意味着什么?

关东升:在苹果开发社区里,对于Swift语言关注的程度超过了有史以来任何计算机语言,Swift 1.0正式版本发布后,很多人会尝试使用Swift开发iOS 8应用,开发起来要比Objective-C快,会有更多的人投入到iOS开发。

正式版的发布意味着苹果开发简单,快捷的时代到来。也会迎来苹果又一轮开发热潮的到来。

CSDN:初学者在学习Swift语言时,需要掌握哪些技术知识?以及需要注意什么?

关东升:Swift就是一种语言,学习它不需要有什么技术门槛,由于语法类似于JavaScript,如果有JavaScript语言基础学习Swift就很容易上手。还有就是关于现在的Objective-C语言,其实可以没有Objective-C基础,直接去学习Swift语言的。

这样的话一些安卓开发者和有JavaScript基础的开发者学习Swift可以很容易的上手,但是Swift与JavaScript在面向对象方面有很大的差别。而且苹果放低了开发入门门槛,对苹果开发的未来也会有重大的战略意义。

CSDN:在软件开发中,存在“快速迭代”和“慢工出细活”两种观点,对此你怎么看?

关东升:“快速迭代”和“慢工出细活”两个观点并不矛盾,“快速迭代”是高手的游戏,需要你很熟悉你要做的工作才能“快速迭代”;“慢工出细活”是在允许的时间内把节奏放慢。我们能够做到收放自如,在这种境界下的工作才是一种享受。

CSDN:你曾决定要写一个系列的iOS丛书,共规划了6本书,如今也已完成,此刻有什么感想?接下来还有其它的著书计划吗?

关东升:写书是一个痛苦的蜕变过程,很多人有这个能力去写书,但是考虑到眼前的利益一般不会着手开始或坚持写下去。这是因为一本书需要5至6个月的时间编写,出版社需要3至4个月的时间校稿,然后上市3到4个月之后才能有回报。

一本书一年后才能拿到稿酬,如果市场不买账也就只能拿到1万多人民币。事实上写书除了有很大风险外也是个折磨人的事。在这个过程中我每天都笔耕不辍,每当写到一半的时候,心情是最烦躁的时候,好像一个人在黑夜之中前行,看不到前面的路还有多远,我只能不断告诉自己要坚持走下去、不要停下来,将近4年时间我就是这样走过来的。

从2013年底我们开始编写Cocos2d-x系列从书,这一系列包括了:

目前完成了:

最后,感谢广大读者多年来的支持,感谢CSDN对我们多年的支持。

友情提醒:关东升老师从今天开始,坐镇CSDN社区问答栏目的第十一期,届时会接受广大网友的提问,欢迎各位网友前来与关老师一起探讨Swift开发。