MonoTouch & С# VS Objective C для приложения iphone

Приветствие, Я парень программиста на С#. Я планирую начать разработку приложения для iphone, но я не уверен, должен ли я использовать С# в MonoTouch или просто использовать родной язык для iphone OS Objective C.

Есть ли другая программа для iphone-приложения с использованием С# или Objective C?

Есть ли ограничение с использованием С# для программирования приложения для iphone или он может сделать столько, сколько Objective C может сделать для разработки приложения iphone?

Ответ 1

MonoTouch обертывает большинство, но не весь iPhone SDK. Итак, да, есть вещи, которые вы не можете сделать (пока), но они относительно немногочисленны и далеко друг от друга.

Многие .Net люди находят, что они более продуктивны (по крайней мере изначально) с использованием MonoTouch, поскольку они могут использовать свои существующие навыки. С другой стороны, нет ничего похожего на работу на родном языке, это займет немного больше времени. Вам нужно будет изучить некоторые Objective-C, так как большинство документации в мире использует его (и/или C-level CoreFoundation API). Objective-C динамическая природа сначала почувствует иностранную внешность, но вы можете обнаружить, что она полностью освобождается, когда вы полностью ее ощущаете. Используя многие языки в своей карьере, я нахожу Objective-C (и Cocoa API) один из самых приятных событий в развитии.

Ответ 2

Здесь ответ разработчика Monotouch, а не какая-то угадайте работу от людей, читающих блоги.

Вы купили лицензию Monotouch? Если нет, то предпочтительным будет objective-C. Если вы приобрели лицензию, имеет смысл разработать приложение в Monotouch, потому что:

  • Домен и бизнес-логику можно легко портировать для приложения Windows Mobile 7 в конце этого года.
  • То же самое касается и Monodroid, который скоро появится, и API можно легко портировать на Java.
  • Контроллеры, представления и вся системная панель Monotouch static void main могут быть легко преобразованы в objective-C. Все имена идентичны, но в случае Pascal.

Что касается приложений, то до сих пор Apple разрешала приложениям Monotouch. Я не говорю, что они вдруг не скажут "НЕТ! ДЕЛАТЬ ИСПОЛЬЗОВАТЬ OBJECTIVE-C", но для них запретить SO iPhone-клиент на сайте высокого профиля, например Stackoverflow, будет плохой PR.

Apple использует приложения в своих демонстрационных версиях, которые нарушают собственный SDK (Tap Tap Revolution - один), а 1 из 10 самых продаваемых игр appstore используют часть здоровья, не содержащую ни одного objective-C.

Monotouch является прямым отображением на Cocoa и UIKit. Вам нужно иметь mac для использования компилятора и IDE. Насколько я знаю, Flash не имеет таких ограничений, и его пользовательский интерфейс был намного менее строгим с точки зрения форсирования общего "виджета", такого как UINavigationController, UITabViewController, UIAlertView и т.д.

Ответ 3

Вот мой пример: если вы никогда не видели код Obj-C в своей жизни, потребуется немного времени, чтобы привыкнуть к нему. Объедините его вместе с тем фактом, что SDK совершенно другой, и вам нужно будет изучить каждый новый метод, и вам, вероятно, потребуется, по крайней мере, пару месяцев, чтобы вы стали средним разработчиком obj-c, если вы учитесь тяжело.

Вместо этого используйте MonoTouch и изучите весь SDK с помощью С#. Через пару недель вы будете чувствовать себя как дома со всеми классами, Interface Builder и т.д. Вы сможете разрабатывать приложение так же, как и с Obj-C, но на С#. Демо-версия позволяет бесплатно использовать все.

Затем вы решаете, что делать. В зависимости от того, как идет речь об Apple, вы можете просто продолжить использование MonoTouch, или вы можете решить изучить Obj-C и в основном использовать все знания, которые вы уже получили о SDK, что значительно облегчит переход.

Ответ 4

Есть некоторые дебаты о том, разрешит ли Apple это. На первый взгляд это выглядит не так:

В новой версии iPhone Лицензионное соглашение программы разработчика выпущенный Apple сегодня (и разработчики должны согласиться загрузка бета-версии 4.0 SDK), раздел 3.3.1 теперь читает:

3.3.1 - Приложения могут использовать Documented API только таким образом предписанные Apple и не должны использовать или вызывать любые частные API. Приложения должны быть изначально записаны в Objective-C, C, С++ или JavaScript как выполненный iPhone OS WebKit движок и только код, написанный на C, С++ и Objective-C могут компилироваться и напрямую ссылаться на документацию API (например, приложения, которые ссылаются на Документированные API через посреднический перевод или уровень совместимости или инструмент Запрещено).

Из форумы monotouch