我能在Vala中编写iPhone应用程序吗?

12

我正在使用ooc语言(一种编译成C的新语言)和OpenGL编写iPhone游戏。进展非常顺利,我非常喜欢ooc语言。现在我刚刚发现了Vala,并不是很清楚它依赖于GLib和GObject意味着什么。我已经在另一个问题中读到Vala依赖于GTK,但我不认为它是这样。

问题是:我用ooc做的事情,我能用Vala做同样的事情吗? 我能够用Vala在iPhone上编写OpenGL游戏吗? Vala代码是否可以从C中调用?

谢谢。


你是如何为iPhone编写代码的?我读过的所有关于尝试使用其他语言或在Windows或Linux上编码的帖子都得出了同样的结论 - 唯一可行的组合是在Mac上使用Objective C、Apple API和XCode。 - drekka
你也可以使用C或C++编码。由于API是从Objective C访问的,因此您需要在C中包装所有对苹果API的调用。由于我的游戏基于OpenGL,所以我只需要包装上下文创建的调用,而不需要太多其他的操作。其余部分可以使用C完成。Ooc和Vala编译成C。我正在使用Mac。 - Damian
你需要注意的一件事是,要避免使用针对桌面OpenGL的任何模块,因为它们在那里所做的许多事情无法移植到OpenGL ES。如果你想让它在iPhone上工作,你需要编写使用该API的代码。 - Brad Larson
2个回答

5

Vala的面向对象编程是使用GObject库实现的,该库是GLib的一部分。可以在不使用对象的情况下使用Vala,因此不需要GLib,但这没有什么意义。

无论如何,要从Vala访问C库,必须有人为该库编写了VAPI绑定(请参见Google)。可能没有Apple API的VAPI绑定,因此您必须自己编写 - 如果这甚至被Apple许可协议允许的话。


2
GLib能否编译为iPhone可用的版本? - Damian
@Damian,我不知道。我对Vala的了解比iOS更多。无论如何,它都没有得到官方支持。 - ptomato
在苹果公司,据我所知,如果应用程序没有得到官方支持,那么很可能无法通过认证。 - uSeRnAmEhAhAhAhAhA
Vala只是将代码“转换”为C语言,所以与Apple没有任何问题!问题在于GLib通常会动态链接,而这在iOS上是被禁止的。Vala需要一个不包含GLib的分支。 - k3a

1
在这个仓库中,你可以找到iOS的旧版本Vala编译器和libgee:cydia.radare.org(valac版本是0.15,非常古老)。更新:已添加valac 0.34.4,相对较新。

可以为iOS编译GLib,因此编译Vala代码不应该是一个问题。真正的困难在于绑定,正如先前提到的,我怀疑是否有人已经为iOS准备好了VAPIs。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接