这个首先取决于你想要开发一个什么类型的app。
如果想开发一款电商类的app,那能够最好掌握混合开发技术。即HTML5+Native混合技术,现在市面上很多app都使用了混合开发,例如:淘宝、京东、微信、支付宝等等。而且这些app的开发人员在不同的场合也分享过使用混合技术开发各自产品的经验。
除了掌握混合开发技术,有些app的开发还需要你具备以下能力:
1、前期需求规划、信息的能力:你需要制定出一个完整的需求文档,越明确越好,功能文档越相系越好,流程图,时序图。前期准备的越充分,后续问题出现的就越少。
2、交互设计、UI设计的能力:你除了最是个程序员,还得是个设计师。
你得能设计出基本且完善的原型图和app基础的交互设计效果图,之后再根据这些设计出完整的UI界面并学会切图,一些需要做自适应的素材图片需要做点9patch。 这里还需要你懂px,pt和dp之间的换算,屏幕密度的换算和相互之间的系数,以便你的app能完美适应不同分辨率设备。
其中交互设计需要你懂得很多人机操作的技巧经验,掌握Axure等交互工具的使用,UI设计需要你掌握Photoshop和Illustrator等操作。
3、使用ADT之类的开发环境进行app软件开发,你需要掌握java语言,熟悉android环境和机制。
4、如果不是单机版的app,需要用到服务器,那你还得掌握WebService相关知识和开发语言,常用的有ASP.Net,PHP,JSP等。
5、熟悉并能开发数据库。
6、数学知识要好。因为某些功能需要做算法
7、熟悉API接口开发,这里包括你自行开发API的能力以及调用第三方API的经验。
8、熟悉TCP/IP,socket等网络协议和相关知识。
9、熟练掌握app发布的流程,真机调试技巧,证书,打包,上架。
App开发其实不适合一个人做,费心费力还费钱,除非是一个单机版的小应用,或者利用现成的app开发简单的第三方应用,否则还是找一个专业的第三方外包公司来做比较好,相比个人,专业靠谱的公司能帮你省时省力多了。