2010-08-26 5 views
1

Означает ли тот факт, что разные мобильные платформы могут использовать похожие языки, означает, что вы можете повторно использовать классы между этими платформами? Например, код C++ на устройствах iOS, Android и Symbian. Или есть какие-то другие вещи, которые нужно учитывать, библиотеки и т. Д.?Перекрестные классы для мобильных устройств

В этом же духе можно будет использовать код C# между iOS, Android и Windows Phone, используя MonoTouch и MonoDroid (в конце концов)?

Редактировать: Можно ли использовать код пользовательского интерфейса между MonoTouch, MonoDroid?

ответ

1

Нет, языки определенно отличаются друг от друга. Чтобы иметь возможность повторно использовать классы, они должны быть написаны на одном языке. И поскольку Apple выкидывает все языки, кроме Objective-C, из iOS, вы не сможете повторно использовать код. Состояние MonoTouch после Apple (возмутительное [субъективное]) решение [1] сейчас очень сомнительно.

Однако в типичной диктатуре моды [субъективны снова], Apple не были полностью совпадают, так что они не запретили использование технологий, как PhoneGap (http://phonegap.com) или титана (http://www.appcelerator.com/). Там вы пишете свое приложение в HTML5, Javascript & друзей. Если вы можете жить с написанием приложений с использованием этих методов, кросс-платформенный подход с использованием только одной кодовой базы по-прежнему возможен.

И, конечно, помните, что алгоритмы не являются специфичными для языка. Классы в разных языках часто могут быть почти идентичны по функциям, хотя у вас будет недостаток в том, чтобы поддерживать несколько из них.

Edit:

Разъяснения от обсуждения:

  • Там на самом деле поддержка использования C++ классов [2]. Это открывает возможности совместного использования кода более абстрактными частями приложения.
  • Состояние MonoDroid кажется очень неясным. Обсуждение, упомянутое в [1], длинное и имеет несколько сильных ответов, указывающих в обоих направлениях. Важно помнить, что фактическая цель Apple в новых положениях о лицензировании - это Flash, а не межплатформенные рамки сами по себе, независимо от того, что говорит Стив Джобс [3]. Это оставляет открытой возможность того, что Apple может захотеть тихо разрешить приложения на основе 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

+0

Но они могут быть написаны на одном языке [C++ например] (http://stackoverflow.com/questions/270455/is-it-possible-to-program-iphone-in-c "test"), или я что-то не хватает? Кроме того, о моно, кажется, что они [все еще принимают эти приложения] (http://stackoverflow.com/questions/2604033/is-monotouch-now-banned-on-the-iphone/2714999#2714999 «тест») , Но я согласен, что было бы опасно полагаться на то, что так будет. – Jla

+0

О HTML5, я был обеспокоен тем, что у вас будет гораздо меньше возможностей, чем с родным приложением. Но я предполагаю, что код, который я мог бы повторно использовать (или нет) на разных платформах, в любом случае имел бы те же ограничения. – Jla

Смежные вопросы