iOS与安卓,两个不同的开发体系结构,一个封闭一个开放,是所有开发者绕不去的大山。而我们在开发过程中,也感受到了这其中的细枝末节。
一、开发环境对比
首先在开发环境的配置上,二者就表现出了极大的差异。
1,配置过程
iOS的开发环境非常完美下载完官方提供的X-CODE之后直接安装即可就可以开发了,而安卓则需要先下载JAVA环境,然后去windows里面做好配置环境,然后下载eclipse这个环境再在里面做各种复杂的配置操作,才可以配置好开发环境。当然在2013年的时候谷歌终于推出了AndroidStudio开发工具,可以缩减配置过程,但我们的技术跟我说,现在主流还是复杂的eclipse为主,AndroidStudio尚不成气候。
从配置过程来看,iOS简单,安卓极其复杂。
2,跨平台适应性
苹果的开发环境是及其霸道的,必须用mac电脑的macos系统才可以开发iOS,而windows是无法做iOS开发的,除非做虚拟机,但是真正做iOS开发的时候是不可能用虚拟机搭建macos来做开发,这样速度会及其缓慢。无法开发任何大型系统。
而安卓虽然安装起来复杂,但是具有很好的适应性,不仅能够在windows上开发,还能在mac系统上开发,完全没有任何问题。
从跨平台的适应性来说,苹果更像一个自我生长的大树,而安卓就像苔藓,可以附着在任何平台上生长。如同当年的windows可以安装到任何pc上一样。
安卓胜。
3,真机调试
安卓在真机调试上就远远优于苹果,安卓开发者只需要打开调试开关然后就可以调试手机了,但是iOS则不同,iOS需要证书、描述文件、APPLEID、开发者账号,搞半天才可以进行调试,过程实在吐血,有兴趣可以看这里。http://my.oschina.net/joanfen/blog/167730
安卓胜。
总结:在开发环境的对比上,苹果表现出了强硬的态度:“只准用我的”,而安卓则表现出了很强的适应性,顺势而为。当然,这对于开发者而言不是什么大问题,只是从一个侧面我们看到了两家公司的不同文化。苹果更自我,谷歌更拥抱开放。
二、推送机制问题
由于我们也是初次创业,APP本身结构也不是特别复杂,所以很多东西就都开始想当然,在APP的结构设计上没有考虑到推送机制,所以我们一开始都是让程序做的心跳连接,通过不断向服务器做请求,来更新数据。
我们早期没有经验所以是直接让我们的应用做心跳去请求服务器信息的,这样持续不断的发送请求,不仅耗电量大,而且对网络流量都是有很大消耗的。随后我们意识到问题,开始着手第三方的推送机制。
第三方的推送我们研究了谷歌官方的GCM、苹果的APNS、百度云推送、个推、极光推送。我们最后选择了百度云推送作为统一平台。原因在于百度的“共推”机制,只要用户安装了任何百度系应用以及使用带有百度云推送的应用,百度都会进行统一的推送服务,而不需要单独的应用程序进行心跳操作,只需要交给百度系即可。
而对于iOS的话,则后台不需要再去研究APNS就可以进行统一的推送。
总结:在推送问题上,由于IOS和安卓推送机制各自为政,所以开发者更希望有一个大一统的推送平台来管理这二者。同时加上IOS和安卓在国内推送上的水土不服,也给了第三方推送机会,而在第三方推送正好抓住了这个机会。
三、适配尺寸,版本问题。
虽说苹果的真机调试比较复杂,但是苹果一共需要适配的机型也就两种尺寸,3.5和4.0英寸并且IOS的版本升级率远远大于安卓,所以在适配上,IOS的优势就明显了,并且库克在发布会上也拿系统升级率向安卓开火,安卓在这块确实没做好。
根据统计,截止去年10月统计,IOS7的升级率为73%,而根据去年5月的统计安卓早就已经发布到4.X版本了,而2.X版本的市场却占据了39%的市场。所以我们在安卓的适配上非常痛苦。
先说尺寸问题吧,安卓适配需要同时适配各种分辨率的手机,从240*320到1280*800,最常见的就有十几种分辨率需要做适配,并且最要命的是控件问题。IOS经过早期的各个开发者的经验汇聚,加上苹果公司的重视,苹果公司已经做好了官方控件,IOS程序员只需要直接调用即可,但是安卓做的控件就复杂了,需要去github等开源网站上找到相应的项目,然后自己改写代码以适配,但最后这些做完的控件放到不同分辨率的机型上又会出现超出屏幕范围,或者太小等等诸多问题,完全不兼容,需要一个个调整过去,很是痛苦。
另外这里再说一下真机云测试,凡是那种需要登录账号的APP,云测试是压根没用的,只能一个个手机自己测试过去!
接着再谈机型适配问题,其实说到底还是版本适配的问题,我们安卓版刚刚提交到应用商城后就有一堆用户来吐槽说居然无法注册,后来发现原来是调用头像的API接口太新而无法适应老版本导致的,接着我们跑去旧手机市场花了150元在那边边测手机边改,终于把问题解决了。但第二次提交后,居然又有人吐槽无法打开的问题,后来我们发现原来是版本太老导致的json格式解析问题,后来又去测了半天......
辛酸啊,不过还有更辛酸的公司,据我所知那个叫PICOOC的公司是做智能电子秤的,由于电子秤需要蓝牙适配所以必须有真机测试才行,他们曾经因为用户的一个韩国手机无法兼容而不得不买了一个韩国手机来做,还有类似那些低版本的用户需要一个个试过去,还有些最辛酸的就是明明刚刚适配好了小米3系统的蓝牙了,结果小米官方系统升级后导致原来的蓝牙通道不对,需要重新再拿手机来重写代码做更新和没更新系统的选择性适配,最后还又被用户投诉了......
总结:适配的问题上IOS让开发者感受到了IOS的魅力。同时,在版本和尺寸的配上,安卓机乱糟糟的生态让开发者们不得不只去选择主流的机型去满足而无法顾及更多边缘需求。
在适配这个问题上,IOS大获全胜。
四、应用商店提交
关于应用商店提交又是一个令人不得不说的事情,由于安卓是开放生态,所以自然应用商店也是一个开放而混乱的生态环境,除了百度,360,豌豆荚,腾讯,安智这样的大头,其他应用市场实在无法恭维,具体我写过一篇《从提交安卓应用一窥市场格局》,不再多说。
那么再谈IOS,IOS的提交就非常狗血了。需要应用ID,发布证书,配置文件,生成设置,部署目标.......过程极为复杂而冗长。但是当我们提交完毕之后,有一种彻底的征服感。
总结:在应用的提交上,IOS的提交虽然极其麻烦,但是只要提交过一次就可以大获全胜,但是安卓则不同,由于其开放而混乱的超级生态,导致我们提交上的种种麻烦。
最后感慨下,比较了那么多。我们感受到了苹果作为一体化优势在于适配、推送、提交,而安卓的优势在于跨平台、以及生态多样化。但是无论他们好坏,最苦逼的还是创业公司,无论是IOS还是安卓都得做。
最后说一下,我们团队打算直播创业全过程,这是第二篇,我们的APP应用名字叫“约饭”,我们会不断曝光我们做的事情,各位都看过来吧,我们的微信公众号:“道同道”。