iOS Apprentice中文版-从0开始学iOS开发-第一课

译者语:本来就很多话想写在这里,比如为什么要学iOS开发,或者说为什么要学一门技能,是为了找个饭碗,还是为了避免一片雄心壮志之余只差两个码农的尴尬,亦或是临渊羡鱼之后自己退而结网,也能让自己的想法变成产品。本来这个序言很长,直到我临近发布的前一刻把它们全都删了,因为我看到一则新闻,觉得写什么都是多余的:

活到81岁你会干嘛?她选择为 iOS 开发软件


81岁的老奶奶Masako Wakamiya

她是一名 iOS 开发者,今年已经 81 岁了,她从 60 岁才开始使用电脑。学习使用电脑之前,Masako 在日本的一家银行工作了 43 年的时间,与电脑技术基本上没有交集。不久之前,Masako 推出了她自己的首款 iOS 应用 Hinadan。

没错,就是这样,所谓梦想,念念不忘,必有回响。

我们先来了解一点背景知识:

Swift是苹果公司于2014年WWDC(苹果开发者大会)发布的新开发语言,用于搭建基于苹果平台的应用程序。其易学易用的特点很快成为了iOS开发中最流行的语言,但是由于Swift版本和对应的开发工具版本更新太快,导致市面的的教程书籍始终处于落后状态,比如现在已经是Swift 3.0了,但是我在书店中还看到大部分教材处于1.3状态,2.0版本都已经算是新书了。这对想要学习iOS开发的朋友造成了极大的障碍,但是有市场就会有产品,无论苹果公司更新的再快,总是有人能跟上它,这就是我们即将接触到的iOS Apprentice。

iOS Apprentice堪称iOS开发经典教程,不同于国内的教材套路,iOS Apprentice一共4课,每一课都将从0开始带你完成一个可用的app。而每一课app所包含的内容则由浅至深,循序渐进,整个课程相当的独具匠心。但是苦于木有中文版(T T),只能生啃英文了,所以我打算在这里把我的学习过程记录下来,同时也给英文阅读障碍的朋友提供一些力所能及的帮助,相当于把iOS Apprentice系列的4本书在这里翻译一下,并且结合一些自己的心得提供给大家(_)。我所使用的版本为最新的iOS 10及Swift 3.0版本教程,保证大家可以跟我一起愉快的进行开发。

千里之行始于足下,开始吧。

Tutorial 1: Getting Started
首先是整体预览一下整个系列的内容(What’s ahead: an overview)
iOS Apprentice共分为4个自学教程,课题从初级向中级的循序渐进展开,在每一个自学教程中,你都将从0开始直到完成一个独立的APP,我们先来预览下这些自学教程。
Tutorial 1: Getting Started
在这个最初的自学教程中,你将通过完成一个叫做‘Bull's Eye(我至今无法理解为啥会起这么个名字)’的游戏APP,在一种非常轻松的状态下来学习如何使用Xcode,编辑界面以及swift语言。

Bull's Eye

Tutorial 2: Checklists
在本系列的第二个自学教程中,你将会创建一个属于自己的待办清单(to-do list)app。你将会学习一些所有iOS app都会用到的一些设计原理基础。并且此刻也是你做一个真正的app的时候。


to-do list

Tutorial 3:MyLocations
在本系列的第三个自学教程,你将开发一个关于定位的app,它会保存你走过的位置,这非常有趣。在这个过程中,你将会学习关于Core Location,Core Data,Map Kit,和其他一些知识。

MyLocations

Tutorial 4: StoreSearch
移动应用经常会访问一些网络服务,并且这也是你将要在本系列的最后一个自学教程中做的事情。你将会做一个非常时髦的app,它可以使你在iTunes store中使用http请求以及JSON搜索各种应用。

StoreSearch

Let's get started and turn you into a real iOS developer!(_)人生的第一次转职即将正式开始。如果你感到坚持不下去的时候,请回到最开头的部分看一看别人家的老奶奶,都已经81了_

计算机的语言
尽管iPhone企图假装自己是一部电话,但是它实际上是一台相当精巧的高级电脑,只是碰巧拥有一点电话的功能。
像其他任何电脑一样,iPhone以0和1的方式进行工作。当你写一个可以运行在iPhone上的软件时,你不得不以某种方式将你头脑中的idea转换这些计算机可以理解的一票0和1。
幸运的是,你不需要亲自的书写任何一个0或者1.那对我们人类大脑的负荷实在太大了,大到负担不起。而另一方面,日常英语又没有严谨到足够支撑计算机编程的地步。
所以,你将要使用一种中间语言,swift,它有一点像英语,我们可以轻松简单的理解它,同时也可以很好的被翻译为某种计算机很容易理解的语言。
我们来看看,这是计算机讲话的方式:

看不清楚不要紧,反正也看不懂

实际上,在计算机看来,它们是长成这个样子的:

看不清楚不要紧,反正更加看不懂了( ̄∇ ̄)

这里的movl与calll指令仅仅是为了让人能比较容易的读懂而已,所以,你读懂了吗?反正我是不懂。(^^)!
当然,用这种神秘的语言来写程序是没啥不行的,并且这就是上古时代的程序猿在干的事情,在哪个电脑需要数百万个晶体管,并且体积占据整个房间的时代。——但是在现代,我比较喜欢也应该像这个样子来写程序。

func handleMusicEvent(command: Int, noteNumber: Int, velocity: Int) {
    if command == NoteOn && velocity != 0 {
        playNote(noteNumber + transpose, velocityCurve[velocity] / 127)
    } else if command == NoteOff || (command == NoteOn && velocity == 0) {
        stopNote(noteNumber + transpose, velocityCurve[velocity] / 127)
    } else if command == ControlChange {
        if noteNumber == 64 {
            damperPedal(velocity)
        }
    }
}

上面的代码是一个音频合成器程序的片段(如果你能读懂英语的话,其实上面的代码是干嘛的一目了然)。它看起来就像是某些我们可以理解的东西了。即使你以前从未编程过,你也可以大致的指出它做了些什么,这几乎和英语一样。

Swift是一种结合了传统面向对象编程与一些模块编程特点的热门新语言。幸运的是swift与其他流行的语言相似的方面非常多,所以,如果你已经熟悉了C#,Python,Ruby 或者Javascript,你会觉得swift有一种家的温暖。

虽然Swift并不是做app的唯一选项,直到最近,iPhone和iPad还在用Objective-C来编程,这是一种由身经百战的C语言扩展来的一种面向对象语言,但是因为它继承了C语言的不完善处,导致其不能完全胜任现代开发者的需求。这就是为什么苹果创造了这种新语言。
Objective-C虽然当下还比较通用,但是显然未来iOS开发的主流是Swift。所有聪明的孩子早都已经开始用它了。

C++是另一个在C语言的基础上扩展而来的语言,它非常强大,但是作为初学者,我们应该尽量避免与其遭遇。我在这里提及C++仅仅是因为需要科普一下这种语言也可以做iOS应用而已。C++和Objective-C还有过一场非常邪恶的联姻(绝对没有任何牧师的见证),其子名为Objective-C++,你偶尔会听到这个名字,在噩梦中。

我可以以深入论述Swift的特点来开始我们的iOS Apprentice(iOS自学教程),但是考虑到你基本会中途睡着,所以我们会以浅入深出的方式来讲解这门语言。
在一开始,一些基本概念,什么是一个变量,什么是一个对象,你如何调用一个方法等会比做App的细节更重要,当然,慢慢的Swift的所有秘密,都会逐一展示给你。
做好准备来写你人生中的第一个APP了吗?从下一节我们正式开始。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容

  • 1、 大安初二的时候辍学,留给我一个破旧的MP3,里面是周杰伦的歌。 我在小卖部里给大安打电话,我问大安你要去干什...
    许北君阅读 1,082评论 9 21
  • 文 / 艺文小舍 你带着 逝去的岁月 来了 我带着 眼角的沧桑 迎接 看到时 我笑得 有些慌乱 你笑得 有些陌...
    艺文小舍阅读 500评论 42 66
  • 春节的年兽,是一个极为可怖的存在。 我们都是知道,春节往往会 随着城市化 城市化进程,似乎是成为了时代进步性的标志...
    温不开阅读 168评论 0 0
  • 每天晚上我都等到她睡了我才去睡,我想我这样也算是陪她吧。虽然她不曾理过我,但至少我知道她什么时候睡什么时候起来。...
    jryc阅读 155评论 0 0