首页
学习
活动
专区
工具
TVP
发布

开学须知

开 学

须 知

说明:本篇是该系列教程的说明篇,内容较多,也有较多的选修内容,如果你的时间比较紧,可以只看加粗的文字。嗯,就是划重点!

成为一名开发者的正确心理预期

(处女座 或 强迫症患者 必读)

如果你在一开始的教程中就有些东西不能百分百理解,最好的方式不是立即钻牛角尖死磕到底,毕竟你没有打过很好的编程底子,这样做会让你很快丧失信心,甚至很快放弃。碰到这类情况,西蒙建议你先把问题放在那儿(或者记下来),然后继续看下去。等到整个教程看完了,回过头再看你之前遇到的问题,如果还是不能理解,那么再看一遍。其实90%的可能性是,等你回头再看当时觉得比相对论和量子力学还难理解的问题,现在就是小学加减法的水平。在整个教程的学习过程中,我们会对一些重要的概念不断重复,直到你觉得跟吃饭走路一样自然。

学习一门语言或工具的最好方式是练习和实践。因此,对于初学者来说,千万不要只是看过一遍了事,而应该自己手动敲入(手动敲、手动敲、手动敲)所有的代码,甚至故意修改其中的代码,刻意制造一些bug,然后想办法解决。而在学完本教程之后,要立即开始实战,同时多看Apple官方文档的示例代码。不要害怕麻烦和错误,在解决麻烦和修正错误的过程中,你能更深入的领会为何要这样做,而不仅仅是简单的copy和paste。在学习的过程中,会要求你自己做一些思考和练习,而不是完全被动的接受。仅仅知道前面有这样一条路和自己亲自走过这条路是完全不同的感觉。学习编程唯一有效的途径就是在思考的同时要自己独立写代码。

在这一系列教程中,不会也不可能教你学习所有和iPhone, iPad开发的知识。iOS SDK(开发工具包)非常庞大,除了苹果的官方技术文档,市面上没有任何一个教材可以涵盖iOS开发的全部内容。这里只会教你了解Swift和iOS开发所需具备的核心基础。一旦你掌握了建筑技术,可以自己去探索iOS开发的其它细节。

除了Swift语言和iOS开发工具包的相关知识,最重要的目的是让你学会程序猿的思维方式。一旦你具备了这种思维方式,可以完成任何编程任务,不管是游戏,工具,网络应用还是其它你能想到的东西。作为一个程序猿,需要思考解决各种计算问题,并创造性的想出解决方案。一旦掌握了解决问题的方法,不论多复杂的问题都可以解决。这才是本系列教程的终极目的,让不懂编程的人爱上开发!

可以百分百保证的是,你在学习的过程中一定会遇到各种问题。程序代码中会出现无数莫名其妙的bug,让你不知所措。但即便是一个拥有30年以上编程经验的程序猿,也会经常遇到这样的问题。我们只是人类,而人类的大脑在处理复杂计算问题的时候总会出错的。不要害怕出错,但我们会提供一些思维工具,教会你如何填平自己挖的坑。

当你最终学完这系列教程后,应该已经掌握了Swift和iOS开发工具包的精髓。重要的是,你应该学会了如何用程序猿的思维方式来编程和解决问题,并真正开始制作属于自己的应用。对此,我有百分之一千的信心!

当然,最重要的是,希望大家在看完教程后,能够爱上iPhone开发,爱上用编程语言来创造世界的乐趣~

关于计算机语言

(选修内容)

语言是一种沟通工具。很多时候我们以为iPhone只是一部手机,其实它的内核是一个非常先进的微型计算机,只是同时具备打电话的功能而已。和其它计算机一样,iPhone是通过数字电路的,1指令来工作的。如果我们编写软件iPhone上运行,就必须把源代码翻译成计算机可以理解的,1指令。

几十年前,人们不得不使用,1指令和计算机直接交流。而随着汇编和高级语言的出现,大多数的编程语言变得更接近于日常生活所使用的英语。这样一来,人们更容易理解编程语言的使用。但同时也需要将人类可以理解的语言翻译成计算机可以理解的,1指令。

而这里我们要着重提一下我们 Apple 的新编程语言Swift。Swift集成了传统面向对象编程语言的特性,同时又具备函数式编程的一些特征。如果你曾经学过C#, Python,Ruby或者JavaScript,那么会发现Swift有很多相似之处,很容易上手。

在2014年WWDC之前,用来开发iOS应用的语言被称为Objective-C,它是标准C语言的扩展。使用Objective-C可以完成C语言所能完成的任何工作。同时它还添加了很多有用的特性,比如最重要的面向对象编程(Objective-Oriented)。Objective-C在前些年可谓门庭冷落,无人问津,除了铁杆的Mac粉丝,几乎濒临灭绝。但随着2007年那一次伟大的iPhone产品发布后之后,几乎要被历史遗忘的Objective-C语言再次进入人们的视线,甚至成为今的主流开发语言。Objective-C是2012和2013年的年度编程语言No.1。

目前仍然有大量的iOS项目使用Objective-C开发,毕竟一个新的编程语言普及需要几年甚至更长的时间,不过iOS开发的未来显然是属于Swift的。

总之,对于iPhone应用开发来说,最主要接触的语言是Swift和Objective-C。

考虑到本教程的很多读者从未接触过任何编程语言,这里对其它几个主流语言的特点和作用稍微说明一下:

1. Java语言是当今最普遍使用的开发语言,它简单易学(相对C++,C和Objective-C),且跨平台性非常强,对网络开发的支持令人称赞。很多企业使用Java语言来开发商业相关的网络应用。此外,Java语言也是开发Android应用的必备工具。

2. C语言是几个主流开发语言(Java,C++,C#,Objective-C)的根基所在。常有人说,学好C语言,其它的语言就会一通百通。因为对硬件底层性能的支持超强,它的主要应用领域是嵌入式开发、游戏引擎开发等偏底层的部分。C语言基本上已经取代了汇编语言和机器语言在底层开发的作用。

3. PHP语言主要用于开发网络应用(特别是web服务器端,也就是用户不可见的部分,如结合MySQL进行后台数据传输处理等),相对其它几门语言,它非常容易上手。但它的局限性在于除了web应用,对其它应用的开发力不从心。

4. Javascript语言主要用于开发Web前端(也就是用户可见的部分),随着HTML5技术的兴起,Javascript语言必将是未来三到五年的主流Web开发工具。在主流的3D游戏开发引擎Unity中,同样支持使用Javascript作为脚本编程语言。此外,Facebook的开源项目React Native可以让开发者使用Javascript语言轻松开发原生的iOS和Android应用。

5. C#语言是微软为了对抗Java语言的强势而自行开发的一种编程语言。它和Java一样简单易学(同样是相对的),但只能支持微软的平台。闻名业界的.NET就是C#语言的最佳搭配。但随着微软在移动互联网领域的式微,C#的地位和前几年比起来大有下降。

不过虽然.NET和C#在Web开发领域的空间越来越小,但C#也有新的应用领域,目前最火爆的移动平台3D游戏开发引擎Unity3D主要支持C#和javascript开发,而windows手机平台的卷土重来也让C#有了新的机会。

6. Python,Ruby,Perl同PHP语言的作用类似,属于脚本语言,对于开发网络应用非常高效。其中Python和另一种脚本语言Lua还常在游戏中作为脚本语言使用。

对于Python要特别补充一点,在2016年下半年开始异常火爆的AI(人工智能)技术中,特别是深度学习等领域,科学家和开发者大量使用Python语言和相关框架。曾经的超轻量级脚本语言在一个超重量级的应用领域重获新生,而且越来越受人欢迎。

7. Go语言,一门全新的系统级语言,由Google开发,于2009年发布。虽然它的历史非常短暂,但根据目前的发展来看,Go语言有望在未来十年成为一款成功的系统级语言。Go语言功能强大,可以替代C++。

在TIBOE2017年最新的编程语言排行榜上,Go语言已经从去年的38位急速攀升到14位。

8. Basic(Visual Basic)语言,曾经风骚一时,若干年前很多编程入门课程必教的开发语言。其学习曲线非常平缓,易于上手,但实际项目中用到的不是很多。

9. SQL语言,这是目前最重要的关系数据库操作语言,其影响已经超出数据库领域,在很多其它领域得到采用,比如人工智能领域的数据检索,软件开发工具中嵌入SQL的语言等。SQL语言是一种交互式查询语言,允许用户直接查询存储数据,但它并不是完整的程序语言,没有DO或FOR类似的循环语句,但可以嵌入到另一种语言中,通过接口发送到数据库管理系统。

10.汇编语言,虽然现在是高级编程语言的天下,但性能超强的直接面向硬件的汇编语言仍然在嵌入式开发领域占据着一席之地。只是汇编语言和硬件本身的关联很大,所以普及性一般。目前汇编语言的江湖地位已被C语言替代,但在某些领域还有自己的一席之地。

11. Kotlin语言,Google推出的一门全新的编程语言,用于在Android应用开发中取代Java的地位。

其它语言相对来说比较冷僻,或者曾经热门但如今使用的人很少,用不到的时候可以不管。

为了让大家对各种编程语言的江湖地位有所了解,不妨看看 TIOBE 最新的2018年3月编程语言排行榜~

2014年9月的时候,iOS 的御用开发语言Objective-C是Top 3的编程语言。但是自从2014年WWDC上发布了新的Swift语言后,Objective-C的排名迅速下降到如今的Top 14,而Swift则上升到了Top 12。

科普知识到此结束,有了这么多的基础做铺垫,我们可以进入正式的开发了!在开发之前,西蒙认为你需要一本随时可以查询的工具书,这里强烈推荐苹果的官方Swift开发指南。

必不可少的开发工具:Xcode

(必修)

Xcode是开发iPhone应用的主要工具。Xcode带有一个文本编辑器,可以让你敲入自己的代码,同时还有一个可视化的工具由来设计应用的用户界面。Xcode可以将你编写的源代码编译成可执行的应用,并在模拟器(Simulator)或你的iPhone上进行测试。同时,Xcode还带有一个debugger (调试器),用于帮助你发现代码中的错误(很遗憾,目前它还没法自动帮你修复bug,这一天的到来还需要更给力的人工智能)

下载Xcode的方法很简单,但要特别注意:千万不要在非官方渠道下载Xcode,之前有很多大厂商使用非官方渠道下载或使用第三方下载工具(比如迅雷)下载的xcode,由于被植入恶意代码,导致开发的APP会泄露用户的隐私数据,后来这些APP被Apple Store下架,带来非常恶劣数据泄露的影响。你可以直接从这个链接下载:http://itunes.apple.com/app/xcode/id497799835?mt=12

当然,最通常的做法是在Mac App Store里面搜索Xcode,然后下载安装就好了。

如果你的操作系统不是macOS High Sierra,那么请先升级操作系统。

本系列教程用的Xcode 版本是最新的 Xcode 9.2,而 iOS 版本是 iOS 11。

很多老的iOS教程还在用Xcode和iOS之前的版本,所以当你进行课外阅读的时候,请注意开发工具的细节差异。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180321G19BWA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券