Какой самый простой способ для программиста на c # разработать для i-Phone? - PullRequest
7 голосов
/ 01 октября 2009

Должен ли я использовать Mono + c #? Или мне лучше учиться и использовать цель с? Спасибо

Ответы [ 7 ]

24 голосов
/ 01 октября 2009

Возможно, это кого-то обидит, но, честно говоря, если вы собираетесь заниматься серьезным развитием, вам следует изучить Objective-C. Незнание Objective-C в разработке для iPhone будет просто помехой. Вы не сможете понять много примеров; вам приходится иметь дело с особенностями Mono, тогда как, если вы обладаете практическими знаниями Objective-C, вы можете получить гораздо больше из документации по платформе.

Лично я не понимаю позицию, которая говорит об увеличении объема необходимой вам информации в пользу использования Mono над родным языком платформы. Это кажется несколько контрпродуктивным для меня. Я думаю, что если это очень дорогое предложение (изучение нового языка), то, возможно, стоит потратить некоторое время на фундаментальные концепции программирования, чтобы изучение новых языков было довольно дешевым предложением.

9 голосов
/ 01 октября 2009

Посмотрите на MonoTouch.

7 голосов
/ 02 октября 2009

Monotouch теперь проще для вас. Но сложнее позже.

Например, что происходит, когда появляются новые семена, с которыми вам нужно протестировать, но по какой-то причине нарушить MonoTouch?

Придерживаясь Mono, каждый раз, когда вы ищете ресурсы для фреймворков, вы должны мысленно переводить то, как вы собираетесь использовать их с Mono. Двоичные файлы вашего приложения будут больше, время разработки не станет намного быстрее после нескольких месяцев использования Objective-C, и другие разработчики приложений получат гораздо больше преимуществ перед вами, потому что они используют собственную платформу.

Другое соображение заключается в том, что вы хотите использовать C #, потому что вы более знакомы с языком, чем Objective-C. Но подавляющая часть кривой обучения для iPhone - это не Objective-C, а фреймворки, которые вам также придется использовать в C #.

Для любой платформы вы должны использовать платформу, которая непосредственно выражает философию дизайна этой платформы - на iPhone, то есть Objective-C. Подумайте об этом с другой стороны: если бы разработчик Linux, привыкший к программированию на GTK, хотел писать приложения для Windows, вы бы серьезно рекомендовали им не использовать C # и придерживаться GTK, потому что им было «легче» это делать?

3 голосов
/ 01 октября 2009

Если вы хотите иметь возможность использовать все API-интерфейсы iPhone и иметь доступ к отладке собственного кода, вы, вероятно, захотите изучить Цель C.

Однако существует Mono-Touch , который за небольшую цену позволяет разрабатывать приложения для iPhone с использованием C #, но в настоящее время не имеет поддержки отладки. Существуют также ограничения на определенные виды использования обобщений и других высококачественных функций. Вот ссылка на ограничения .

Кроме того, для использования Mono-Touch вам по-прежнему требуется Xcode и среда Mac, настроенные для разработки под iPhone. И само собой разумеется, что вам нужно присоединиться к программе для разработчиков Apple iPhone, если вы действительно хотите развернуть что-либо на реальном устройстве.

1 голос
/ 01 октября 2009

Это будет немного вопрос мнений, но я считаю, что вам лучше придерживаться C #. Переключение на цель-C увеличивает объем новой информации, которую вы должны изучить, прежде чем вы сможете продуктивно работать в своей среде.

Даже в соответствии с C # вам все равно придется ...

  • Изучите iPhone API
  • Изучите особенности разработки с помощью самого iPhone

Есть некоторые недостатки использования C #, хотя

  • Большинство образцов iPhone будут в Objective-C. Поскольку вы не знаете язык, будет сложнее применить их к вашей задаче
  • При использовании статической компиляции в Mono обязательно должны быть небольшие причуды, к которым вам нужно привыкнуть.

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

EDIT

Я хотел уточнить свои мысли по поводу изучения нового языка. Я думаю, что изучение языков это весело и необходимая часть жизни программистов. Вы должны по крайней мере экспериментировать с новым языком один раз в год. В этом году я играю с F #.

Единственная причина, по которой я отреагировал на этот вопрос, была в том, что ФП сказал "самый простой способ ..." Изучение нового языка требует дополнительного времени и потребует немного больше усилий, поэтому я решил, что проще придерживаться C #.

0 голосов
/ 04 октября 2009

Я нашел это интересным Подкаст

0 голосов
/ 02 октября 2009

MonoTouch Я думаю, что это путь, но имейте в виду, что он все еще находится в зачаточном состоянии. Я смог установить инструменты разработки Mono и заставить работать MonoDevelop IDE, но IDE в ее текущем состоянии невероятно медленна и почти непригодна для использования; по крайней мере, работает на Snow Leopard для Mac OSX. Я немного погуглил, и похоже, что это известная проблема, но она исправлена ​​в самых современных репозиториях MonoDevelop. Я думаю, что Novell что-то замышляет, но я также чувствую, что вы будете бороться со всем фреймворком, пока он еще находится на ранних стадиях.

Таким образом, если вы хотите пойти по маршруту C # / MonoTouch, будьте готовы приложить немало усилий и преследовать призраков из-за нестабильности или неполноты структуры. Я думаю, что это верно для любой новой структуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...