上一篇文章,我从前期准备,语言,框架,流程等方面介绍了android和iOS开发的不同之处。很多人在接触App开发的时候都会思考这个问题,到底我是学android好呢,还是iOS好呢。有些人可能说安卓入门简单,也有人可能说iOS开的薪水高,是这样的么?
其实对于程序员来说,兴趣才是关键所在,每个人在养活自己的同时如果能从事自己喜好的工作,那肯定是最佳的。但是现实往往不是这样的,那么我们该怎么选择,从我的角度给大家一点建议。如果你之前是学习java,包括服务器开发,那我建议你可以先从事android的工作,这样会节省时间,也能容易上手。如果你是之前学习或从事c、c++方面的,那我建议你不妨从iOS做起。当你从事了两年的App开发工作,当然是有过独立开发项目经验以后,而不是简单的进行二次开发或者改bug,之后如果想从安卓转iOS,或者iOS转安卓,都是相对容易的,因为开发的流程基本相同,很多的经验是可以借鉴的。
什么才是真正熟悉App开发呢?不是简单的改改bug,或者做做UI,而是能够具备从框架设计到代码编写,再到代码优化的全部的能力。这里我要重点强调解决问题的能力,无论你有没有经验,起码分析问题的能力是要有的。给大家讲个简单的例子,我做过的项目有一个是这样的,同一个项目有三个人分工,基于同一个代码,但是有的人遇到问题根本不动脑筋,甚至连debug,打log都无从下手,完全要别人写好了去参考。我想说的是,任何工作,如果不去思考,哪怕是从事这个工作五年、十年,照样也是谈不上任何工作经验的。
当然如果大家有幸从事App开发,那我想大家是幸运的,因为在互联网这个时代,App无疑是一个桥梁,很多新鲜的东西都可以提供入口,而且很方便的可以检验自己的所学。很早之前我学习过html,学过javascript,学过php,也学过linux,服务器开发等,但是相比较而言,我觉得App开发是非常有趣的,而前者很多都是相对成熟稳定的技术,App可以按照你想要的样子去设计,当然也有很多成熟的框架供大家参考。我想说,不管是从事什么样的工作,大家都应该去了解一些新的东西,互联网技术变化很快,我们需要不断充实自己。
我本人是更加倾向于做安卓开发,理由是安卓懂,java肯定也不差,后台开发也可以去研究,java有很多事情可以做。但是iOS不同,objective-c或者swift是定制的,尽管我目前的主要工作是做iOS开发,但是我经常会关注安卓的开发。
我看到论坛里有很多教程是介绍基础开发的,当然对于新手来说很有效,但是我想对于从事一段时间的开发者来说,大家更想看到的是工作当中的一些坑,一些技巧。当我从事了一段时间的iOS开发后,我发现庞大的开发团队里居然没有真正从框架角度去思考探索我们App的。App的质量很大程度是依靠前期的架构设计,架构就相当于地基。接下来我介绍一下一个完整项目需要的细节,适应于iOS和android。
1. 一个App开发要有前期的需求分析,市场定位,通过与市场上的竞品对比做出相应的报告。那么什么是竞品,只要是跟我们的App有功能相同的,都算是竞品。
2.总体框架设计,我们的App需要那些平台支撑,服务器?硬件?安卓?iOS?
3.确定了总体框架,我们需要根据需求确定UI,输出基本的UI文档,与功能相匹配。
4.如果App需要服务器后台或者硬件配合,我们需要约定好接口,输出接口文档。
5.以上工作完成之后,架构师需要确定App的架构,包括代码的组织结构,对于iOS,是采用storyboard,xib还是纯代码布局,采用哪些三方库等等,同时需要封装好基本类库。
6.联调。
7.改bug,上线。
8.功能迭代。
当然,App的开发流程是采用敏捷方式还其他方式也是需要确定的,直接会影响到项目的交付,甚至每个人的工作量。今天就写这么多,在开发的工程中受益于很多开源项目,所以我在后续也会开源一些代码,希望别人也能使用。