Подтвердить что ты не робот

Monotouch или Titanium для быстрой разработки приложений на IPhone?

Как разработчик .Net, я всегда мечтал о возможности разработки с моими существующими приложениями (С#) для Iphone.

Обе программы требуют установки Mac и Iphone Sdk.

Appcelerator Titanium - первое приложение, которое я пробовал, и оно основано на экспонировании некоторого встроенного api для iOS для javascript, чтобы их можно было вызывать с использованием этого языка.

Monotouch начинается с $399 за то, что он не может разворачиваться на Iphone, а не на симуляторе Iphone, в то время как титан свободен.

Monotouch (Monodevelop) имеет Ide, который в настоящее время отсутствует в Titanium (но вы можете использовать любой редактор, такой как Textmate, Aptana...)

Я думаю, что обе программы генерируют в конце собственное предварительно скомпилированное приложение (также, если я не уверен относительно размера финального приложения на Iphone, поскольку, как мне кажется, вызовы инфраструктуры .Net предварительно усложняются во время компиляции в Monotouch).

Я также не уверен в полном освещении всех Iphone api и функций.

Titanium обладает также преимуществом для разработки приложений для Android, но, как разработчик С#, я по-прежнему считаю, что Monotouch больше похож на Visual Studio.

Какой из них вы бы выбрали и каковы ваши впечатления от Monotouch и Titanium?

4b9b3361

Ответ 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. Я боюсь, что Титан собирается спуститься по тому же самому, что и многие другие технологии, - это супер-высокоуровневая платформа-абстракция-слой-материал-не-действительно-рабочая дорога. Но если вы делаете что-то простое, нет никакого вреда в том, чтобы дать ему шанс, особенно учитывая, что он свободен в течение бета-периода.

добро.

Действительно закрытие сейчас... Надеюсь, это поможет.

Ответ 2

Это интересные и интересные способы создания приложений для iPhone. Но для действительно быстрой разработки на родном iPhone лучшим вариантом будет бесплатный iPhone SDK и Xcode.

Честно говоря, самые трудные вещи для изучения - это возможности самих фреймворков, а не синтаксис языка. Но это проблема, с которой вам приходится сталкиваться в любом случае, поскольку эти IDE/Языки по-прежнему требуют, чтобы вы поняли некоторые из соглашений Cocoa (и Cocoa Touch).

Я не говорю это как сноб Cocoa/Objective-C, но если вы знаете C (который как С# dev вы делаете), на самом деле нет никакого препятствия для входа.

Кроме того, у вас будет доступ к тоннам учебников и пример кода, которые просто не будут доступны для этих переводчиков-переводчиков/IDE/языков.

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

Ответ 3

Я создал проект с открытым исходным кодом http://propertycross.com, который помогает разработчикам выбрать межплатформенную платформу для мобильных устройств, показывая одно и то же приложение, реализованное с помощью Сенча, Титан, Хамарин и многое другое. Этот проект позволяет легко сравнивать широкий спектр фреймворков с точки зрения опыта конечного пользователя, кода, IDE, опыта разработчиков и т.д....

Ответ 4

Мне нравится идея предоставления средств для быстрого захвата iPhone-разработчика с техно-людьми, которые уже знают. Я лично, как разработчик Java, использую iSPectrum (http://www.flexycore.com). Он также поставляется с IDE, отладчиком и т.д., Что делает его очень удобным для разработки, потому что это приносит пользу всем возможностям плагина Eclipse Java. Основываясь на Java, это также позволяет легко повторно использовать уже существующий код из других java-приложений, что может быть очень удобно, если Java присутствует практически на всех платформах (как на настольных, так и мобильных), кроме iPhone. Кроме того, он бесплатный для проектов с открытым исходным кодом.

Я бы предпочел рассмотреть такие решения, потому что мне не нравится идея вернуться к разработке в emacs:).

Ответ 5

Я знаю, что это старая тема, но в интересах оставаться в силе, похоже, MonoTouch и другие кроссплатформенные рамки будут запрещены в SDK 4.0. Ваша единственная "безопасная" ставка для написания приложений iPhone - это использовать XCode и Objective-C, по крайней мере, на данный момент.

Ответ 6

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

Ответ 7

Существует множество способов проникновения на устройство. Apple заявила в лицензии SDK, что единственным утвержденным способом доступа к устройству является C, С++, ObjectiveC и Javascript.

На данный момент появляется сообщение о том, что приложения, созданные на MonoTouch и Appcelerator Titanium, принимаются в App Store. Благодаря изменению лицензии, существует много страха, неопределенности и сомнений по этому вопросу. Apple испугала всех, кто не делает ObjectiveC.

Я бы предположил, что вы делаете то, что имеет для вас смысл как разработчик. Если вы знаете С# и .NET, вы должны пойти с MonoTouch. Если вы знаете ObjectiveC или платформу Mac, ObjectiveC - это, вероятно, путь. Если вы знаете X и это на iPhone, ну, X - это то, где я бы предложил сначала посмотреть.