如何开发苹果iOS *** 作平台下的应用程序?

如何开发苹果iOS *** 作平台下的应用程序?,第1张

IOS平台下的应用开发属于移动开发,大概需要以下几点:

1.首先要有开发平台,也就是开发工具,IOS平台的开发工具是苹果公司自己提供的,包括Xcode,Interface Builder,Instruments,IOS模拟器,这些都已经集成在Xcode这个开发工具里了,现在的版本出到4点多了,也就是说需要Xcode这个开发工具。

2.上面那个是开发工具,开发工具目前只提供Mac *** 作系统的版本,没有在Windows *** 作系统下的Xcode开发工具。所以,要使用Xcode这个开发工具,就要使用Mac *** 作系统,更简单的说,就是需要一台苹果电脑,考虑到苹果电脑比较贵。还有其他两个途径,(1)在自己的电脑里装苹果系统,俗称的黑苹果。(2)在虚拟机里面装苹果系统,这个主要是看电脑配置如果够好的话,装个虚拟机,再在虚拟机里装苹果系统。

3.有了Mac *** 作系统,然后在Mac *** 作系统里安装Xcode开发环境,整个IOS开发环境就搭好了。

4.再者就是编程的内容了,苹果应用程序使用的是Objective-C编程语言,正常来说,假如有某一种编程语言的基础(比如C/C++、java等),再去学Objective-C的话,学起来会比较快,学完这门语言,就可以在开发环境上编写应用程序代码了。

5.熟悉了基本的开发环境,熟悉了开发语言,然后就可以学习深入一点的东西了,比如一些开发框架什么的。

6.真机测试,在真正写出可用的程序之后,需要对应用程序进行真机测试,这时候,需要拥有IOS *** 作系统的设备,比如Iphone、Ipad、Itouch等。

用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中的方法。

// AppDelegate.h

#import <UIKit/UIKit.h>

#import <GLKit/GLKit.h>

...

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

// AppDelegate.h

...

@interface AppDelegate : UIResponder <UIApplicationDelegate,

GLKViewDelegate, GLKViewControllerDelegate>

...

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

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

{

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

[EAGLContext setCurrentContext:context]

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

view.delegate = self

GLKViewController *controller = [[GLKViewController alloc] init]

controller.delegate = self

controller.view = view

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

self.window.rootViewController = controller

[self.window makeKeyAndVisible]

return YES

}

第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:方法下面实现如下代理方法:

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

// NSLog(@"in glkViewControllerUpdate")

}

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

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

glClearColor(0.5, 0.5, 0.5, 0.5)

glClear(GL_COLOR_BUFFER_BIT)

}

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

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

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


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

原文地址:https://54852.com/yw/7858275.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存