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


84

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

将来是否还有计划扩大iOS支持的编程语言的数量?

Answers:


46

苹果取消了对非目标C / C / C ++应用程序的限制-您只能加载应用程序捆绑包中没有的代码。

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

有传言称苹果将直接支持其他语言-我一直在听红宝石,但它们只是谣言。

我认为Lua在许多应用程序上都用于游戏逻辑。

编辑(在2018年):通常,您可以使用可为iOS编译甚至安装语言解释器的任何语言。您不能做的主要事情是从Internet中加载应用程序捆绑包中没有的代码。

人们总是会一直这样做(请参阅React Native应用程序从服务器加载JavaScript),但是从技术上讲,这是不允许的。如果您制作某种可加载整个类似App之类的App Store的应用,那么它将引起Apple的注意。

编辑(在2020年):来自@Pylot的评论:我知道这是很久以前的事了,但是现在至少从技术上讲,您可以加载未嵌入应用程序中的代码,因为可以使用Webview使用JavaScript编写代码。不留下您的答案是错误的或其他任何事情,我绝对同意。但我一直在寻找东西,并在途中找到了这篇文章。想通了,如果有人看到这可能会帮助他们。


3
Objective-C ++是ObjC和C ++之间的桥梁,所以很好。
Lou Franco

RubyMotion使您可以使用Ruby构建本机iOS应用。它不是免费的。
Uygar Y

1
我也尝试使用Lua在我的应用程序中使用luasqlite进行逻辑处理(企业解决方案,因此不会涉及商店拒绝,无论它们是否会发生),并且我可以证明它运行得很好。请记住,Lua的内存占用非常低,因此您实际上可以同时运行数十个解释器,而不会占用多达Mb的内存(这是我实际上所做的...)。另请参见gran.pancho.villa关于Swift的答案。
Rick77

1
我知道这是很久以前的事,但现在至少在技术上,您可以加载未嵌入应用程序中的代码,因为可以使用Webview使用JavaScript编写代码。不留下您的答案是错误的或其他任何事情,我绝对同意。但我一直在寻找东西,并在途中找到了这篇文章。想通了,如果有人看到这可能会帮助他们。
Pylot

@pylot-我将您的评论添加到了答案中-谢谢
Lou Franco

17

SDK协议和App Store指南已更改(大约2010年9月)。

现在,您可能可以使用将编译为Xcode生成的静态ARM对象文件格式的任何编译语言,并且可以(仅)链接到Apple框架和库中的公共API。但是,除非在将所有对象代码提交给Apple进行审阅之前对其进行预编译,否则不能使用JIT编译语言。

您可以使用任何解释语言,只要您嵌入了解释器,并且不允许解释器或应用下载并运行除应用程序捆绑包中内置的代码以外的任何可解释代码,然后再提交给Apple进行审查或键入源代码-由用户输入。

对于需要高性能和最新API支持(*参见下面的更新)的任何事物,目标C和C仍然可能是最理想的编程语言,因为苹果公司针对其iOS框架并对其ARM处理器芯片组进行了调整。苹果还支持在UIWebView中使用Javascript / HTML5。这些是Apple宣布支持的唯一语言。您还必须在其他地方寻求支持。

但是,如果您真的想要,iOS App Store中现在至少有六种BASIC解释器可用,因此现在甚至允许使用“石器时代”编程方法。

补充:(*)截至2014年底,您还可以使用Apple的新Swift编程语言开发应用。从2015年初开始,提交的二进制文件必须包含64位(arm64)支持。


11

为了逐步淘汰长期使用的Objective-C,Apple引入了一种新的编程语言,称为Swift,用于设计可在Apple iOS设备和Apple Macintosh计算机上运行的应用程序。

苹果公司表示:“ Swift是一种针对iOS和OS X应用程序的新型编程语言,它基于C和Objective-C的最佳特性而开发,不受C兼容性的限制。Swift采用安全的编程模式并添加了现代功能,使编程更加容易,更加灵活,更有趣。Swift干净利落的板块在成熟且广受欢迎的Cocoa和Cocoa Touch框架的支持下,是重新构想软件开发工作方式的机会。

迅速介绍

在此处输入图片说明


6

一个人可以使用哪些编程语言来开发iPhone,iPod Touch和iPad(iOs)应用程序?

Ruby,Python,Lua,Scheme,Lisp,Smalltalk,C#,Haskell,ActionScript,JavaScript,Objective-C,C ++,C。这些现在就浮现在我的脑海。我敢肯定还有成百上千的其他人。(例如,没有理由不能在MonoTouch中使用任何.NET语言,即VB.NET,F#,Nemerle,Boo,Cobra等)。

将来是否还有计划扩大iO支持的编程语言的数量?

当然。这个星球上几乎所有的编程语言社区目前都在努力使其语言在iOS上运行。

另外,许多人正在开发专门为iPod touch,iPhone和iPad等触摸设备设计的编程语言,例如Phil Mercurio的Thyrd语言。


4
-1。Ruby,Python和ActionScript尚未在iOS上运行。过去,曾尝试过运行CL和Scheme,但我认为这些不是最新的。与Haskell达成相同协议。JavaScriptCore现在是一个私有框架。您可以在网络视图中使用JS编写Objective-C脚本,但这确实很笨拙。
乔纳森·斯特林

4
@Jonathan Sterling:您应该告诉那些已经通过App Store出售Ruby应用程序一年以上的开发人员。我敢肯定,他们将非常有兴趣了解他们的应用程序不存在。
约尔格W¯¯米塔格

4
Rhomobile不算在内。这些不是实际的本机应用程序。他们只是停留在web视图中。
乔纳森·斯特林

@乔纳森·斯特林(Jonathan Sterling):我在这里参加聚会可能有点晚了,但是通过AIR for iOS在iOS上支持Actionscript。(这是在10月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 2014年


2

这可能是一个旧线程,但是我想提到Appcelerator Titanium,它允许精通HTML5 / JavaScript / CSS的任何人开发iOS应用程序。


如果我没有记错的话,那么在使用Titanium时可以将JavaScript与Ruby或Python交换。
Torbjørn

2

现在只允许使用Objective-C ...但是从几个月前开始,您被允许编写将在您的应用程序中解释的脚本。

因此,您可以编写LUA解释器或Python解释器,然后使用此脚本语言编写应用程序的某些部分。如果您希望应用程序在App Store上被接受,则这些脚本必须与应用程序捆绑在一起(例如,您的应用程序无法从Internet下载)

查看新的应用商店规则



1

您可以使用“智能BASIC”编程语言。它是一门真正的但非常先进的BASIC语言,它具有强大的功能和简单性。使用免费的SDK,BASIC代码可以轻松地发布为独立的App Store应用程序。App Store中有许多应用程序是用“智能BASIC”编程语言编写的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.