李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇

时间:2021-08-29 09:31:10

从今天开始,我就开始更新【零基础学习iOS开发】这个专题。不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题。我尽量以通俗易懂的语言,让每个人都能够看懂。若遇到不明白的地方或者对此文有异议,望及时评论。

一、什么是iOS

  • 要想学习iOS开发,首先要搞清楚什么是iOS。iOS其实是一款操作系统,就像平时我们在电脑上用的XP、Win7,都是操作系统。
  • 那什么是操作系统呢?操作系统其实是一种软件,是直接运行在硬件(电脑、手机等)上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。比如说,如果你不在电脑上装个Win7、XP或者其他操作系统的话,你是不可能在电脑上运行QQ这个软件的。大家应该都知道,每次电脑开机的时候,都是先启动Windows XP或者Windows 7,启动成功后,才能在上面打开QQ、360安全卫士等其他软件。手机也是一样的,先要有个手机操作系统,才能使用手机QQ等软件
  • 要注意的,XP、Win7是PC操作系统,也就是电脑操作系统;而iOS是由苹果公司开发的手持设备操作系统,全称为“iPhone OS”,目前搭载这款操作系统的设备有:iPhone、iPad、iPod touch、iPad mini。也就是说,iPhone上的所有软件都是运行在iOS操作系统上的。当iPhone开机的时候,首先会运行iOS这款操作系统,操作系统运行成功后,我们就可以在iPhone上打开相应的应用软件来玩游戏、聊天、看电影了。
  • 接下来再来认识一下操作系统,下面这张图片描述了操作系统所处的位置:

李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇

图中的“应用软件”就是平常我们使用的QQ、微博等软件。用户打开某个应用软件,在软件的使用过程中,这个软件会不断地跟底层的操作系统进行交互,接着操作系统会控制硬件去做一些事情来满足用户的需求。比如,当我们打开手机上的一个照相机软件,按下屏幕上的拍照按钮时,照相机软件会通知操作系统“喂,我需要拍照!”,接着操作系统就会控制手机上的摄像头进行聚焦、拍照。

李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇   李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇

总而言之,操作系统可以看作用户与硬件的接口、桥梁,它为应用软件和用户提供了控制、访问硬件的手段

二、主流手机操作系统

  • 目前应用在手机上的操作系统主要有:Palm OS、Symbian(塞班)、Android(安卓)、iOS、Black Berry(黑莓)OS、Windows Phone。
  • 根据IDC(互联网数据中心)公布的数据,2012年第四季度,Android和iOS智能手机操作系统在全球范围内的市场份额占有率总共为91.1%。Android智能手机厂商和苹果在2012年第四季度共出货2.076亿台智能手机,在2011年第四季度出货1.22亿台智能手机,同比增长70.2%。
  • 总的来说,iOS操作系统的前景还是不错的

三、什么是iOS开发

我们已经知道iOS是iPhone、iPad等手持设备的操作系统,那么,iOS开发就是开发运行在iOS系统上的应用或者游戏软件,也就是可以开发一些运行在iPhone上的软件,比如手机QQ、微博或者游戏。说白了,就是开发手机软件。从事iOS开发的人员,可以称之为“iOS软件攻城狮”或“iOS程序猿”。

四、学习iOS开发的目的

  • 每个人都有不同的学习目的,说得伟大一点,可能是创造一些优秀的手机软件,造福全人类;说得直接一点,就是学习技术、赚大钱。当然,也不排除有些人觉得做iOS开发很cool、很炫、好玩。
  • 以前,我们认为是电脑是万能的;现在,其实手机也是万能的了。手机将是人类最离不开的设备之一,现在很多事情都可以在手机上做了,比如聊天、看电影、购物、订票、玩游戏等,携带又比电脑方便,甚至多了一些普通电脑没有的功能:打电话、导航等。现在的手机屏幕也越来越大了,硬件参数也越来越强大,有些强大到被称为“怪兽机”,前阵子还听到有8核手机,我现在用的苹果笔记本都才双核。
  • 从目前的市场形势来看,移动互联(就是将移动通信和互联网二者结合起来)的市场是非常大,处处藏着商机。
  • 总之,手机软件开发的需求量是非常大的。而iOS是当今的主流手机操作系统之一,已经有各路人员对iOS开发跃跃欲试,不过大部分人都苦于iOS开发的门槛较高
  • 我们错过了盖茨的信息化浪潮,错过了李彦宏、马化腾、丁磊他们所主导的互联网浪潮,但我们还有移动互联浪潮;朋友们,抓住机遇吧,今天你可能除了时间什么都没有,只要你努力,勇于创新;明天,你可能就成为这次浪潮的领跑者

五、学习iOS开发的前提

学习iOS开发,说白了就是学习软件开发。如果你从未涉足过IT领域,那么在学习软件开发之前,你首先要了解的是软件和硬件之间的关系(这里的硬件泛指电脑、手机、平板等设备)。

1.电脑并不比人脑聪明

很久以前,很多人就认为电脑是无所不能的,甚至能解决一些人类不容易解决的问题,因此有人就觉得电脑比人脑聪明。其实,电脑笨得很,并不见得比人脑聪明。

  • 首先,电脑是由人类发明的,没有人类就没有电脑;
  • 其次,电脑不能识别什么中文、英语,你用一口流利的中文骂遍它所有祖宗,它都不会理你的。电脑只能识别一些特定的指令,如果你想让电脑能够正常工作或者帮你做一些事情,你得灌输一些指令到电脑上,相当于给电脑下命令。你写什么样的指令,它就做什么样的工作。
  • 如果想让电脑执行一系列的操作,那就必须事先编好一条条指令,这些指令的集合,我们可以称之为”程序“或者”软件“。百度中对”软件“一词的解释:软件是一系列按照特定顺序组织的计算机数据和指令的集合。也就是说,一个软件里面包含了很多的指令,可以命令电脑做很多不同的事情。只要让电脑运行这个软件,电脑就会自动地执行软件中包含的各条指令,有条不紊地进行工作。

2.开发软件的目的

  • 其实人类发明电脑的目的是什么呢?目的就是能够控制电脑帮人类做一些事情。而电脑的一切操作都是由软件控制的,离开软件,电脑就只是一堆破铜烂铁。因此,我们开发软件的最终目的就是为了能够控制硬件。
  • 在软件和硬件的协调交互下,就可以够解决我们生活中的很多问题。比如,开发一个MP3播放软件,软件中的某个指令可以用来控制电脑的音响进行放声,然后我们就能听到那些美妙动听的歌声了,也有一些指令可以用来增大或者减小音响的声音。这就是一个典型的通过软件控制硬件的例子。

3.如何开发软件

  • 那如何开发软件呢?我们已经知道,一个软件是由无数个指令组成的,这些指令可以用来命令电脑做一些事情。但是电脑所能识别的指令是极其有限的,你不能乱写指令,你写个”你妹,给我关机!“这样的指令,它是看不懂的。那怎样的指令才能被电脑识别呢?换一种问法就是:我们该怎样跟电脑进行交流?我们天朝人跟天朝人之间可以用中文进行交流,我说的中文,天朝人都能识别、听懂。假如,我们要跟美国人进行交流呢,那我们就必须地学英语。现在呢,我们是要跟电脑进行交流,一样的,我们也要学习新的语言,那就是”程序设计语言“。
  • ”程序设计语言“,顾名思义,肯定是用来设计、编写程序的。我们需要利用”程序设计语言“编写出电脑能够识别的指令,最终开发出一个完整的软件。
  • 用”程序设计语言“写出来的指令,我们一般称为“源代码”或者”代码“,写程序就是写代码。你应该听过”码农“这个词语,泛指某些苦逼的”程序猿“。
  • 编写程序可以简称为“编程”,因此,“程序设计语言”也可以称为“编程语言”。

4.程序设计语言

  • 目前,世界上流行的”程序设计语言“有很多种,在2013年3月份的语言关注排行榜中,排名前五的是:Java、C、Objective-C、C++、C#。后面4种语言的名字中都含有”C“,就Java没有”C“,一看就知道Java跟其他语言不是同一个妈生的。其实,Objective-C、C++、C#都是基于C语言,从C语言中衍生出来的,因此它们的名字都带有”C“。
  • 有这么多的”程序设计语言“,难道随便一门语言写出来的软件都能成功运行在电脑上么?不是的。这还要取决于操作系统的类型,因为任何其他软件都必须在操作系统的支持下才能运行。不同的操作系统,需要用不同的语言来编写应用软件。补充一点:其实,操作系统也是软件,它属于系统软件,也是需要用”程序设计语言“来编写,一般用C、C++来编写操作系统。
  • 手机软件也是一样的,不同的手机操作系统,需要用不同的语言来编写应用软件。比如,android系统上可以运行用Java、C、C++编写的软件,但是不能运行Objective-C编写的软件。如果是iOS系统,一般情况下,它可以运行Objective-C、C、C++写的软件,不能运行Java编写的软件。可以看出,C、C++编写出来的代码是有可移植性的,可以跨平台,能同时跑在android和iOS系统上。

5.iOS开发的语言选择

相信你应该明确了,要想学习iOS开发,首先要学习Objective-C、C、C++这3门程序设计语言,而核心语言是Objective-C。学了这些语言,我们才能编写出在iOS系统上正常运行的软件。

 
 

李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇的更多相关文章

  1. 李洪强iOS开发之零基础学习iOS开发】【02-C语言】01-概述

    前面已经给大家介绍了iOS开发相关的一些基础知识,其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言.iOS开发需要学习的主要程序设计语言有:C语言.C+ ...

  2. 李洪强iOS开发之零基础学习iOS开发【02-C语言】03-关键字、标识符、注释

    上一讲中已经创建了第一个C语言程序,知道了C程序是由函数构成的,这讲继续学习C语言的一些基本语法.C语言属于一门高级语言,其实,所有的高级语言的基本语法组成部分都是一样的,只是表现形式不太一样.就好像 ...

  3. 【零基础学习iOS开发】【转载】

    原文地址:http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html 本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开 ...

  4. 【零基础学习iOS开发】【01-前言】01-开篇

    本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开发 四.学习iOS开发的目的 五.学习iOS开发的前提 从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过I ...

  5. 零基础学习iOS开发

    零基础学习iOS开发不管你是否涉足过IT领域,只要你对iOS开发感兴趣,都可以阅读此专题. [零基础学习iOS开发][02-C语言]11-函数的声明和定义 摘要: 在上一讲中,简单介绍了函数的定义和使 ...

  6. [iOS]关于零基础学习iOS开发的学习方法总结

    关于零基础学习iOS开发的学习方法总结 最近很多零基础来参加蓝鸥培训的学生经常会问到一些学习方法的问题,就如下我自己见过的好的学习方法一起讨论一下. 蓝鸥iOS开发技术的学习路线图 程序员的主要工作是 ...

  7. MongoDB实战开发 【零基础学习,附完整Asp.net示例】

    MongoDB实战开发 [零基础学习,附完整Asp.net示例] 阅读目录 开始 下载MongoDB,并启动它 在C#使用MongoDB 重构(简化)代码 使用MongoDB的客户端查看数据 使用Mo ...

  8. 零基础学习hadoop开发所必须具体的三个基础知识

    大数据hadoop无疑是当前互联网领域受关注热度最高的词之一,大数据技术的应用正在潜移默化中对我们的生活和工作产生巨大的改变.这种改变给我们的感觉是“水到渠成”,更为让人惊叹的是大数据已经仅仅是互联网 ...

  9. 李洪强iOS开发之【零基础学习iOS开发】【01-前言】02-准备

    在上一讲中,介绍了什么是iOS开发.说简单一点,iOS开发,就是开发运行在iPhone或者iPad上的软件.这么一说完,应该有很多人就会产生一些疑惑,比如学习iOS开发是不是一定要买iPhone?需不 ...

随机推荐

  1. 亲历腾讯WEB前端开发三轮面试经历及面试题

    [一面]~=110分钟  2014/09/24 11:20  星期三 进门静坐30分钟做题. 填空题+大题+问答题 >>填空题何时接触电脑 何时接触前端运算符 字符串处理        延 ...

  2. 深度学习笔记(六)finetune

    转自Caffe fine-tuning 微调网络 一般来说我们自己需要做的方向,比如在一些特定的领域的识别分类中,我们很难拿到大量的数据.因为像在ImageNet上毕竟是一个千万级的图像数据库,通常我 ...

  3. javascript集合的交,并,补,子集的操作实现

    可能新的ECMA规范里已有了这些的实现, 但能自己从头开始实现,感觉也非常不错的哟... function Set() { var items = {}; this.has = function(va ...

  4. JavaScript-闭包注意事项

    闭包允许内层函数引用父函数中的变量,但是该变量是最终值

  5. .NET设计模式(15):结构型模式专题总结(转)

    摘要:结构型模式,顾名思义讨论的是类和对象的结构,它采用继承机制来组合接口或实现(类结构型模式),或者通过组合一些对象,从而实现新的功能(对象结构型模式).这些结构型模式,它们在某些方面具有很大的相似 ...

  6. HDU 1814 Peaceful Commission / HIT 1917 Peaceful Commission /CJOJ 1288 和平委员会(2-sat模板题)

    HDU 1814 Peaceful Commission / HIT 1917 Peaceful Commission /CJOJ 1288 和平委员会(2-sat模板题) Description T ...

  7. Linux学习路线全解,Linux操作系统学习路线

    大家都知道,在现在这个信息化飞速发展的时代,IT技术火速发展,信息的重要性,可想而知.现在,在北京当一个高级运维工程师,年薪百万已经不是梦想.当然我也想,谁不想挣大钱,开好车,住好房.下面说说自己的一 ...

  8. falsk sqlalchemy 自关联创建评论回复数据库

    本项目在于创建类似微信上的评论回复功能的数据库 基类: from app import db from datetime import datetime class Basemadel(object) ...

  9. Markdown使用笔记

    下载地址:http://markdownpad.com/ 简明版 Markdown 语法说明(简体中文版) 完整版 Markdown 语法说明(简体中文版) 官方文档:http://www.markd ...

  10. Java设计模式(13)模板模式(Template模式)

    Template模式定义:定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中. 其实Java的抽象类本来就是Template模式,因此使用很普遍.而且很容易理解和使用,我们直接以示例开始: pu ...