Ответ 1
Как и любой вопрос, который-инструмент-или-платформа-или-язык-или-фрейм или любой другой, он должен действительно сходить на то, что вы хотите.
Забудьте обо всех советах, если вы хотите, чтобы разработать для этой платформы, а затем-вы-иметь-платите за свои советы. Если вы заинтересованы в изучении Objective-C, Xcode и связанных с ним битов Apple, тогда goferit. Я сделал. Это было весело, но я был заинтересован в разработке приложений для iPhone. Изучение нового языка, рамки и IDE было просто бонусом (мне нравится этот материал). Это также было необходимо, когда я начал.
Я работаю с MonoTouch, так как он был выпущен, и мне это нравится. Я предпочитаю С# до Objective-C, и мне нравится иметь доступ к подмножеству .Net(Mono), который предоставляет MonoTouch. Есть некоторые вещи, которые проще выполнять с .Net чем Cocoa (манипуляция строками, манипуляция датами, все XML и т.д.).
Мне также больше не приходится иметь дело с подсчетом ссылок. Я был испорчен годами, когда мне не приходилось отслеживать ресурсы на этом уровне. Я не против, чтобы убираться после себя, но я не хочу, чтобы вручную делать то, что каждая другая современная платформа для разработчиков, которую я использовал, делает для меня автоматически. Кроме того, даже для опытных разработчиков Objective-C подсчет ссылок не является проблемой. Прокручивайте консольный вывод OS X когда-нибудь, чтобы узнать, сколько из них произошло из-за проблем с управлением памятью (я знаю - это может случиться с любым приложением, но гораздо легче сделать ошибки, которые приводят к этой ситуации, когда вы получаете перегруженных разработчиков чьи масштабы внимания были уничтожены на двенадцать часов, если это и если это, а еще это, а другое - и бла-бла-бла).
Я все еще использую Objective-C/Xcode - я действительно научился нравиться инструментам Apple. Я честно чувствую, что они неловкие и немного тайные, но все равно веселые.
Но... тогда мне также нравится:
public string SomeString { get; set; }
Чтобы сделать то же самое с Objective-C (на iPhone, в любом случае), вы должны объявить локальную переменную для возврата свойства, записать объявление свойства и затем использовать директиву "синтезировать", чтобы получить свойство, сгенерированное для вы (в зависимости от того, какие атрибуты свойства вы указываете, у вас может быть свойство, которое обертывает геттеры и сеттеры, которые заботятся о подсчете ссылок для вас - в целом, это экономит время, но С# Way здесь является явным победителем).
Это всего лишь один пример того, как MonoTouch может облегчить вашу жизнь, особенно если вы привыкли к .Net/Java/Python/другим языкам, которые не требуют, чтобы ваши пальцы были загрязнены с помощью памяти (если только вы хотите).
Что касается iPhone, то помимо использования части .Net для мира iPhone пространство имен MonoTouch отображается в CocoaTouch, поэтому, если вы смущены, скажем, MonoTouch UIViewController, вы можете просто перепрыгнуть через к документам Apple на UIViewController. MonoTouch. Net-izes CocoaTouch, но он достаточно близко, что вы вряд ли ударились о стену (это также не попало бы, если бы вы использовали Xcode/ Objective-C). Он скользкий.
Титан отличается. Поскольку они пытаются (пытаются) создать слой абстракции, который позволяет вам писать одно и то же приложение для нескольких платформ, вы будете иметь дело с обычными недостатками: абсолютно разные API, потеря гибкости (то же самое можно сказать о MonoTouch, но не удаленно в той же степени), и в основном нужно изучить совершенно новую платформу (чего вы пытаетесь избежать, обойдя Xcode/ Objective-C/CocoaTouch, правильно?).
Я тоже ненавижу JavaScript, поэтому я буду склонен к Titanium. Но даже если бы это было не так, даже если бы я мог использовать язык, который мне действительно нравится - API не щекочут мою фантазию. Или ничего.
Независимо от того, какие инструменты вы выберете, вам придется узнать что-то о CocoaTouch. Будь то Xcode/ Objective-C, MonoTouch или Titanium, что-то сломается или пройдет все на вас, и вам в конечном итоге придется обратиться к документации CocoaTouch.
Если бы я рассказывал о развитии iPhone (что у меня есть, и что я буду делать снова), и если бы я обсуждал альтернативы инструментам Apple dev (что я буду), я все равно настоятельно призываю разработчиков по крайней мере, работать через несколько базовых приложений для iPhone, используя собственные инструменты. Это сделает вас лучшим разработчиком платформы. И вы можете использовать эту начальную фазу, чтобы определить, хотите ли вы использовать что-либо иное, кроме бесплатных битов, поставляемых Apple. Вы не можете. Я использую MonoTouch, потому что мне это нравится - не потому, что это необходимо.
Итак, суммируем несколько основных критериев:
-
Предпочтение (язык/рамки)
-
Устройства (вас интересуют не-iPhone-платформы или вы думаете когда-нибудь?)
-
Комфорт (если вам нравится и знать С# MUCH лучше, чем Objective-C, нет причин не идти с MonoTouch)
И не слушайте скептиков, если они фактически не использовали технику, о которой они говорят. Например, я читал о Титане, но я не испытываю этого - я просто знаю, что я не хочу иметь с этим ничего общего в связи с моими предпочтениями. Это не делает его "плохим" - просто чего-то, чего я не хочу в своей жизни.
Толпа Objective-C может быть впечатляюще ревностной. Несмотря на то, что в нем много открытых разработчиков, есть так, поэтому многие, которые думают, что Objective-C и Cocoa и бла-бла-бла, являются последними инструментами, которые Devkind когда-либо понадобится.
Игнорировать их.
Если вы беспокоитесь о поддержке, вот некоторые вещи, которые следует учитывать:
-
Apple, скорее всего, останется актуальной, поскольку именно они делают этот хлам.
-
MonoTouch, скорее всего, останется в силе - моноспектакли Mono отлично справились с Microsoft, и я не вижу причин, по которым они не будут делать то же самое с Apple. Я взорван тем, что они делают. И, несмотря на то, что MonoTouch был выпущен, например, пять минут назад, у них уже есть обновление для iPhone 3.1. Они серьезно относятся к этому, и я думаю, что они волшебные. Они эльфы Киблера мира дев. Они сидят в своих секретных слоях и кричат все, кому нравится (хорошо - не все), но никто больше даже не попытается сделать.
-
Титан либо станет неудобным унифицированным API для написания приложений для нескольких платформ, это полностью его собственная вещь, или он будет становиться все более и более раздробленным, поскольку возможности разных платформ расходятся. Да, это куча типичного кресла, боязливое будущее, смотрящее... Я должен был предварять этот пункт пули "Это мое мнение, что..." Если бы только был способ вернуться и изменить его.
/li >
Я закрою сейчас.
Пойдите с тем, что вам нравится. MonoTouch - "безопасная" альтернатива Apple. Я боюсь, что Титан собирается спуститься по тому же самому, что и многие другие технологии, - это супер-высокоуровневая платформа-абстракция-слой-материал-не-действительно-рабочая дорога. Но если вы делаете что-то простое, нет никакого вреда в том, чтобы дать ему шанс, особенно учитывая, что он свободен в течение бета-периода.
добро.
Действительно закрытие сейчас... Надеюсь, это поможет.