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

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

Существует ли другое от программы для приложения для iPhone с помощью C# или Objective C?

Там ограничение использует C# для программирования приложения для iPhone, или это может сделать столько, сколько Objective C может сделать для разработки приложения для iPhone?

11
задан Eyla 23 April 2010 в 05:59
поделиться

4 ответа

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

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

12
ответ дан 3 December 2019 в 02:52
поделиться

Вот ответ разработчика Monotouch, а не предположения людей, просматривающих блоги.

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

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

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

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

Monotouch - это прямое отображение на Cocoa и UIKit . Для использования компилятора и IDE необходим Mac. Насколько мне известно, у Flash таких ограничений не было, и его пользовательский интерфейс был намного менее строгим с точки зрения принудительного использования общего набора «виджетов», такого как UINavigationController, UITabViewController, UIAlertView и так далее.

10
ответ дан 3 December 2019 в 02:52
поделиться

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

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

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

6
ответ дан 3 December 2019 в 02:52
поделиться

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

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

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

Из форумов monotouch

2
ответ дан 3 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: