关于《Swift开发指南》背后的那些事
时间轴(倒叙)
2014年8月底
在图灵出版社的大力支持下,全球第一本全面、系统、科学的,包含本人多年经验的呕心沥血之作《Swift开发指南》(配有同步视频课程和同步练习)全线重磅推出
2014年7月5日
苹果宣布Swift语言二十天后,《Swift开发指南》第一稿交予图灵出版社
2014年6月9日
苹果宣布Swift语言三天后,启动《Swift开发指南》撰写
2014年6月2日凌晨1点(北京时间:)
在苹果开发者大会WWDC 2014上,苹果宣布了全新的iOS及OS X平台开发语言Swift
iOS教父前传
我是一个编了20年程序的码农,做了10年IT培训的教书匠,写了15本书的笔农。
2010年的时候我有幸相识了大富翁游戏之父,台湾的柯博文老师。从那时开始,我真正的接触到了iOS。我用苹果虚拟机,用了一个星期的时间,编写了第一个iPhone HelloWorld程序。苹果的事件处理机制和Objective-C古怪的语法有别于其它我接触的语言。那时候可参考的中文资料很少,源于老师的职业习惯,我决定要写一个系列的iOS丛书,我规划了6本书,《iOS网络编程与云端应用最佳实践》、《iOS传感器应用开发最佳实践》、《iOS多媒体技术开发最佳实践》、《iPhone与 iPad开发实战——iOS 经典应用剖析》、《iOS开发指南》、《Objective-C开发指南》经过四年的笔耕不辍,前五本都一一出版发行,并获得了大量读者和忠实的学习者。最后一本顺应苹果公司的编程语言的变革,改为即将上市的《Swift开发指南》。
20天时间写出全球第一本Swift书,我是如何做到的?
梦中梦
正编着一款新型游戏的程序,突然电脑中病毒般一顿乱跳,鼠标竟然变成了一只活生生的大老鼠,嘴里叼着一根雪茄,尖着嗓门奸笑着对我说,“苹果都出新语言了,你还在等什么?”。突然惊醒,原来是在做梦。走到书架前,一本书翩翩起舞,轻轻的落在我脚下,捡起来一看,“Swift语言”。“关老师!关老师!快醒醒,马上到直播课时间了!”我被一阵喊叫声和敲桌子声音吵醒了,原来刚才一直在做梦,“恩,我再眯一分钟,看看里面是什么”边说着我换了一只胳膊继续趴着睡。“看什么啊?就一分钟哦,莫名其妙。”小贾提醒我道。难道是老天冥冥中在提示我什么吗?
鼠标手、键盘手、肩周炎(配图)
6月9日凌晨4点11分,被楼下的汽车发动声惊醒,我从办公室的沙发上爬起来,洗了把脸,意识越来越清醒。是时候出下一本书了,打开苹果官网,第一眼看到《The Swift Programming Language》文档,我如饥似渴的开始研究,用了整整12个小时的时间,到当天下午4点,我已经对这门语言心领神会了。读完文档的第一想法就是我要用我这20年的编程经验和10年的培训经验和项目经验,第一时间写一本关于Swift语言开发的教程。
接下来,制定计划,每天住在办公室,砍去一切与写这本书无关的事情,比如和朋友约饭、讲课(理想大于金钱的时刻)、回家陪家人(在此也想非常感谢老婆和孩子在这一段时间的默默支持!),甚至睡觉休息时间,总之一切都在为了这一个目标让步。正如一本书里所写的:“当你真心想要一样东西的时候,你身上散发出来的就是那种能量的振动频率,然后全宇宙就会联合起来帮助你达到你想要的东西。”
在畅销书《iOS开发指南》完成之后,我就得了一个毛病——肩周炎。肩周炎不是一个什么大毛病,可是它会把从书架高处取书这么简单的一个动作,或者是拿笔在白板上写点板书成为挑战自我的一个动作。疼,隐隐作痛。去医院看,医生说:“你这毛病这辈子就这样了,只能维持,尽量别再保持一个姿势,电脑尽量少用。”“不可能的”我心里想到。我这几年要不是没日没夜的坐在电脑前码字,写案例,做方案,怎么会有今天的这些作品。这本《Swift开发指南》更是饱含了汗水和泪水。
我这些年的心血之作!
团队成员调侃我是“鼠标手关Sir,技艺堪比剪刀手爱德华”。因为网络时代的写书、敲代码与纸质时代不同,鼠标和键盘是必备神器,所以团队小贾非常贴心的给我买了好几个款型的鼠标,一天20小时的轮番上阵,陪我挥洒前程。但就是这样,在Swift这场战役中还是烙下了新病根,腱鞘炎。但一想到我的新书马上就能出版,可以帮助那么多挨踢人士以及攻城狮们,第一时间系统学习和掌握这门语言,我就兴奋不已。《Swift开发指南》每章都配有项目案例和测试习题,最后还用Swift语言开发了一个计算器项目。在此,也非常感谢合著者赵志荣女士,感谢她对项目习题的精心编写和文稿的不倦审查。
我的小伙伴!
落下点小毛病还是小事,最让人纠结难耐的还是,苹果Swift语言出来后,两天一小改,三天一大动的情形,问题是我的书已经完成了一大半,但是看到官方形势的急剧变化,我二话不说,立马进行整章、整节的调整,在经过连续20天时间,每天持续奋战18-19个小时之后,最后终于完成了Swift语言的Beta 4版本撰写。在这20天时间里我的体重爆减了15斤,这也算是对自己的另一种完美交差了。
“青蛙公主”
我的team短小精悍,被业界高焕堂戏称是“青蛙公主”组合。程序猿们以男性居多,又多是注重本质和物理层,对应用层以及用户体验方面不是摸不着头脑 就是兴趣不大。赵大羽老师是移动平台UI、UE专家,专注于移动设计领域。是目前国内能讲用户体验课程的仅有几个金牌讲师之一。赵老师讲课深入浅出、每每讲到难点和有深度的课题时总会抖几个包袱出来,立即将极其抽象的事物完完全全的剖析出来,让学员自己思考、琢磨,然后顿悟,那些四万多移动用户体验设计和移动端敏捷设计的“羽丝”们深有体会。正是他用这样的方式和深度感化着一个个程序猿和设计狮们,让他们从程序的世界里抬起头来,为用户的感受和体验思考。
于是乎,在“公主”的点化之下,我就成了“王子”,如果你是我的学员,不管是听过我线上视频还是线下课程,你都会懂我的讲课风格,对于不管是Android、iOS还是Cocos2d-x相关的课程,我都会慢条斯理、深入浅出、高深但不难懂、理论结合案例,丝丝入扣的进行剖析,讲解并演练,让学员在掌握拔高理论的基础上,还能有实战实操的案例和动手机会。系统学习之后,再研读配套书籍及动手演练习题,只要你认真坚持下来,不想成为半个专家都不行。《Swift开发指南》一书是与赵志荣老师合作下的又一力作,在此也非常感谢赵志荣老师百忙之中抽出时间精心编写项目习题的以及对文稿的不倦审查,同时也感谢我的“公主”不厌其烦的对我书中的每一个必要场景手绘插图,最终让书稿在技术的海洋里独具一格,徐徐生辉。
“青蛙公主”在图书签署会上
我的图灵大编辑
Swift一书交稿之后,我们的一个小请求就是在书的封面上加上“国内第一本Swift开发教程”一行字。编辑小张给我们的答复是,可能无法满足我们的这一要求。这个消息对我们来说非常有挫败感,毕竟这是我们在如此短的时间内,相当于常人三倍的时间和精力投入编写的一本教程,同时也有争当第一之想法。于是我就给她讲了这段时间我们是怎么努力坚持过来的,以及我们的心路历程和汗水付出,希望出版社可以给我们一个说法。经过调查,最终他们也查明事实,我们确实是国内第一本Swift开发教程,最终还是决定给我们正名。在这我也想分享给各位的一句话是:“不要怕被拒绝,也不要怕被误会,是‘金子总会发光’,但也要努力争取成为‘金子’,天道总会酬勤。”
封面的故事
我的图书封面以及文中配图都是“公主”精雕细琢的杰作。“公主”对封面的用户体验要求近乎苛刻。因我们iOS、Swift都是苹果开发相关的系列书籍,所以都是以“苹果”为原型的创新图案。在用Swift语言做计算机项目时,在用户体验设计的理念基础上,由“公主”手绘计算器草图,并以我的程序思路,逐步深入到程序、功能、应用等层面。
书中的一张手绘草图
Swift速成,你如何做到?
为什么学?
作为学习者,你要清楚自己的定位。即你本身就是挨踢民工、 程序猿、工程狮,还是你想成为这么一类人。成为这一类人,你就得 “学得好语言、写的了代码、经得起寂寞、忍得了寂寞,还能经得起因为‘神经大条’经常被女友抛弃的惨痛”。如果以上几方面,你毅然做好了准备,那就想清楚,你学习Swift的目的和长远打算是什么。如果你想玩转APP,自己开发各种苹果手机应用;如果你想在公司的新项目中,游刃有余,发挥自己的技术天赋和被领导赞不绝口 ;如果你想转行,从事iOS相关开发工作;或者如果你真的很Geek,就像搞清楚Swift是个怎么回事,那就来学吧!
怎么学?
学习分两种模式,先天习得和后天学习。如果你已经超过三岁,那就不要考虑第一种办法了,你只能找到一种合适的方式和方法,以及工具(即教材、老师、课件、资料等等)进行系统的学习。Swift这本书就有配套视频课程和习题。为了便于学习,刚开始的每一章节的课程时间规划的都非常短,在学习完一章后,直接做大量的习题和测试进行巩固和练习,让学习者不至于在一个长期的学习目标之下失去学习的兴趣和斗志。
学到什么程度?
学习的程度和你努力坚持的程度成正比。挨踢们最能懂我这句话的意思,因为程序和技术很多时候是有标准答案的,你的功夫不到家,核心要素没有掌握,就别怪Bug,Bug的老来找你,程序跑不通,还总是找不到问题所在,有时候想找到问题,似乎比重新开发一遍还难。用一句话概括,就是“你的思想有多深邃,你的程序就能跑多久”。
学习规划图
Swift修订,速度中!
《Swift开发指南》是在苹果公司宣布Swift语言之后立即投入编写的,全书编写贯穿Xcode6 beta1版到beta4版的更新,最终成书是以beta4版落地。因beta版本到最终版本之前还有一些变化,所以在final版本出来之前,我们会在案例和习题中为大家及时更新,待Swift语言的final版出来之后,我们也会及时对本书进行修订,并更新到社区、网站中,并一直保持同步更新和完善。
关于《Swift开发指南》学习相关地址:
购书地址:
京东:http://item.jd.com/11516346.html
当当:http://product.dangdang.com/23535049.html
互动出版社:http://product.china-pub.com/3804000
视频课程地址:
智捷iOS课堂教程地址:
苹果Swift编程语言开发指南(上):
http://v.51work6.com/viewCourseDetail.do?courseId=799262
苹果Swift编程语言开发指南(下):
http://v.51work6.com/viewCourseDetail.do?courseId=799438
51CTO学院视频教程地址:
苹果Swift语言视频教程闪电入门:http://edu.51cto.com/course/course_id-1395.html
Swift项目开发实战-基于分层架构的多版本iPhone计算器:
http://edu.51cto.com/course/course_id-1950.html
本书网址:http://www.51work6.com/swift.php
欢迎关注智捷iOS课堂微信公共平台
关于《Swift开发指南》背后的那些事的更多相关文章
- 《Swift开发指南》
<Swift开发指南> 基本信息 作者: 关东升 赵志荣 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115366245 上架时间:2014-8-5 出版日期:20 ...
- 智捷公开课马上开始了-欢迎大家一起讨论学习-第一系列读《Swift开发指南(修订版) 》看Swift视频教程
引用: 智捷课堂携手51CTO学院.图灵教育联合举办iOS线上培训就业班系列体验公开课. 分享移动开发.移动设计方向最新,最热,最抢眼技术热点以及设计经验.我们每周将最少举办一次公开课,同时会提前安排 ...
- 《Swift开发指南》国内第一本Swift图书上市了
<Swift开发指南>国内第一本Swift图书上市了 既<courseId=799262">苹果Swift编程语言开发指南>视频教程地址:courseId=79 ...
- [翻译]现代java开发指南 第三部分
现代java开发指南 第三部分 第三部分:Web开发 第一部分,第二部分,第三部分 =========================== 欢迎来到现代 Java 开发指南第三部分.在第一部分中,我们 ...
- Jetty使用教程(四:21-22)—Jetty开发指南
二十一.嵌入式开发 21.1 Jetty嵌入式开发HelloWorld 本章节将提供一些教程,通过Jetty API快速开发嵌入式代码 21.1.1 下载Jetty的jar包 Jetty目前已经把所有 ...
- JVM 平台上的各种语言的开发指南
JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...
- Swift - 语言指南,来自github学习
@SwiftLanguage 更新于 2016-6-6,更新内容详见 Issue 55.往期更新回顾详见<收录周报> 这份指南汇集了 Swift 语言主流学习资源,并以开发者的视角整理编排 ...
- 移动应用安全开发指南(Android)--完结篇(http://www.bubuko.com/infodetail-577312.html)
1.认证和授权 概述 认证是用来证明用户身份合法性的过程,授权是用来证明用户可以合法地做哪些事的过程,这两个过程一般是在服务器端执行的,但也有的APP出于性能提升或用户体验等原因,将其做在客户端完成, ...
- Boost程序库完全开发指南——深入C++“准”标准库(第3版)
内容简介 · · · · · · Boost 是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库,有着“C++‘准’标准库”的美誉. Boost 由C++标准委员会部分成员所设立的Bo ...
随机推荐
- 数据返回[数据库基础]——图解JOIN
废话就不多说了,开始... 一.提要 JOIN对于接触过数据库的人,这个词都不生疏,而且很多人很清楚各种JOIN,还有很多人对这个懂得也不是很透辟,此次就说说JOIN操纵. 图片是很容易被接受和懂得, ...
- 从零开始学android开发- layout属性介绍
android:id 为控件指定相应的ID android:text 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串 android:gravity 指定Vi ...
- c# 路径空格---ProcessStartInfo参数问题
今天在整合程序的时候,要从一个程序转到另一个程序 当然要使用: ProcessStartInfo startInfo = new ProcessStartInfo("\\Program ...
- [OSG]如何用Shader得到物体的世界坐标
来自:http://www.cnblogs.com/hesicong/archive/2008/05/27/1208312.html 最近群里面有个朋友问我关于如何得到OpenGL世界坐标的问题,当时 ...
- 发布站点到远程FTP根目录
第一步:修改 phpcms/modules/admin/templates/site_add.tpl.php 找到 <legend><?php echo L('release_poi ...
- Swift 3.0 的 open,public,internal,fileprivate,private 关键字
import Foundation /// final的含义保持不变 public final class FinalClass { } // 这个类在ModuleA的范围外是不能被继承的 ...
- NopCommerce Html扩展方法Html.Widget
在Nop中有一个Html扩展的类叫HtmlExtensions,主要源码: public static class HtmlExtensions { #region Admin area extens ...
- Java_eclipse软件与git配合使用创建git仓库
一.在eclipse上安装git,和安装其他插件一样 help->Install new software->add... 在弹出框中输入name,location;点击-->ok ...
- 利用OPENSSL 实现MD5加密。
#include <stdio.h> #include "openssl/evp.h" #include "openssl/md5.h" #incl ...
- Eclipse+Axis自动生成Web Service WSDL文件
JDK版本:1.5.0_22 Eclipse版本:Helios Service Release 2(3.6.2) 首先创建一个web工程,创建过程如下: 如果选择Apache Tomcat v5.5, ...