iOS和Android开发异同点(一)
说到移动开发,目前主流平台有谷歌的android os 系统,苹果iOS系统,和微软主打的windows Phone OS 系统,至于目前为啥移动开发中,安卓和iOS比较受欢迎,者要看三家产品的历史由来了,况且为何出现wp不怎么普及,估计微软比我们更头疼更关心这个问题,今天我们就不关注这个话题。
开发语言;
iOS,采用C,OC和swift语言开发,安卓采用java,c来开发,wp采用C#开发,OC和JAVA ,C#,都是面向对象语言。
入门难度:
其实三种平台的开发,没有哪个平台个入门难不难的问题,至于java入门易懂,C学起来头痛,但是我们评价这两种技术(安卓和iOS)不能单纯的只用开发语言来衡量,要从开发成本,简易度,维护,适配,兼容等各方面去很亮,通过比较对要下手学习移动开发的同学给个好的建议,决定去学习哪个方向。
开发成本:
安卓:windows ,mac的pc即可,再准备一个真机就可以。
iOS:需要OS操作系统的电脑(或者苹果盒子),真机测试也需要一台苹果手机。如果你的电脑配置够I高,你也可以把windows电脑装上mac虚拟器,但是不建议这么做。
对比一下:iOS 成本相对较高。
环境搭建:
安卓:需要配置JDK, Android SDK ,Eclipse/Stusdio,
如果想开发兼容C代码,还需安装NDK工具包。
IOS: 只需安装Xcode即可,兼容C,OC。
对比一下: iOS方便很多,苹果官方帮我已经继成了开发工具包。
开发语言:
安卓:JAVA, C。
如果只是做入门级别,JAVA基础就可以支撑你开发安卓程序了。C前期可以放弃。JAVA入门容易,易懂灵活。
想要往高级走,那么学习c,和Linux是必不可少,所以还是要回到C层面上,开发安卓应用,要想成为高级级别的,需要会很多,学习路比较苦逼。
iOS: C, OC,Swift
如果入门级别,略懂C,熟悉OC即可,但是语法没JAVA易懂和灵活,对于没基础的小白来说,入门还是比较吃力和枯燥的,至于进阶高级的话,需要熟悉C语言,因为很多库是支支持C的,况且不支持ARC机制,需要开发者自己管理。
除了熟悉更多的API和编程设计模式,其实安卓也要学习设计模式和编程思想,设计思想可以在工作中慢慢提高和收获。
市场行情:
目前两者的需求量安卓高于iOS,因为同个项目,人力需求来说安卓比iOS要多,但是学习者 安卓也比iOS多,所以总体来说android竞争比较激烈,iOS求职相对压力较小。
工资福利;
目前市场,同等经验的iOS薪酬高于Android,并且很多应用会以iOS为主,项目组预算可能iOS比Android高,总之市场决定价值,至少目前五年内是这样的。
开发难度;
目前很多公司的APP以iOS为原型,UI界面和交互一般模仿苹果系统,这样加大了安卓开发者的开发难度,需要自定义控件实现界面需求。至于机型目前安卓市场机型众多,rom也多,对安卓开发者屏幕适配和系统兼容是比较头疼的事情,而iOS来说,并不用过多去关心这个问题,相对来说安卓开发难度大于iOS。
后期维护;
安卓需要关系过多的机型和厂商更改权限的问题,对于开发者要求也加大的不少,需要兼顾老版本和新版本,可能你的最新版本也要考虑的安卓2.3系统,但是iOS一般强制用户的系统必须在某个版本以上,因此iOS的后期维护比较简单,Android比较大。
拓展延伸
安卓:只要采用JAVA语言,大家知道JAVA 语言是比较博大精深的,可以写桌面应用,服务器,web,还有安卓应用,这样对于入门安卓的同学,以后如果转服务器开发,那么就容易的多了。目前很多的项目都是采用java写的后台,
iOS:采用OC为主,如果熟悉C的同学可以做游戏,或者也可以去做嵌入式开发,已经写安卓系统的内核,但是想转服务器那么就有点困难了,就必须从学习新的语言,
总之安卓开发者,可以灵活从后台转客户端,其实也可以做前端工程师,而iOS 就没这么容易了。
个人发展:
个人路线而言, 如果以后担任更高的技术职位,那么优先入门安卓,从开始的安卓开发,在慢慢学习iOS,因为学会了一门语言再转另一门语言是很容易的,通过会了两门开发语言,那么可以担任移动开发经理(兼顾安卓和iOS),再慢慢衍射到服务器,担任架构师或者技术总监(管理客户端,服务器,前端等)。
以上就是大致对这两种领域的总结,以后我会着重说一下oc和java异同点,和开发iOS,Android的区别,从代码层面对比下这两种技术的移动点,谢谢阅读。
iOS和Android开发异同点(一)的更多相关文章
- 在MAC上搭建cordova3.4.0的IOS和android开发环境
Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的iOS和Android开发环境,首先下载cordova,地址:https://cordova.apache.org/#down ...
- 【转】针对iOS VS. Android开发游戏的优劣——2013-08-25 17
http://game.dapps.net/gamedev/experience/8670.html 问题:如果你正在一个新工作室开发一款新的平板/手机游戏,你会选择iOS还是Android? 回答: ...
- 对ios、android开发程序员的14条忠告
————————本文摘自千锋教育(http://www.mobiletrain.org/)对ios\android开发程序员的14条忠告————————— 1.不要害怕在工作中学习. 只要有电脑,就可 ...
- 《React Native 精解与实战》书籍连载「配置 iOS 与 Android 开发环境」
此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...
- iOS、Android 开发的前景真的那么差吗?
程序员问问周刊:别蕉绿了,问问「IT老兵哥」吧! Q:本科 985 在上海二线互联网企业工作,公司有人才落户指标,但要排队等五年左右.除此外只能等居住满七年落户,现在想换工作追求更好的发展,纠结是继续 ...
- 10个学习Android开发的网站推荐
1. Android Developers 作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会. 2. Android Gui ...
- 10个很棒的学习Android 开发的网站(转)
看到江湖旅人 写的<10个很棒的学习iOS开发的网站 - 简书>,所以就忍不住写Android 啦,也希望对大家有帮助.我推荐的网站,都是我在学习Android 开发过程中发现的好网站,给 ...
- [转]10个学习Android开发的网站推荐
本文转自:http://blog.csdn.net/i_lovefish/article/details/43950893 1. Android Developers 作为一个Android开发者,官 ...
- 创业公司求IOS、Android攻城狮一枚
地点:北京CBD附近(地铁1号线大望路) 魅力值:送珍贵期权 你要会: 1. IOS或者Android开发 2.可以处理类似微视/秒拍的视频录制功能 3.熟悉jso ...
随机推荐
- 1.cocos2dx 3.2环境搭建
1 所需软件 jdk-7u25-windows-i586.exe python-2.7.8.amd64.msi cocos2d-x-3.2.zip apache-ant-1.9.4.zi ...
- Android 系统自动重启Bug(高通平台)
点击打开链接 最近客户反馈了一个Bug,我们的系统用着用着会自动重启,尤其是在拨号的时候极容易死机或者进入下载模式.根据老大和高通的支持得到了一个解决方案. 在Android系统中,有这么一个文件夹: ...
- qsort函数应用大全
七种qsort排序方法 <本文中排序都是采用的从小到大排序> 一.对int类型数组排序 int num[100]; Sample: int cmp ( const void *a , c ...
- Volley的基本使用
Volley的基本使用 导入jar包 导入成功 源码 GET请求下载地址:http://download.csdn.net/detail/q4878802/9053969 POST请求下载地址:htt ...
- Swift延迟加载的一种用途
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 有以下一种情况: 我们试图用Cocoa的语音合成类NSSpee ...
- android自定义view实现progressbar的效果
一键清理是很多Launcher都会带有的功能,其效果也比较美观.实现方式也许有很多中,其中常见的是使用图片drawable来完成的,具体可以参考这篇文章:模仿实现360桌面水晶球式的一键清理特效.本文 ...
- PyCharm 开发Django ,错误汇总
近期略微接触了一下Django.在学习的过程中可谓是坎坎坷坷,遇到了很多的问题. 下面就来谈一谈我对Django的一点点的见解. Django项目的创建 使用PyCharm来开发Django项目是非常 ...
- 5.0、Android Studio调试你的应用
Android Studio包含了一个调试器,允许你调试运行在Android虚拟机或连接的Android设备的应用.通过Android Studio的调试器,你可以: 1. 选择你调试设备的app 2 ...
- UNIX网络编程——Socket粘包问题
一.两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收. 2.短连接 Client方与Server每进行一次报文收发交易 ...
- 如何在web.xml文件中引入其他的xml文件(拆分web.xml)
转载自:http://www.blogjava.net/jiangjf/archive/2009/04/09/264685.html 最近在做一个Servlet+javaBean的项目,服务器用的是t ...