可以使用哪些编程语言来开发iPhone、iPod Touch和iPad(iOS)应用程序?

83

哪些编程语言可以用于开发iPhone、iPod Touch和iPad(iOS)应用程序?

此外,在未来是否有计划扩大iOS支持的编程语言数量?

10个回答

46

苹果已解除了非Objective C/C/C++应用的限制,但您不能加载不在应用程序包中的代码。

MonoTouch允许您使用.NET语言-C#直接支持,但如果您拥有Windows,则可以使用任何.NET语言制作程序集并使用它。

有传言称苹果将直接支持其他语言-我一直听说是Ruby,但这只是谣言。

我认为Lua正在许多应用程序的游戏逻辑中使用。

编辑(2018年):通常情况下,您可以使用任何能够编译为iOS或甚至安装语言解释器的语言。主要的限制是不能从互联网上加载不在应用程序包中的代码。

尽管人们经常这样做(例如React Native应用程序从服务器加载JavaScript),但从技术上讲,这是不允许的。如果您创建某种类似应用商店的东西,苹果可能会注意到。

编辑(2020年):来自@Pylot评论中的信息:虽然这是很久以前的事情,但现在至少从技术上讲,您可以使用Webview使用JavaScript加载嵌入于应用中的代码。我并不是说你的答案是错的或者什么的,我完全同意你的看法。但我在寻找一些东西时发现了这篇文章。如果有人看到这篇文章,那么这可能会对他们有所帮助。


3
Objective-C++是ObjC和C++之间的桥梁,所以没问题。 - Lou Franco
RubyMotion让你可以使用Ruby构建本地iOS应用程序。但它并不是免费的。 - Uygar Y
1
我尝试了在我的应用程序中使用Lua进行逻辑处理,并且还使用了luasqlite(企业解决方案,因此不会涉及到商店拒绝的问题,无论是否可能发生),我可以证明它非常出色。请记住,Lua具有非常非常低的内存占用,因此您实际上可以同时运行数十个解释器而不会消耗超过1MB的内存(这正是我所做的...)。另请参见gran.pancho.villa关于Swift的回答。 - Rick77
1
我知道这是很久以前的事情了,但现在至少从技术上讲,你可以加载不嵌入应用程序的代码,因为你可以使用webview编写JavaScript代码。并不是说你的答案是错误的或者什么的,我绝对同意你的观点。但我正在寻找一些东西,在路上发现了这篇文章。如果有人看到它,可能会对他们有所帮助。 - Pylot
@pylot -- 我已将您的评论添加到答案中 -- 谢谢 - Lou Franco
除了 Web 视图之外,您还可以使用 JavaScriptCore。 - Lou Franco

17
SDK协议和App Store指南已经更改(大约在2010年9月)。您现在可以使用任何编译成与Xcode生成的静态ARM对象文件格式相同且仅链接到Apple框架和库中公共API的编译语言。但是,除非您在提交给苹果审核之前预编译所有对象代码,否则不能使用JIT编译的语言。
您可以使用任何解释性语言,只要嵌入解释器,并确保解释器或应用程序不会下载和运行除在提交给苹果审核之前构建到应用程序包中或由用户输入的源代码以外的任何可解释代码。
对于需要高性能和最新API支持的任何内容,Objective C和C仍然可能是最优化的编程语言(*请参见下面的更新),因为这些是苹果针对其iOS框架和调整其ARM处理器芯片组的语言。 Apple还支持在UIWebView中使用Javascript / HTML5。 这些是苹果宣布支持的唯一语言。 其他任何内容都必须在其他地方找到支持。
但是,如果您真的想要,现在iOS App store中至少有六种基础解释器可用,因此甚至“石器时代”的编程方法现在也被允许。
添加:(*)截至2014年末,可以使用苹果的新Swift编程语言开发应用程序。截至2015年初,提交的二进制文件必须包括64位(arm64)支持。

11

苹果计划逐渐淘汰长期使用的Objective-C,引入一种名为Swift的新编程语言,用于设计运行于苹果iOS设备和苹果Macintosh计算机上的应用程序。

苹果公司表示:Swift是一种新的编程语言,用于iOS和OS X应用程序,它结合了C和Objective-C的优点,但没有C兼容性的限制。Swift采用安全的编程模式,并添加了现代特性,使编程更加简单、灵活和有趣。Swift的干净状态,得到了成熟和广受喜爱的Cocoa和Cocoa Touch框架的支持,是重新想象软件开发工作方式的机会。

介绍Swift

输入图像描述


6
什么编程语言可以用于开发iPhone、iPod Touch和iPad(iOS)应用程序? Ruby,Python,Lua,Scheme,Lisp,Smalltalk,C#,Haskell,ActionScript,JavaScript,Objective-C,C++,C。这只是我现在想到的那些,我敢肯定还有成百上千种其他编程语言。(例如,您可以使用任何.NET语言与MonoTouch一起使用,例如VB.NET,F#,Nemerle,Boo,Cobra等)
此外,未来是否有计划扩展iOs支持的编程语言数量? 当然。几乎每个编程语言社区都正在努力使其语言运行在iOS上。
此外,许多人正在开发专门为iPod touch、iPhone和iPad等触摸设备设计的编程语言,例如Phil Mercurio的Thyrd语言。

4
Ruby、Python和ActionScript目前还不能在iOS上运行。过去有尝试让CL和Scheme运行,但我认为这些尝试已经过时了。Haskell也是同样的情况。JavaScriptCore现在是一个私有框架;你可以在webview中使用JS编写Objective-C脚本,但那真的很笨重。 - Jonathan Sterling
4
@Jonathan Sterling:你应该告诉那些已经通过应用商店出售 Ruby 应用程序一年以上的开发者们。我相信他们会非常有兴趣知道他们的应用不存在。 - Jörg W Mittag
4
Rhomobile不算数,它们不是真正的本地应用程序,只是被困在Web视图中。 - Jonathan Sterling
@Jonathan Sterling:我可能有点晚来到这个聚会,但是通过AIR for iOS,Actionscript在iOS上得到了支持。(并且在原始评论Oct-10时也是如此)。它甚至获得了相当不错的性能... - Marty Pitt

5

iOS(和Mac OS)的编程语言是Objective-C和C。您必须使用Xcode平台来开发iOS应用程序,在现在可用的beta版本的下一个版本中,Xcode 4还支持C++。


你不需要使用Xcode来开发iOS应用程序,也不需要使用Objective C或C++。例如,你可以使用RubyMotion,它利用命令行工具进行开发。此外,还有许多第三方开发解决方案可用于开发可在iOS和Android上运行的应用程序。 - Martin Lockett

4

现在可以使用OCaml开发iOS应用程序。这不是标准发布的一部分,需要由Psellos公司提供的修改。有关更多信息,请参见此处:http://psellos.com/ocaml/


2
目前只允许使用Objective-C语言,但是几个月前开始允许编写在应用程序中解释的脚本。因此,您可以编写LUA解释器或Python解释器,然后使用这些脚本语言编写应用程序的某些部分。如果您希望您的应用程序被App Store接受,这些脚本必须与应用程序捆绑在一起(例如,您的应用程序不能从互联网上下载它)。
请参见新的App Store规则

2

这可能是一个旧的帖子,但我想提一下Appcelerator Titanium,它允许任何熟悉HTML5/JavaScript/CSS的人开发iOS应用程序。


如果我没记错的话,当使用Titanium时,您可以用Ruby或Python替换JavaScript。 - Torbjørn

1

Objective-C是主要使用的语言。

我相信有一个可以与C#一起使用的Mono Touch框架

Adobe也正在开发一些工具,其中之一是iPhone Packager,可以利用ActionScript代码。


链接似乎已经失效了? - Zameer Ansari

1
你可以使用“smart BASIC”编程语言。它是一种真正的但非常先进的BASIC语言,具有其所有的强大和简洁性。使用其免费的SDK,BASIC代码可以轻松地发布为独立的应用商店应用程序。App Store中有许多使用“smart BASIC”编程语言编写的应用程序。

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