2010-08-26 197 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