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

StackOverflow https://stackoverflow.com/questions/1488402

Вопрос

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

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

Appcelerator Titanium был первым приложением, которое я попробовал, и оно основано на разоблачении некоторого нативного API iPhone на JavaScript, чтобы их можно было вызвать с помощью этого языка.

Monotouch начинается с $ 399 для Beeing, способного развернуться на iPhone, а не на симуляторе iPhone, а титановый - бесплатный.

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

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

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

Titanium также имеет преимущество для обеспечения разработки приложений Android, но, как разработчик AC#, я все еще нахожу Monotouch Experience более похож на Visual Studio One.

Какой из них вы бы выбрали и каков ваш опыт в монотуш и титане?

Это было полезно?

Решение

Как и любой вопрос о том, какой вопрос о том, что на Tool-или Platform или Language или Framework-OR-hime, он действительно должен сводиться к тому, что ты хочу.

Забудьте о том, что вы, если вы, получите, для разработки для этого платформы-то, что вы получите совет по оплате от своих позов. Если вы заинтересованы в обучении Objective-C, Xcode и Associated Apple Bits, то Goferit. Я сделал. Это было весело, но мой Интерес был в разработке приложений для iPhone. Изучение нового языка, структуры и IDE было просто бонусом (мне это нравится). Это также было необходимо, когда я начал.

Я работаю с Monotouch с момента его выпуска, и мне это нравится. я Предпочитаю C# для Objective-C, и мне нравится иметь доступ к подмножеству .NET (MONO) Framework, которую предоставляет Monotouch. Есть определенные вещи, которые просто легче сделать с .NET, чем какао (манипулирование строк, манипуляция с датами, что-либо XML и т. Д.).

Мне также нравится больше не иметь дело с подсчета ссылок. Я был избалован годами, когда мне не приходилось отслеживать ресурсы на этом уровне. Я не против убирать за собой, но я не хочу вручную делать то, что делает для меня автоматически любую другую современную платформу разработчика, которую я использовал. Кроме того, даже для опытных разработчиков Objective-C, отслока отсчета не является легким. Прокрутите вывод консоли OS X, чтобы увидеть, сколько приложений разбивается из -за проблем с управлением памятью (я знаю - это может произойти в основном с любым приложением, но гораздо проще сделать ошибки, которые приводят к этой ситуации, когда вы перегружены рабов. чье внимание было разрушено двенадцатью часами, если это и если это и иначе это и еще это и бла -бла -бла).

Я все еще использую Objective -C/Xcode - я действительно научился нравиться инструменты Apple. Я, честно говоря, чувствую, что они неловкие и немного загадочные, но все еще веселые.

Но ... тогда мне также нравится это:

public string SomeString { get; set; }

Чтобы сделать то же самое с Objective-C (на iPhone, в любом случае), требуется, чтобы вы объявили локальную переменную поддерживать свойство, записать объявление о свойстве, а затем использовать директиву «синтезировать», чтобы сгенерировать для вас свойство (в зависимости от На каких атрибутах свойства вы указываете, у вас может быть свойство, которое обертывает добычи и сеттеров, которые заботятся о вас, - в целом, это является Время, но C# Way-явный победитель здесь).

Это всего лишь один пример того, как Monotouch может облегчить вашу жизнь, особенно если вы привыкли к .net/java/python/другими языками, которые не требуют, чтобы вы загрязнены пальцами с помощью памяти (если вы не хотите) Анкет

Что касается iPhone-ansess, помимо того, что вы можете пройти часть .NET в мире iPhone, монотоховые пространства имен на кокоатуш, поэтому, если вы путаете, скажем, Monotouch Uiviewcontroller, вы можете просто запрыгнуть к документам Apple на uiviewcontroller. Monotouch .net-ize-size Cocoatouch, но он достаточно близко, чтобы вы вряд ли попадете в стену (это также не ударило бы, если бы вы использовали Xcode/Objective-C). Это гладко.

Титан отличается. Поскольку они пытаются (пытающийся), чтобы создать слой абстракции, который позволяет вам писать одно и то же приложение для нескольких платформ, вы будете иметь дело с обычными недостатками: совершенно разные API, гибкость потери (то же самое можно сказать о Monotouch, но не отдаленно к одинаковому степень), и в основном необходимость выучить целую новую платформу (чего вы пытаетесь избежать, пройдя вокруг XCode/Objective-C/CocoAtouch, верно?).

Я также ненавижу JavaScript, поэтому я буду предвзятым против титана. Но даже если бы это было не так - даже если бы я мог использовать язык, который мне нравится - API не щекочу меня. Или мое все.

Независимо от выбранных вами инструментов Dev, вы будут В конечном итоге приходится кое -что узнать о кокоате. Будь то Xcode/Objective-C, Monotouch или Titanium, что-нибудь собирается сломаться или пойти на вас, и вам в конечном итоге придется обратиться к документации Cocoatouch.

Если бы я говорил о разработке iPhone (что у меня есть, и что я буду делать снова), и если бы я обсудил альтернативы инструментам Dev Apple (что я буду), я бы все равно настоятельно поощрял разработчиков хотя бы работать Через несколько основных приложений для iPhone с использованием собственных инструментов. Это сделает вас лучшим разработчиком для платформы - период. И вы можете использовать эту начальную фазу, чтобы определить, даже вы даже хочу Использовать что-либо, кроме бесплатных яблочных битов. Вы можете нет. Я использовал Monotouch, потому что это нравится мне - не потому, что это необходимо.

Итак, подвести итоги несколько основных критериев:

  • Предпочтение (язык/рамки)

  • Устройства (вы заботитесь о платформах, не являющихся неэпхоном, или думаете, что когда-нибудь могли бы когда-нибудь?)

  • Комфорт (если вам нравится и знаете C# намного лучше, чем Objective-C, нет причин не идти с Monotouch)

И не слушайте скептиков, если они на самом деле использовал Технология, о которой они говорят. Например, я читал о Титане, но я не испытываю его - я просто знаю, что не хочу ничего общего с этим из -за моих предпочтений. Это не делает это «плохим» - просто то, чего я не хочу в своей жизни.

Толпа Objective-C может быть впечатляюще усердной. В то время как в нем много непредубежденных разработчиков, есть так, так что, так Многие, кто думает, что Objective-C и Cocoa и Blah Blah Blah являются последними Dev Tools Dools, когда-либо понадобится.

Игнорируй их.

Если вы беспокоитесь о поддержке, вот кое -что для рассмотрения:

  • Apple, вероятно, останется актуальной, поскольку они делают этот мусор.

  • Monotouch, вероятно, останется актуальным - Mono Peeps проделали удивительную работу, не отставая от Microsoft, и я не вижу причин, по которым они не будут делать то же самое с Apple. Я поражен тем, что они делают. И, несмотря на то, что Monotouch был выпущен, например, пять минут назад, у них уже есть обновление для iPhone 3.1. Они серьезно относятся к этому, и я думаю, что они волшебство. Они эльфы Киблера мира. Они сидят в своих секретных слоях и выпускают вещи, которые все (хорошо - не все), но никто другой даже не пытался сделать.

  • Titanium либо станет неловким унифицированным API для написания приложений для нескольких платформ, которые полностью являются своими собственными, либо станет все более и более расколотым, поскольку возможности различных платформ расходятся. Да, это куча типичных боевых кресел в будущем ... Я должен был предварительно предварительно сформировать этот пункт «Это мое мнение, что ...», если бы только был способ вернуться и изменить его.

Я заткнулся сейчас.

Идите с тем, что вам нравится. Monotouch - это «безопасная» альтернатива вещам Apple. Я боюсь, что титан пойдет вниз по тем же старым упс-упс-это-супер-высокий уровень платформы-подразделения, не очень хорошо работающую дорогу, которую есть так много других технологий. Но если вы делаете что -то простое, нет никакого вреда в том, чтобы дать ему шанс, особенно учитывая, что это бесплатно в период бета -версии.

Пособие

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

Другие советы

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

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

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

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

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

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

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

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

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

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

Есть множество способов попасть на устройство. Apple заявила в лицензии SDK, что единственный утвержденный способ попасть на устройство - через C, C ++, Objectivec и JavaScript.

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

Я бы посоветовал вам сделать все, что имеет для вас наибольший смысл как разработчик. Если вы знаете C# и .net, вы должны пойти с Monotouch. Если вы знаете Objectivec или Mac Platform, Objectivec, вероятно, является способом. Если вы знаете x и это на iPhone, то x я бы посоветовал посмотреть в первую очередь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top