App 开发范畴过于庞大,包括各路客户端(Android、iOS、WP 等)、服务端(主流语言 Java、Php 等)。肥肥对于 iOS 和服务端开发一窍不通,对于 Android 开发勉强算是略知一二,在各路大神面前班门弄斧一次。
![c624d925ad0d08bb496bc00ef2af21e4.png](https://i-blog.csdnimg.cn/blog_migrate/f077bfd5d0eaeec67780c9f0bbbfb79f.jpeg)
一个app从设计到最终实现需要你懂得以下几个必要方面
1、前期需求规划与信息——你需要制定出一个完整的需求文档,功能文档,流程图,时序图。
2、交互设计、UI设计——设计出基本且完善的原型图和app基础的交互设计效果,之后再根据这些设计出完整的UI界面并学会切图,一些需要做自适应的素材图片需要做点9patch。 这里还需要你懂得px,pt和dp之间的换算,屏幕密度的换算和相互之间的系数,以便你的app能完美适应不同分辨率设备。其中交互设计需要你懂得很多人机操作的技巧经验,掌握Axure等交互工具的使用,UI设计需要你掌握Photoshop和Illustrator等操作。
3、使用ADT之类的开发环境进行app软件开发,你最基本的也得掌握开发语言,熟悉开发环境和机制。
4、如果不是单机版的app,需要用到服务器,那你还得掌握WebService相关知识和开发语言,常用的有http://ASP.Net,PHP,JSP等。
5、熟悉并能开发数据库。
6、某些功能需要做算法,这还需要一定得专业知识,尤其是数学基础。
7、熟悉API接口开发,这里包括你自行开发API的能力以及调用第三方API的经验。
8、熟悉TCP/IP,socket等网络协议和相关知识。
9、熟练掌握App发布的流程,真机调试技巧,证书,打包,上架。
如果想成为android应用开发者
最基本的是需要懂得用Java语言和XML知识。掌握了这两种语言后再装个Eclipse和Android SDK, 就可以做开发了。当然,还得学Android特有的API的用法。Java和XML只是编程基础。
如果希望成为iOS应用开发者
那么需要知道
1、语言基础:Objective-C语言、xcode开发环境;
2、手机使用经验:足够的iPhone使用经验与体会,不然你很难与产品经理和设计人员有效沟通;
3、具体的开发能力:主要的开发将集中于界面开发、一定的数据库开发、通讯接口开发、协同开发与联调,如果是游戏,那么还需要涉及到引擎、建模、素材、光影、故事板等。推荐两本书两本经典入门书籍《objective-c基础教程》和《iphone4和ipad开发基础教程》。
开发不同类型的App需要用到哪些技术?
WebApp:iOS/Android的内置浏览器是基于webkit内核的,所以在开发webApp时,多数使用html或html5、CSS3,JavaScript技术做UI布局,使其在网站页面上实现传统的C/S架构软件功能,服务端技术用java、php、ASP。现在也有很多一键生成webApp的平台,如百度siteApp/移动开发平台APICloud,APICloud平台提供基于腾讯x5浏览器引擎生成webApp,因为移动端的超级流量入口微信/手机qq等用的也是腾讯x5内置浏览器,所以用腾讯x5浏览器生成的App在移动页面展示时适配于微信的浏览体验,这样可以帮助webApp引流。
Native App:开发Native App需要根据运行的手机系统采用不同的开发语言,开发Android App需要的开发语言是java,还需要熟悉Android环境和机制。Android开发涉及到的技术点非常庞杂。
Objective-C是开发iOS系统App的主流编程语言,开发者一般用苹果公司的iOS SDK搭建开发环境,iOSSDK是开发iOS应用程序中不可少的软件开发包,提供了从创建程序,到编译、调试、运行、测试等多种开发过程中需要等工具。学习iOS开发可以去看苹果官方文档,这是最权威的ios教程还有就是使用C#和javascript语言也可以开发原生的android、ios、windows的app主要平台是微软收购的Xamarin,FaceBook的ReactNative,阿里新发布的weex,杯子科技的Deviceone平台。相对来说Deviceone平台更成熟,其它几个平台的开发者还是必须掌握android和ios技能,只不过是用C#和JavaScript语言来开发原生应用而已,而且也不能真正做到一次开发,多平台发布。
HybridApp:混合开发中就是原生android和ios搭配web开发,原生可以选择上面推荐的语言和平台,网页语言html5CSS3,JavaScript。在这里我们并不推荐使用h5来实现整个App的框架和页面的逻辑跳转,会影响体验,只推荐业务页面的展示。
对企业来说,可以根据自己的需求选择不同的开发类型和开发工具。