原文地址:http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html

本文目录

从今天开始,我就开始更新【零基础学习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上打开相应的应用软件来玩游戏、聊天、看电影了。
  • 接下来再来认识一下操作系统,下面这张图片描述了操作系统所处的位置:

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

   

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

二、主流手机操作系统

  • 目前应用在手机上的操作系统主要有: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开发】【转载】的更多相关文章

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

    从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂 ...

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

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

  3. 零基础学习iOS开发

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

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

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

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

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

  6. 【零基础学习iOS开发】【01-前言】02-准备

    一.程序设计语言 上一讲已经说到:要想开发一款软件,首先得学习一些对应的程序设计语言. 至于iOS开发,须要学习的语言主要有:C.C++.Objective-C. 回到顶部 二.是否须要计算机专业知识 ...

  7. 李洪强iOS开发之【零基础学习iOS开发】【02-C语言】02-第一个C语言程序

    前言 前面已经唠叨了这么多理论知识,从这讲开始,就要通过接触代码来学习C语言的语法.学习任何一门语言,首先要掌握的肯定是语法.学习C语言语法的目的:就是能够利用C语言编写程序,然后运行程序跟硬件(计算 ...

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

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

  9. 李洪强iOS开发之【零基础学习iOS开发【01-前言】03-前景和难易度分析

    一.iOS开发的前景 2012年3月份,苹果公司的市值已经突破5000亿美元,成为世界上市值最大的公司.5000亿是神马概念呢? 可以帮助陷入欧债危机的8个国家偿还债务 可以买下35个天安门广场.34 ...

随机推荐

  1. 正确的前端传后台json方式

    DEMO: var data=JSON.stringify({"page": {"pagenow": 1,"pagesize": 20},& ...

  2. scope='request'的bean预加载冲突

    Error creating bean with name 'authenticationSuccessServlet': Scope 'request' is not active for the ...

  3. ubuntu 14.04 解决JavaMelody 图片中文乱码

    从windows系统中,copy了MSYH.TTC和MSYHBD.TTC 2个文件到 服务器的%JAVA_HOME%\jre\lib\fonts\fallback 目录中, (如果fallback目录 ...

  4. vsftp "上传 553 Could not create file"

    我在LINUX下VSftp建立一个FTP服务器,但从WINDOWS使用FTP时,无法上传也无法下载!出错如下 ftp>; ls 200 PORT command successful. Cons ...

  5. js自调用匿名函数的三种写法

    第一种: (function(){ console.log(‘hello world”) })() 第二种: (function(){ console.log(‘hello world’) }()) ...

  6. EpicEditor – 可嵌入的 JavaScript Markdown 编辑器

    EpicEditor 是一款可以嵌入到网页中的 JavaScript Markdown 编辑器,支持全屏编辑.在线预览.自动保存草稿,离线支持等等.对于开发人员,它提供了一个健壮的API,可以很容易定 ...

  7. 如何使用 HTML5 Canvas 制作水波纹效果

    今天,我们继续分享 JavaScript 实现的效果例子,这篇文章会介绍使用 JavaScript 实现水波纹效果.水波效果以图片为背景,点击图片任意位置都会触发.有时候,我们使用普通的 Javasc ...

  8. SharePoint 2013 搜索报错"Unable to retrieve topology component health. This may be because the admin component is not up and running"

    环境描述 Windows 2012 R2,SharePoint 2013(没有sp1补丁),sql server 2012 错误描述 搜索服务正常,但是爬网一直在Crawling Full,但是爬不到 ...

  9. ora-00119和ora-00132解决方案

    win7 64位    oracle 11g  先登录到sqlplus: sqlplus /nolog; 登录数据库: conn system/manager as sysdba; 然后启动数据库: ...

  10. Android根据字符串加载Activity和图片

    根据传入的字符串跳转Activity Intent intent = new Intent(context,Class.forName("com.packname.Activity" ...