如何制作一个简单的 iOS app?

如何制作一个简单的 iOS app?,第1张

如何制作一个简单的 iOS app?

如今,不少企业都想拥有属于自己企业或产品的手机APP,但其中最困扰企业主的问题就是:开发一款手机APP到底需要多少钱?

简单点来说,要视手机APP的需求及质量而言,价位一般在几千到十几万左右,更高端的价格更高。

今天,我们就来详细分析一码颂下这个问题,请继续往下看吧。 

一、APP开发款式分为固定款和定制款,两者的价格均不相同

固定款:是指直接套用已有的、现成的APP固定模板,报价是固定的,所需要的功能也是固定的,缺点就是客户拿不到源代码,也不能根据企业需求进行定制,由于源代码是封装的,如果企业以后想进行功能升级或系统维护的话,也不能够实现,只能重新开发一个新的软件。

固定款的APP开发时间短,约2~3日的时间即可完成,费用大约在几千到几万之间。

定制款:定制款是指APP的功能全部重新开发,过程比较繁琐,需要美工、策划吵拦、APP开发(前台/客户端/手机端)、后台程序员等工种协同完成,大型的、功能复杂的APP甚至需要数十人的团队。

由于APP的功能和设计都是定制的,因此价格会高些。定制款的开发时间与开发价格是成正比的,开发时间长,大约在两三个月甚至不定的周期里才能完成,而费用大概在几万甚至十几万左右。

因此,想要知道开发一款手机APP需要花费多少钱,企业主首先必须把APP的详细需求和功能告知APP开发公司,开发公司才能报出一个合理的价格。

二、手机APP平台不同,制作成本也不一样

现在市面上流行的手机APP制作平台主要有两种一般包括两种系统:安卓系统(Android)和苹果系统(IOS)。

一般来说,制作苹果系统迟碰郑的手机APP软件费用要比安卓平台的贵一些,因为苹果公司对苹果平台的封闭性和手机APP开发语言Objective-C的难度,都让APP开发者加大了苹果系统手机APP开发的难度。

三、APP制作成本包含参与人员的工资

通常情况下,开发一款APP需要产品经理、客户端工程师、后端工程师和UI设计师各一名,这已经是制作手机APP应用软件比较精简的配置了,所以这些参与人员的工资也是包含在APP制作成本当中的。这些工作人员的月薪加起来可能都会超过4、5万元。

四、APP开发公司的所在地

需要注意的是,同样实力的APP开发公司,在不同的城市也会导致APP的成本费用高一些

目前的手机系统主要是iOS和Android。

其中iOS使用C、C++、Objective-C和Swift混神稿编,Android使用Java和Kotlin混编。

那么,你要问的肯定是iOS应用了。

iOS的话,首先要有Mac *** 作系统。即使是H5打包iOSApp也是要有Mac *** 作系统的。所以有型之中,iOS开发的前期成本也要高一些。

再说说iOS开发本身,这是不能直接使用C和C++进行游者孝开发的,要使用Objective-C语言和苹果自家Swift语言进行开发,C语言在这里只能起到辅助作用。

可能你也会问,老式功能机。嫌碰那种功能机搭载的系统叫做“嵌入式系统”,这个也是JavaSE所擅长的。

C语言,可以写出Android *** 作系统。但很难拿C语言去些那些手机 *** 作系统的程序。Windows *** 作系统下的.exe文件倒是可以使用C语言来生成,可惜这不是你想了解的、这是PC软件,不是手机软件。

内容:How to start an empty GLKit application for iOS 5

本教程穗纯是2D游戏引擎教程的序,但对于任何一个刚步入iOS世界,想用Xcode4开发GLKit相关应用的人,本教伏孝程都有抛针引线的作用。其中大部份内容都是摘取自我的另一篇教程“学习iOS5中GLKit关于OpenGL的基本用法”,那篇教程绘制了一个3D立方体,很值得一读。

用XCode创缺族稿建一个新的iOS应用,模版选择“Empty Application”。取个工程名(我将要编写一个游戏引擎,所以我命名为"ExampleEngine"),保持默认选择(如果是编写一个库,那在类前最好有个前缀,我用的是“EE”),保存。

接着我们添加OpenGL与GLKit相关frameworks。点击左上角的工程,然后选中TARGETS下你的target,再选中Build Phases栏,在“Link Binary With Libraries”中加入GLKit, OpenGLES,QuartzCore这三个framework。完成后,你将会在工程中看到你加入的framework,当然你也可以用拖的方式将其拖入Frameworks分组下。

确保你选择的是模拟器(如果你有开发者帐号,你可以用合法的provisioning profile来真机调试,于是你可以选择device),按⌘B 确保可以正确编译。

在AppDelegate头文件里引入GLKit头文件,这样就可以调用GLKit中的方法。

01.// AppDelegate.h

02.#import <UIKit/UIKit.h>

03.#import <GLKit/GLKit.h>

04....

GLKit了类化了UIView与UIViewController,利用它们将方便我们把OpenGL场景集成到我们的应用中。两个类都是用代理(苹果Objective-C库中一种非常通用的设计模式)的计设模式嵌入到我们的应用代码中。我们要用AppDelegate作为GLKit的代理,因此得告诉编译器AppDelegate会实现代理协议。

01.// AppDelegate.h

02....

03.@interface AppDelegate : UIResponder <UIApplicationDelegate,

04. GLKViewDelegate, GLKViewControllerDelegate>

05....

现在来创建场景。将application:didFinishLaunchingWithOptions:这个方法用下面代码替换:

01.- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

02.{

03. EAGLContext *context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2]

04. [EAGLContext setCurrentContext:context]

05.

06. GLKView *view = [[GLKView alloc] initWithFrame:[[UIScreen mainScreen] bounds] context:context]

07. view.delegate = self

08.

09. GLKViewController *controller = [[GLKViewController alloc] init]

10. controller.delegate = self

11. controller.view = view

12.

13. self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]

14. self.window.rootViewController = controller

15. [self.window makeKeyAndVisible]

16.

17. return YES

18.}

■第3,4行创建OpenGL绘制时需要的上下文。

■第6,7行设置绘制场景的view。第6行,由OpenGL上下文创建屏幕大小的view。第7行指明view的代理为AppDelegate。这样绘制每一帧的时候就会调用glkview:drawInRect:这个方法。

■第9-11行,创建GLKViewController,并指明其代理类与view。代理方法中我们主要关心 glkViewControllerUpdate:

■第13-15行,将我们的controller与"window"关联,以便显示。

■第17行通知OS我们的应用已启动完成。

现在代理方没还没实现所以有警告提示,但是也可以运行。运行后,你会看到纯色的背景,看一看吧!

现在我们把这些警告去掉交改背景为灰色。在theapplication:didFinishLaunchingWithOptions:方法下面实现如下代理方法:

01.- (void)glkViewControllerUpdate:(GLKViewController *)controller {

02.// NSLog(@"in glkViewControllerUpdate")

03.}

04.

05.- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect {

06.// NSLog(@"in glkView:drawInRect:")

07. glClearColor(0.5, 0.5, 0.5, 0.5)

08. glClear(GL_COLOR_BUFFER_BIT)

09.}

现在再运行,你会看到灰色背景,由gl开头的API实现的。在OpenGL与GLKit中,颜色由四个分量组成,分别是红,绿,蓝与alpha(透明度),每一个分量取值范围是[0,1]。

如果你打开上面代码中的NSLog注释,你会在控制台看到如下打印。

这儿有两个方法,因为GLKit基于state与presentation的(类似于MVC的设计模式或HTML/CSS分开发设计)。State(动画,物理模拟,游戏逻辑)应在glkViewControllerUpdate:这回调中,而glkView:drawInRect应用来绘制场景的。

申明:本系列教程原稿来自网络,翻译目的仅供学习与参看,请匆用于商业目的,如果产生商业等纠纷均与翻译人、该译稿发表人无关。转载务必保留此申明。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12510733.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存