李洪强iOS开发之【零基础学习iOS开发【01-前言】03-前景和难易度分析
一、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玩家的支持。
以我个人和身边朋友的开发经历来说,对比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系统架构
5.总结