2010-08-26 127 views
1

不同的移动平台可以使用类似语言的事实意味着您可以在这些平台之间重用类吗?例如iOS,Android和Symbian设备上的C++代码。还是还有其他一些事情需要考虑,图书馆等?移动跨平台类

本着同样的精神,使用MonoTouchMonoDroid(最终)可以在iOS,Android和Windows Phone之间共享C#代码吗?

编辑:是否有可能在MonoTouch,MonoDroid之间共享UI代码?

回答

1

不,这些语言绝对不同。为了能够重用类,他们必须用相同的语言编写。而且自从苹果公司从iOS推出Objective-C以外的所有语言后,您将无法重用代码。苹果公司之后MonoTouch的状态(令人愤慨[主观])决定[1]现在非常疑惑。

然而,在典型的独裁时尚[主观再次],苹果还没有完全一致的,所以他们并没有禁止使用的技术,如PhoneGap的(http://phonegap.com)或钛(http://www.appcelerator.com/)。在那里你写你的应用程序在HTML5,Javascript &朋友。如果您可以使用这些技术来编写应用程序,那么仅使用一个代码库的跨平台方法仍然是可能的。

当然,请记住,算法不是语言特定的。不同语言的课程通常可以在功能上几乎完全相同,尽管您有不得不维护其中几个课程的缺点。

编辑:

澄清从讨论:

  • 存在一种使用C++类实际上支持[2]。这为代码分享应用程序的更多抽象部分提供了可能性。
  • MonoDroid的状态似乎非常不清楚。 [1]中提到的讨论很长,并有几个强有力的答案指向两个方向。重要的是要记住,无论史蒂夫乔布斯怎么说[3],苹果在其新授权条款中的事实目标都是Flash,而不是跨平台的框架。这使得苹果可能希望默默允许基于MonoDroid或其他跨平台框架的应用程序。

[1]和往常一样,这是不是100%清楚的,例如参见这个问题:Is MonoTouch now banned on the iPhone?

[2] http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocCPlusPlus.html#//apple_ref/doc/uid/TP30001163-CH10-SW1

[3] http://www.apple.com/hotnews/thoughts-on-flash/?aosid=p204&siteid=1503186&program_id=2554&cid=OAS-EMEA-AFF&tduid=fb90c7ac85c9a334decb42b892cda59b

+0

离谱的是一个非常好的描述 - 当然一些变化几乎是主观的。 – Murph 2010-08-26 08:05:26

+0

但他们可以写在相同的语言[例如C++](http://stackoverflow.com/questions/270455/is-it-possible-to-program-iphone-in-c“测试”)或我是遗漏了什么 ?另外,关于单声道,它似乎是[仍然接受这些应用程序](http://stackoverflow.com/questions/2604033/is-monotouch-now-banned-on-the-iphone/2714999#2714999“测试”) 。但我同意,依靠它将保持那样的事实是危险的。 – Jla 2010-08-26 08:22:00

+0

关于HTML5,我担心你的本地应用程序的可能性会减少很多。但我想我能在不同平台上重用(或不重新)的代码会有相同的限制。 – Jla 2010-08-26 08:24:46