App开发那些事--iOS VS android
2015-11-15 21:03
218 查看
上一篇文章,我从前期准备,语言,框架,流程等方面介绍了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的开发流程是采用敏捷方式还其他方式也是需要确定的,直接会影响到项目的交付,甚至每个人的工作量。今天就写这么多,在开发的工程中受益于很多开源项目,所以我在后续也会开源一些代码,希望别人也能使用。
其实对于程序员来说,兴趣才是关键所在,每个人在养活自己的同时如果能从事自己喜好的工作,那肯定是最佳的。但是现实往往不是这样的,那么我们该怎么选择,从我的角度给大家一点建议。如果你之前是学习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的开发流程是采用敏捷方式还其他方式也是需要确定的,直接会影响到项目的交付,甚至每个人的工作量。今天就写这么多,在开发的工程中受益于很多开源项目,所以我在后续也会开源一些代码,希望别人也能使用。
相关文章推荐
- 小谈iOS应用各种状态及转换
- Android高仿微信图片选择功能的PhotoPicker
- ios 滑动切换视图
- 野人学Android第二弹——主线程传递消息到次线程的摸索
- 有关android的property机制 (property_set() & property_get())
- Swift(二十一、协议(1))
- Android经典例子收藏笔记1
- Android ListView setSelection()方法的介绍
- Android Theme and style
- #在蓝懿学习iOS的日子#day19
- ios7适配
- fiddler对android app 接口抓取
- Unity中用到的C#补充(四)- Array,ArrayList,List,Drictionary,Hashtable
- 屏幕旋转
- 程序员需要有多懒 ?- cocos2d-x 数学函数、常用宏粗整理
- 程序员需要有多懒 ?- cocos2d-x 数学函数、常用宏粗整理
- 程序员需要有多懒 ?- cocos2d-x 数学函数、常用宏粗整理
- Android联机或者模拟器单独测试Activity的辅助Activity示例开发
- Android读书笔记----Service的用法
- 《第一行代码Android》学习日记1 4000 3