在如今IT行业竞争异常激烈的形势下,一个程序员不学个几门语言感觉都没底,这不经过一年的Android自学开发,已经将iOS端的整体功能完成70%左右,主要是时间问题和自学成本问题给耽误了。但是在这段时间敲Android代码,能够体会到iOS和Android开发之前的相同点和区别。回归主题,我列出自己对他们之间的一些看法。
1、目录结构大不相同
以上两个项目都是刚创建的项目,所以看起来好像区别不是很大,那你看看下面这张图
其实我还没有截完呢,这点遭到无数Android开发的吐槽,在来看看iOS的目录,瞬间清爽多了
其实Android还需要定义很多资源文件,比如drawable、xml、values、mipmap等等,这是我在iOS开发多年后再写Android的一大痛点......
所以在目录结构这块我认为iOS完胜Android
2、UI布局方式
iOS和android的UI控件区别不大,主要是Android有很多布局控件,有点css布局的思想,布局控件用的最多的有,LinearLayout
,RelativeLayout
,ConstraintLayout
,FrameLayout
等,其他的就不列举了。
从iOS转到Android后要转变这个布局思想可能要花个几天时间才能适应哈。。。
iOS开发在布局UI的时候一般就用代码方式和XIB布局(故事版其实也叫XIB布局),但是我一般用纯代码,因为XIB布局虽然方便,但是在性能方面不如代码写。
一般在页面布局复杂且改动不大的情况下最好用
Android布局的方式很多情况都是用的xml文件布局,我第一次接触的时候有点不知所措呢,后来慢慢的也就习惯了。
还有就是纯代码布局了,下面给个样例
LinearLayout centerView = new LinearLayout(context);
RelativeLayout.LayoutParams centerLayout = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
centerView.setGravity(CENTER_IN_PARENT);///里面的内容居中
centerLayout.addRule(RelativeLayout.CENTER_IN_PARENT);///相对于父控件的位置居中
addView(centerView,centerLayout);
iOS的XIB底层最终会转成xml布局,所以性能上应该不如Android的直接xml布局。
个人说句公道话,比较喜欢安卓的布局方式,应该系统帮忙解决了很多事情,开发的时候更爽。iOS中的UITableView 中的cell都要给高度,但是Android都是自动布局,尤其是在item中有加载网络图片的时候更胜一筹。
3、页面的比对介绍
页面的概念中iOS一般用UIViewController表示,对应到Android中就是Activity了,
但是在Android开发过程中,一个Activity到另外一个Activity 就是用startActivity(Intent)进行跳转操作,跳转的动效与手机系统有关系,比如华为手机和vivo手机展现的方式就不一样。而在iOS中,有通过导航控制器的方式push,而且还可以自定义跳转的动效,另外还有present的跳转方式,且系统有提供几种炫酷的动效。
所以我经常在写一个动画的时候会听到安卓同事说 真羡慕我们,毕竟系统各有差异,或许真的在动画制作这块Android确实不如iOS呢。
4、手机适配的比对介绍
作为Android开发来说,适配应该也算一个痛点了,不光是各种杂七杂八的手机尺寸,还有个大手机厂商,他们每个厂商都恨不得给自己的手机内置不一样的系统,导致有些效果或者布局在各种手机都是不一样的,这就要花费时间适配了,这点真心吐槽哈。相比于iOS来说 简直很幸福,就苹果一家,所以不太可能出现安卓那种情况,顶多就是在每次出现新系统的时候 需要适配一下了,比如iOS11导航问题,iOS13的安徽模式适配,iOS15的UINavigationBarAppearance等等。
一种事物存在则有他存在的理由,出现这些问题说明时代在进步,所以咱要坦然以对。
5、app发布
app开发完成后 肯定要发布到应用商店的,这个是阶段性的最终过程。
苹果审核是出了名的严格,而且周期很长(现在相当友善),记得在17年的时候,上线一款app花了2个月的时间,简直人都要逼疯了,那个时候第一次审核要一周时间内才回复,再次很审核后时间可能会更长,所以整体周期就会非常的不可控。哪怕是现在也会经常碰钉子,可以看看我之前记录的app审核的悲催经历。
安卓发布应用是出了名的快,当然主要针对国内应用市场,经常听到同事上午提交,上午就上线的通告,N多次被震惊,很是羡慕啊。