为什么 iOS 有那么多优秀的开源组件,而 Android 反而很少
1个回答
2017-02-27
展开全部
参考下面
要分清ios和android哪个开源组件多,看看github搜一下就一目了然
搜ios得到40938个项目
搜android得到112895个项目搜android得到112895个项目
作为最大的代码托管网站,github的数据绝对能体现这两个阵营的代码开源热度作为最大的代码托管网站,github的数据绝对能体现这两个阵营的代码开源热度
所以楼主的问题不成立
【锟斤拷的回答(33票)】:
----------谢邀,晚上来答了----------
做Android做了大约3年,做的虽然都是描绘Application层的小玩意,但是对整套生态圈应该感觉还是有点小了解;赶脚题主这个问题就有点黑安卓的意思,在看来,这样的问题和“为什么C语言要比JAVA快”一样没有非常大的实际意义。所以感觉题主从主观上在做安卓的时候受到了挫折,哈哈。
首先想说的是,Android上的开源组件并不少。
具体项目就不多说了,各位同仁也在分享,而且git和group上多的一笔,像UIL(Universal Image Loader)这种神器,还有SherlockActionBar(已经被归入support v7,并且在最新版本的ADT中已经被强制填入),很强大的Zxing这个一维码、二维码通吃的好玩意;还有什么pull-to-refresh的lib等等,同样也希望在这个主题里面能看到更多同僚的分享。
相比来说,就以一二维码为例,zxing对iOS的支持就不怎么样,同事在搞iOS上的条码扫描和生成的时候,费了很大的功夫,且效果不理想,条码二维码这个近几年很火吧?可是iOS上没有一套完整的东西,zbar什么的,看了几个,都不理想,或多或少有欠缺。
所以的观点的话,就这件事上,是不同意楼主的观点的,首先jdk&android都是开源的,所以不考虑难度和质量来说,更容易开发出来一套工具lib或者框架;其次Android有Google这个爹,本着Google精神,有很多人愿意去分享自己的东西;再者们从实际开发来讲,又或许是做的项目都很小、很白痴,没有觉得Android的第三方开源小玩意少,很多玩意都能找到相关的解决办法(现成代码)。
于是想了解下题主在什么契机下觉得Android的开源项目少呢?Android本身就是个开源项目呀。
再试图研究研究其它同仁的看法:
回报的问题
细讲讲工资,姑且当大伙儿都跟一样是给人打工的。现在的工资不比同组做iOS的人低,是做app开发的,感觉现在不知道谁传出来的都有这样一种误解,(不算适配的情况下)android开发简单,iOS开发困难。难道就因为oc入门比java削微复杂点么?或者说以为会点java就随随便便地说Android一样,都能搞?别逗了。Android里面玩法很多,跑到实际运营上就能给产品提供各种各样的玩法,像运营商定制,流氓功能(当然不提倡),都是能给公司和团队带来其它方面的获益的;就拿互联网app来讲,关键网络层代码用NDK写好,UI实现Android和iOS同样都是随便交给一个成手就能搞定,又哪里来的优越感?在灵活运用23甚至更多种设计模式,通读并精通算法导论和架构之美后,开发语言难道还有不同之处?这个是觉得很不满的;
会java并不代表会安卓,同样,会用java更不代表懂java,别用从不知道哪里看到的资料说java烂,dalvik卡,讲纯技术,为何oc不做跨平台?
如果是做Android BSP这种相关的工程师,也可以叫Android工程师,这种价钱就不用多说了吧,不是和做app一个级别的,至少在北方是。
其次是广告收入,不要再看个排名就说iOS收入多多牛逼,应用内支付收益多少多少了好么?前两天一个小伙计拿俩图片当杀毒软件挣好几万的事情当真是装傻屏蔽了么?放垃圾广告山寨app这种事App store会让上么?要是邢山虎拿着MT来喷一点都不带还嘴,有多少人一个自己运营的APP都没搞过就开始大谈广告收入和排名算法了?认为大部分人花几天做一个app扔在Google play上,一次性也不用运营,咱们先不要把自己考虑成拯救世界的人,一个月挣个几百刀广告费不够诸位加个油吃个饭的嘛?万一点子投机了当真辞了工作去36kr觅个投资也好。
说的都是以这种屌丝来说的大实话,没接触过在BAT中做的经理。
碎片化的问题
这个的确是一个大问题且无法回避,硬要牵扯的话,和所谓“开源”项目也有点关系:
不够精:某些开源组件在某些特定机型上会报错,因为其可能改了原生的sdk;
不够多:现在对于Android程序员来讲“兼容到2.1(更有甚者到1.6)”已经和“兼容到IE6”一个级别地让人痛苦不堪;这也导致了最起码就有时候不愿意写一个库给小组用,要做的东西特别多,很恶心;
不够全:iOS其实一直贯彻的都是某些种特定的风格,至少和Android相比基本就可以看成只有一两种;可以针对一两种来做一套工具框架,但是肯定无法为未知种类做点什么(这里主要还是指UI,因为毕竟app开发的主要工作量还是在UI上)
生态圈的问题
一个是市场占有率,有说Android市场占有率占有高,开源项目就应该多的,这种纯属敷衍答案,此处不表;其次是所说的应用商店,换句话说是应用个数,再换个词儿叫有效应用个数,这个就不用多说了吧,上文也有提到,像这样就图个广告费还个贷款的人大有人在,做做rom放点系统apk流氓捆绑的也大有人在,觉得不爽的同僚也没必要喷,谁不为了活着;从审核机制来看,忘了在哪个资料上看到了,iOS帮开发者做好了XXX事情,是为了让他们开发出更好、更优良的点子;而做Android的,甚至是Android本身,仍然在摸索。
突然想到一个,也是经常碰见的,不知道cocoachina什么的iOS论坛怎么样,反正Android这边网上资料都烂了,各种瞎胡转载,不要求转载、爬虫的时候署名了,好歹把代码格式给帖过来;格式没有也没关系,能不能把代码给帖全了
反正在国内论坛上的时候,至少百度的时候,经常会心烦气躁,不知道题主是不是在搜某个实现的时候也碰见了这个问题?还是去stackoverflow上看看吧。
个人做Android APP开发,却用OSX,包括最近开始看iOS相关的开发内容,有时候拿着手里的iPhone玩一玩,静音、音量、home、power键都是刚需,玩游戏的时候不用像nexus一样怕碰到虚拟键,承认苹果做的非常非常棒,但是决不承认安卓比苹果差,实在没有可比性。
个人理解题主说的开源组件是所谓的开源工程。其实如果说到开源,真的就和钱啥的扯不上关系了。生态,再过几年等4.0以下的都灭绝了,就不会说生态烂了其实Android有很多非常不错的开源工程,这里说的开源工程是指那种作为依赖工程导入的的工程,下面介绍一下比较知名的android开源项目,都是造好的轮子,免去了很多麻烦
android-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新
ListView、ViewPager、WevView、ExpandableListView、GridView、(Horizontal
)ScrollView、Fragment上下左右拉动刷新,比下面johannilsson那个只支持ListView的强大的多。并且他实现的下拉刷新ListView在item不足一屏情况下也不会显示刷新提示,体验更好。
ActionBarSherlock 为Android所有版本提供统一的ActionBar,解决4.0以下ActionBar的适配问题
MenuDrawer 滑出式菜单,通过拖动屏幕边缘滑出菜单,支持屏幕上下左右划出,支持当前View处于上下层,支持Windows边缘、ListView边缘、ViewPager变化划出菜单等。
Android-ViewPagerIndicator 配合ViewPager使用的Indicator,支持各种位置和样式
SwipeBackLayout 左右或向上滑动返回的Activity
这个在知乎的手机app里面有,说的是安卓版,苹果的没用过,向右滑动屏幕退出当前页面就是这个玩意儿做的
还有一个异步图片加载的universal image loader,也是很猛的...
题主要找的话可以找到很多,只是列举一些用的比较多的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询