一、iOS开发的前景

2012年3月份,苹果公司的市值已经突破5000亿美元,成为世界上市值最大的公司。5000亿是神马概念呢?

  • 可以帮助陷入欧债危机的8个国家偿还债务
  • 可以买下35个天安门广场、34座卢浮宫、109座圆明园
  • 可以同时买下雅虎、戴尔、百思买、摩托罗拉、动视暴雪
  • 超过105个国家一年的GDP
  • 平铺在地上,能覆盖42%的美国领土
  • 每个苹果员工可以分到660万美元
  • ......

这个5000亿,真可谓“富可敌国”。在此,我们还要感谢苹果公司给雅安捐款5000万。其实,苹果对我们中国消费者一直都重视。为什么苹果公司这么有钱呢?我在这里简单分析一下。

1.苹果公司的商业模式

1> AppStore

苹果公司有个叫AppStore的应用商店,既然叫商店,肯定是卖东西的,它卖的是软件。开发者可以将开发好的软件,标个价钱,发布到AppStore。用户可以免费注册一个AppleId账号,然后利用AppleId登录AppSotoe,下载一些喜欢的软件,安装到自己的iPhone\iPad等苹果移动设备上!AppStore里面包含了77.5万款应用,应用的下载次数已经超过400亿次,有些是免费的,也有些是要钱的。比如一个植物大战僵尸HD版,下载一次需要45¥,HD版一般是指iPad版。而iPhone版的植物大战僵尸,下载一次需要18¥。每个AppleId第一次下载的时候才需要花钱,以后重新下载是不用花钱的。

       

很多人可能觉得可笑,在我们天朝还怕没有免费软件用么,有谁会笨到去花钱买软件啊?但是,就是有这么多的用户愿意花钱向苹果买软件。要想知道为什么,这个要追溯到2001年了。

2> 安装软件到iPhone上

没有用过iPhone的人可能会问:iPhone上的软件一定要从AppStore下载么?可不可以像android手机一样从别的网站下载软件后再安装到手机上呢?

  • 默认情况下,iPhone上的所有软件都必须从AppStore下载安装;不过,可以对你的iPhone进行破解,也就是传说中的“越狱”, “越狱”后的iPhone可以安装从其他地方下载的软件,就跟android手机安装软件类似了。不过“越狱”有一定的风险,如果不幸安装了恶意的软件,也许会将你手机中的一些隐私信息泄露出去。如果你是从AppStore下载软件,那就很安全了,因为苹果会对开发者上传的应用进行严格的审核,如果发现有不妥的地方,就不允许发布到AppStore。网上有一键“越狱”工具,支持iPhone\iPad\iPad mini\iPod touch。
  • “越狱”还有个好处,AppStore上本来要钱的软件可以免费安装了。比如一个植物大战僵尸在AppStore上卖45块,一些热心的大神呢,花45块买了软件后,对软件进行破解,重新打包成安装包,挂到网上供网友免费下载。
  • 如果你是开发人员,也可以利用Xcode将你写的程序运行到iPhone上,也相当于安装软件,不过得有开发者证书,后面我会介绍这个证书。

2.“果粉”的诞生

接下来分析一下:为什么有这么多的用户愿意花钱向苹果买软件。

1> 第一代iPod的发布

2001年10月23日,苹果公司发布第一代iPod,iPod是一种MP3播放器。当时很多公司都在嘲笑苹果公司,因为几年前就有MP3这种东西了,而且已经被三星、索尼等公司占据了市场。但是,第一代iPod的推出在当时引起了轰动,它不但漂亮,而且拥有独特和人性化的操作方式以及巨大的容量,为MP3播放器带来了全新的思路,这是一款具有跨时代意义的产品。就这样,iPod为苹果公司吸引了一大批全球各地的消费者,这批消费者彻底被苹果的产品给迷上了,俗称“果粉”。乔布斯并不是PC(电脑)的发明者,但是苹果电脑却使人眼睛发光;他也没有发明MP3,但iPod却风靡世界;他以前没有做过手机,但iPhone将诺基亚摩托罗拉打得落花流水;在乔布斯之前许多人做平板电脑失败了,但iPad却激发了消费者的狂热......所谓创新,就是把别人已经做过的东西再做得更好一点!

2> iPod的使用

iPod的操作方式跟普通MP3播放器是很不一样的。普通MP3播放器,用一条USB数据线连接MP3播放器和电脑,就可以直接将电脑上的歌曲文件复制到MP3播放器中。而iPod呢,你需要用苹果官方提供的iTunes软件才可以将歌曲传送到iPod中。iTunes在每次iPod连接到电脑主机时,可以把特定的播放列表或把整个音乐库自动同步到用户的iPod里。iTunes中还有个iTunes音乐商店,用户可以从商店中购买正版高品质音乐,然后利用iTunes将音乐文件同步到iPod中进行播放。从其它商店购买的受保护音乐是不能在iPod上播放的,iTunes音乐商店已经售出了10亿首歌曲。当然,也有黑客破解了iPod的诸多限制,使得iPod可以播放从任何地方下载的音乐,相当于欺骗iPod,让iPod认为它在播放从iTunes上购买的音乐。

综上所述,从iPod发布开始,苹果公司已经培养了一大批忠实的“果粉”,让“果粉”养成了从苹果商店花钱购买东西的习惯。这个“习惯”就是关键!“果粉”对苹果公司已经有了依赖和信赖,所以,苹果推出了AppStore应用商店,也有一大批“果粉”愿意花钱向苹果买软件。

3.赚了用户的哪些钱

至于用户,苹果主要赚取了2大部分的钱:

1> 硬件

  • 移动设备:iPhone\iPad\iPad mini\iPod,现在一部iPhone5在天朝的价格大概是5k
  • 电脑设备:MacBook(苹果笔记本)\iMac(苹果一体机)\Mac Mini(微型苹果主机),iMac的价格一般都是上万的

2> 软件

用户如果花钱从AppStore下载了一个软件,这个钱就给苹果和开发者三七分。比如,我开发者了一款软件,以10块的价格挂在AppStore上,如果有用户花10块下载了一次,我就得7块,苹果得3块。

4.苹果也赚开发者的钱

1> iOS开发者

只要你有了Xcode,就可以开发iOS程序,顺便可以将程序运行到模拟器进行调试,一切操作都是免费的。但是,如果你想把程序运行到真机(iPhone\iPad等)上调试,那就得有开发者证书;如果你想发布应用到AppStore,那就得有发布证书。要想得到证书,首先你得向苹果申请为iOS开发者(iOS Developer),而且并不一定免费。成为iOS开发者后,就可以从官网下载前面所说的2种证书了。iOS开发者可以分为4种类型:

(1) 个人型(individual)

  • 费用:每年99$。看清楚了,是每年,而且是美元。
  • 作用:证书只能是个人使用。可以发布应用到AppStore。
  • 提示:用户只能在AppStore下载你的软件。(“越狱”除外)

(2) 公司型(company)

  • 费用:每年99$。
  • 作用:证书可以多人使用。可以发布应用到AppStore。
  • 提示:用户只能在AppStore下载你的软件。(“越狱”除外)

(3) 企业型(enterprise)

  • 费用:每年299$。
  • 作用:证书可以多人使用。不可以发布应用到AppStore。
  • 提示:如果你开发的软件是企业内部使用,或者给特殊人群使用,并不想发布到AppStore给全球用户使用,就可以用这种账号。你把开发好的应用放到某个服务器下,然后把下载地址告诉用户,用户在自己的机器上使用Safari浏览器访问下载地址,然后就会自动下载安装。用户就不用从AppStore下载你的应用了。

(4) 大学型(university)

  • 费用:免费。
  • 作用:用于校园内部开发测试,需要学校向苹果公司申请,但审核非常严格。

可以看出,苹果不仅是赚消费者的钱,还赚开发者的钱。而且开发者还要买苹果笔记本呢,这里又赚了一笔。

2> 应用发布的流程

  • 如果你要把应用发布到AppStore,不是马上就可以上线的,还要经过苹果公司的严格审核。审核的内容有很多,比如是否为恶意程序、是否包含黄色暴力的内容、是否有使用的价值(不可能随便写的小例子也能发布成功)、是否有明显的BUG(BUG就是指程序错误)、是否侵权等等。而且,有些特殊软件,苹果是不允许你开发的,比如输入法、短信软件、通讯录等,像这类应用,是不可能在AppStore上找到的。
  • 可以看出,苹果是很为用户着想的。你想象一下,如果苹果不严格审核应用的话,那AppStore将会有多少垃圾软件啊,最终受伤的是用户。
  • 如果你上传的应用审核不通过,苹果会详细列出不通过的原因。而且这个审核过程至少为1个星期,有时候还要半个月或者1个月。因此,你的应用从开发到正式上线,要耗很长时间。如果软件要发布新版本了,一样的,还是进行审核才能上线。
  • 如果你开发的应用不想给苹果审核,那么你就选择企业型开发者,虽然贵了200$,但还是有好处的:不用再等待那至少1个星期的审核了,可以随时发布新版本,用户也可以及时享受最新版本。

5.总结

  • 说了这么多,应该能感受到为什么苹果这么有钱了吧。当然,苹果肯定还有其他赚钱的途径。有这么牛X的公司在撑着,这几年内,iOS开发的前景还是不错的。再加上iOS开发的门槛比较高(昂贵的设备成本),对比andorid,iOS开发者少了很多平民开发者。而开发android程序是完全免费的,即使你是农民工,只要你会写代码,就可以开发android程序。相对来说,iOS人才还是比较少的。
  • 近几年,移动互联的发展非常迅速,各大公司也不断推出自己的移动终端产品,都想在移动互联领域占有一席之地,前阵子听说腾讯以6000万的价格收购了一款由6个人开发的手机刷机软件,一人分了1000万。目前来说,移动开发是个不错的方向。
  • 大部分iOS用户的消费能力都比较强,特别是在游戏方面,一大堆RMB玩家,砸几万RMB只为玩一个手机网游。前几天看到一款《我叫MT》的iOS网游向雅安捐款了100多W,公司承认大部分钱是来自RMB玩家的支持。
二、iOS开发的难易度

以我个人和身边朋友的开发经历来说,对比android开发,iOS开发会更简单一点。做一个相同的功能,在android上可能需要9-10行代码实现,在iOS上可能只需要1-2行,而且实现地更加出色。这并不是夸张的说法,这是事实,但并不是所有的功能都这样。我并不是说android开发不好哈,只是有些功能开发起来相对复杂一点。为什么会有这样的差异呢?

1.强大的开发工具

苹果公司提供了非常强大的开发利器---Xcode,集成了iOS模拟器、Interface Builder等工具。Interface Builder是用来构建软件界面的,利用Interface Builder,你可以轻松地拖拽一个按钮或者文字到软件界面上。比如下面的QQ登录界面:

你可以轻松地将右边的按钮(Round Rect Button)、文本标签(Label)、文本输入框(Text Field)拖到左边的手机界面上,通过调整位置和文字,就形成了左边的界面效果。

运行到模拟器上的效果:

2.强大的SDK

苹果公司提供了非常强大的SDK,也就是开发包。用了这个开发包,有些功能,你只用几行代码就能实现非常出色的效果。

1> 比如iPhone的图标抖动效果

长按软件图标后,iPhone桌面上的所有软件图标都会抖动,左上角也出现一个圆形的“X”,点击“X”,可以卸载这个软件

这个抖动效果只需要4行代码就搞定了。

2> 有些软件为了给用户一些提示,图标右上角会出现红色的数字

这个红色的59表示有59条未读的QQ信息。这个效果只需要1行代码。

3.android开发与iOS开发对比

1> iOS是不开源的

苹果公司的iOS系统是不开源的。不开源意味着什么呢?意味着其他公司的移动设备不允许搭载iOS系统,即使你出再多的钱,苹果公司也不愿意给你用。所以你会看到只有苹果公司自己的产品上才运行着iOS系统,比如iPhone、iPad等。你不可能说看到某辆车的车载系统是iOS的,那肯定是山寨车、山寨系统,除非苹果公司自己卖车了,出了一款iCar,哈哈。

2> android是开源的

而google开发的android系统呢,它是开源的。那意味着android系统是免费的,谁都可以使用,所以你今天看到满街都是android手机,有三星、索尼、华为、小米等,就连康师傅和读者杂志都出android手机了,有网友还调侃“康师傅,够了,别逼三星出方便面”。甚至连电视、洗衣机、微波炉、汽车等,都是android系统的。对比iOS设备,android设备的价格都比较便宜。

3> 开源背后的android开发者

可以看出,android的市场占有率是很大的,但是苦了android开发者,为什么呢?市面上的android手机屏幕有大有小,为了考虑程序能够适应所有的手机屏幕(也就是“屏幕适配”),android开发者可是吃尽了苦头啊,这对开发者来说,简直是个噩梦。再者,由于android是开源的,意味着每个手机厂商都可以对原生的android系统进行修改,包装成自己特有的系统,小米、魅族就是如此。这对android开发者来说,又是一个噩梦。举个例子:本来好好的一个功能,在三星手机上能运行成功,但是在小米手机上就可能运行不起来或者达不到想要的效果,这种事情是经常发生的。为了让这个功能适应所有的手机,android开发者又是吃尽了苦头。公司一般会为android开发者配备N台不同型号的手机,感觉公司对自己挺好的,这么多手机任你用,其实,你懂的。。。

4> iOS设备的屏幕适配

运行iOS系统的设备就那几个:iPhone\iPad\iPad mini等,屏幕大小也比较统一,比如iPhone4和iPhone4S的屏幕是一样的,不管是iPad2还是iPad4,所有的iPad屏幕也是一样的,不会像android那样很大变化。不过iPhone5的屏幕比以前的iPhone多大了一些,不过我觉得这个问题不大,因为利用苹果的开发工具和开发包,可以轻松地解决这个屏幕适配的问题。苹果官方也表示iPhone6的屏幕并不会变得更大。

5> 加班问题

在公司里面,经常会出现这样的情况:同一个项目,iOS开发组早早做完了,android开发组还在苦逼中,而且领导经常在那催“iOS组都做完了,你们怎么还没做完啊”,加班也是常见的事。当然,iOS开发组也有加班的时候。前不久,听到一个朋友在调侃,他说感觉他们公司做iOS开发的都比android开发的帅气精神一点。他还说,一个星期不见,那个做iOS的皮肤好像又好了一点。哈哈哈,挺搞笑的。

4.iOS和android系统架构对比

现在市面上的android手机,屏幕越来越大、CPU越来越高级,听说有8核的了、内存也越来越大。但是有时候使用起来,还是不如iPhone流畅。就拿iPhone4来说,内存才512M,CPU单核;我现在有部android系统的索尼LT26ii,双核CPU,1G内存。对比之下,还是iPhone4顺畅一点。有时候,LT26ii上有个程序崩溃了,会导致整个手机都停滞一段时间;在iPhone上,有个程序崩溃了,并不影响其他程序的使用。Facebook的开发者也在吐槽android系统太粗糙了。为什么会有这样的差异呢?这跟系统架构有关系。

1> android系统架构

android是基于Linux内核设计的,是在Linux内核上面运行一个Java虚拟机,虚拟机再运行软件。像是在一个系统上面又套了一个系统,相当于同时跑2个系统,我们的应用要穿越2层系统才能跟手机硬件交互。所以占内存大、运行速度略低。

2> iOS系统架构

iOS是基于UNIX的,直接与底层硬件通信。系统底层、应用框架、应用软件都是采用C\C++或者Objective-C写的,所以有很高的运行效率。
 

5.总结

我并不是说android开发没有前景,只是觉得android开发相对辛苦一点。如果你android技术很牛B、经验丰富,遇到再难的andorid问题,也是可以迎刃而解的。还有一点,iOS开发中也是有难点的,肯定也有苦逼的时候,也有加班的时候。
 
 
 

李洪强iOS开发之【零基础学习iOS开发【01-前言】03-前景和难易度分析的更多相关文章

  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开发之【零基础学习iOS开发】【01-前言】01-开篇

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

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

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

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

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

  6. 零基础学习iOS开发

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

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

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

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

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

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

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

随机推荐

  1. Eclispe使用Maven添加官方库的jar包

    先到百度或google搜索maven仓库,在仓库中搜索需要的jar包,如poi.jar. 搜索到之后找到需要的jar包,找到这里

  2. [大牛翻译系列]Hadoop(7)MapReduce:抽样(Sampling)

    4.3 抽样(Sampling) 用基于MapReduce的程序来处理TB级的数据集,要花费的时间可能是数以小时计.仅仅是优化代码是很难达到良好的效果. 在开发和调试代码的时候,没有必要处理整个数据集 ...

  3. linux服务器修改ftp默认21端口方法

    1.登录服务器,打开vsftp.conf文件 # vim /etc/vsftpd/vsftpd.conf 2.在文件末尾增加listen_port=8021 #remote_charset=CP125 ...

  4. Java生成唯一GUID UUID

    GUID(Global unique identifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个 16 字节的二进制值. GUID ...

  5. SQL Server 2014 Always on ON Microsoft Azure New Portal(1)

    以前假如需要在Azure IaaS 创建的SQL Server AlwaysOn 需要参考以下的步骤 From the MVPs: SQL Server High Availability in Wi ...

  6. 介绍一下linux的文件系统

    (1)/bin:该目录用于存放用户命令. 目录 /usr/bin 中也存放了一些用户命令.(2)/sbin:该目录用于存放许多系统命令,例如 shutdown.目录 /usr/bin 中也包括了许多系 ...

  7. user-agent中的mozilla

    ie说我等不急了,所以user-agent增加 mozilla标识 这篇文章极其好玩:http://nonfu.me/p/8262.html

  8. mac安装cocoapods

    sudo gem install cocoapods

  9. (C学习基础)一,CMD的使用

    以后考研要考数据结构,所以系统的整理一下C学习笔记.这里开发用VS2013  CMD资料在这里下载 首先就是DOS系统的CMD的使用,是不是觉得会命令行语句的人特别牛呢,有时候使用命令行总是事半功倍, ...

  10. [Android Training视频系列] 8.1 Controlling Your App’s Volume and Playback

    主要内容:1 鉴别使用的是哪个音频流2 使用物理音量键控制应用程序的音量 3 使用物理播放控制键来控制应用程序的音频播放 视频讲解:http://www.eyeandroid.com/thread-1 ...