2009-10-01 2 views

ответ

1

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

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

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

Есть некоторые минусы используя C#, хотя

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

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

EDIT

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

Единственная причина, по которой я рекомендовал это решение, заключался в том, что OP сказал «самый простой способ ...». Изучение нового языка требует дополнительного времени и потребует немного больше усилий, поэтому я квалифицировал его как легче придерживаться C#.

+2

Но с другой стороны ... его всегда интересно изучать новые вещи! Но поскольку вопрос просил «легко», вы правы. MonoTouch, скорее всего, способ пойти, хотя и более дорогой ценой в $ 400 и, вероятно, будет меньше поддержки сообщества с проблемами. –

+0

Достаточно привыкнуть. Я использовал C, C++, Java и C#, но у меня возникли проблемы с обдумыванием некоторых концепций (и все равно было бы неудобно в нем). Хотя у меня было больше проблем с XCode и некоторыми дизайнерскими причудами, чем сам язык. –

+0

Я изучил много языков в своей профессиональной жизни. Я не боюсь нового синтаксиса. Есть ли новая парадигма за объектив-c? Или это обычный объектно-ориентированный язык? – Nestor

9

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

+0

Интересно, что Apple должна сказать о MonoTouch. Знать о возможных проблемах в будущем? –

+1

MonoTouch в порядке, потому что он не использует интерпретатор, как некоторые другие языки на iPhone. Он скомпилирован в собственный код Objective-C, поэтому, в конце концов, они неразличимы. Тем не менее, вы находитесь во власти поддержки Novell от MonoTouch вместо прямой поддержки Apple. –

+0

Полезно знать. Благодаря! –

3

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

Существует, однако, Mono-Touch, который для небольшая цена позволяет разрабатывать приложения для iPhone с помощью C#, но в настоящее время отсутствует поддержка отладки. Существуют также ограничения на некоторые виды использования дженериков и других высокопроизводительных функций. Here's a link to the limitations.

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

+0

Понял. Существует ли IDE для разработки в Objective C для Windows? (что-то похожее на Visual Studio) – Nestor

+0

Apple делает XCode свободно доступным - но он работает только на Mac. – LBushkin

+0

я смотрю .. спасибо. – Nestor

24

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

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

+0

Ваши рассуждения имеют для меня прекрасный смысл. Спасибо – Nestor

+0

И добавить оскорбление к травме; MonoTouch даже не имеет надлежащей поддержки отладки. Поэтому вам нужно будет изучить все эти новые вещи, используя только лог-отпечатки, которые помогут вам. С каких пор новичок потратил больше времени на создание нового кода, чем на отладку? – PeyloW

7

Теперь Monotouch вам легче. Но тяжелее позже.

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

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

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

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

0

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

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

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