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

Appcelerator Vs. MonoTouch - Какой из них лучше всего подходит для .NET-разработчика?

Я разработчик .NET с 10-летним опытом разработки веб-приложений и мобильных приложений. Я ищу, чтобы перейти в iPhone (и, возможно, Android). Я смотрю на два продукта:

Appcelerator Titanium (http://www.appcelerator.com/) а также MonoTouch (http://monotouch.net/)

Мне нравится MonoTouch, потому что он стоит в сообществе Mono развития и это С#. Говоря, что Appcelerator выглядит очень прямо, используя HTML и Javascript, и нацеливает Android тоже (что обгоняет iPhone).

Приложения, которые я ищу для разработки, представляют собой бизнес-приложения с вводом данных, синхронизацией с бэк-офисом и т.д.

Может ли кто-нибудь дать свое мнение о pro/con об использовании этих инструментов или каких-либо опытов. Меня очень интересуют любые мысли!

Спасибо заранее, Киран

4b9b3361

Ответ 1

Привет, вот мое личное мнение,

Я тоже некоторое время был в сети .Net, когда iPhone запустил возможность создавать собственные приложения, это вызвало мое внимание, и я действительно пытался изучить objc, я взял 2 книги и начал пытаться и пытаться и пытаться как в течение месяца, а затем я оставил программирование iPHone из-за того, что вам приходилось делать много вещей, чем на .NET, была линия, например, GC.

Когда Miguel de Icaza запустил MonoTouch, я попробовал, и я понял, что большая часть моего ранее сделанного кода была полностью функциональной (я всегда пытался отделить код ui от бизнес-кода), и это действительно точка .NET. на iPhone, чтобы принести большую часть вашей уже сделанной бизнес-логики на устройство.

Также на objc вы не найдете ничего подобного LINQ или ключевому слову var, потребляя веб-сервисы на MonoTouch всего за несколько кликов и т.д.

Если вы хотите настроить таргетинг на платформу Android, также есть MonoDroid (monodroid.net), который выйдет в конце этого года в стабильном выпуске, вы можете попробовать попробовать прямо сейчас в бета-состоянии. Также, если вы хотите настроить таргетинг на Mac OSX, есть MonoMac. Таким образом, вы можете делиться классами lib между этими 3 платформами без хлопот, не говоря уже о том, что он будет работать и на окнах и наоборот (когда это возможно).

Единственное, что вам нужно будет беспокоиться о его интерфейсе, но большая часть вашей бизнес-логики должна работать. здесь приведен полный список сборников .NET, поддерживаемых в MonoTouch http://monotouch.net/Documentation/Assemblies, а также MonoTouch предоставляет привязку С#/CIL ко всем API CocoaTouch.

Также поддержка команды MonoTouch потрясающая, вы можете просто попасть на IRC и задать вопрос, и на него сразу же будет отправлен список рассылки:)

Мне очень нравится MonoTouch, я знаю, что ни один язык не идеален для всех задач, а Objective-C не является исключением.

Ответ 2

Прежде всего, я никогда не работал с MonoTouch, но работал с Titanium Mobile с Appcelerator. Мои ответы будут в основном касаться этого.

Причина выбора фреймворка мобильного приложения (на мой взгляд) не должна основываться только на том факте, что вы не хотите изучать язык, если только вы не делаете это для себя и для удовольствия. Есть и другие преимущества, и есть и недостатки.

Downsides

Вы не можете все. Эти рамки (MonoTouch/Droid, Titanium Mobile, Rhodes Mobile и т.д.) Будут раскрывать только часть возможностей через API. Вам будет запрещено использовать их. Перед запуском проекта проверьте, есть ли все, что вам нужно, и хорошо работает.

Еще один главный недостаток для меня в том, что вы всегда будете зависить от третьей стороны. Ребята из Appcelerator делают отличную работу, но вы не сможете работать с новыми бета-функциями iOS по мере выхода новой бета-версии. На самом деле вам, возможно, придется ждать несколько дней/недель после того, как окончательные новые версии ОС будут работать с новыми функциями и даже протестировать ваши приложения. Это может измениться в будущем, если они будут быстрее поддерживать ОС. Для iOS 4 "многозадачность" не может быть использована в день 1 доступности FINAL iOS 4 (возможно, для платных клиентов), если я хорошо помню. Возможно, MonoTouch/Droid быстрее. Appcelerator, вероятно, будет быстрее, так как eBay/Paypal вложил в него 9M $.

А теперь, что произойдет, если третья сторона закрывает свои двери? Вы должны подумать об этом. Что будет с вашей работой в будущем? Appcelerator open sourced Titanium Mobile, так что есть вероятность, что сообщество обойдется и продолжит его развитие.

В Titanium Mobile нет MVC или около того, вам нужно организовать свой код с помощью кода. (может быть недостатком или нет)

TDD: в Titanium нет встроенных инструментов тестирования, но вы можете использовать сторонний инструмент под названием Helium (OSS из Appcelerator парень, Кевин Уиннери).

Так зачем их использовать?

Кросс-платформа! По крайней мере, для Titanium Mobile: одна база кода. С Tianium у вас будет один проект для вашего iPhone и Android-приложения. Одна база кода. Бизнес-логика будет одним и тем же кодом. Будет некоторая работа в пользовательском интерфейсе (помните, что Android фрагментирован, разрозненное разрешение экрана, процессоры и т.д.). Скоро вы сможете добавить BlackBerry к этому (в закрытой бета-версии в течение нескольких месяцев) и универсальному двоичному файлу iOS. Вероятно, другие платформы позже. Вы уже можете сделать iPad-приложение, но на этот раз вам нужно сделать отдельный проект, без универсального бинарного файла (например, есть Walkaround), но это должно быть в следующем выпуске.

Кривая обучения: если вы знаете, как кодировать Javascript (TiMob) или .Net(это ваш случай), вы будете делать приложения очень быстро.

Я слышал от опытного разработчика iOS, который также работает с Titanium, что гораздо быстрее сделать приложение с титаном, чем с ObjC.

только iOS?

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

Удачи!

Ответ 3

Я использую MonoTouch уже год и опубликовал более 70 приложений. Они все продают, и я могу производить их намного быстрее, чем я мог в Obj-C, на которых я довольно хорош. В .NET просто не печатается. Рамка .NET делает больше для вас.

Если ваше время ничего стоит, используйте .NET.

Ответ 4

Вы серьезно относитесь к программированию на iPhone, это то, что вы захотите сделать снова, как только эта задача будет выполнена? Видите ли вы какую-то выгоду лично для вас, продвинете ли вы свою карьеру? Если НЕТ, обратитесь к подрядчику. Если ДА, изучите Objective C.

Существует много опыта, который вы можете использовать с .Net, но я думаю, что вы недооцениваете задачу, если думаете о ней как о вопросе о том, какой язык использовать. Есть все проблемы с iPhone, которые нужно преодолеть - установка экрана сшивки, автоматическая загрузка 2x изображений для экрана сетчатки, как получить максимальную экспозицию в магазине, манипулируя "доступной" датой - все, что никто не знает в первый раз приложение.

Кроме того, убедитесь, что почти все книги, видеоролики и другие ресурсы покажут вам, как делать вещи в Objective C. Я действительно не думаю, что использование инструмента, позволяющего использовать язык, который вы уже знаете, действительно поможет, язык это легкая часть.

Ответ 5

Я тоже не знаю, как MonoTouch и PhoneGap. Вот почему:

Телефонная задержка - это то, что вы используете, если вы натолкнулись на время и вам нужно быстро вытащить кросс-платформенное приложение и можете жить с чем-то, что совсем не похоже на настоящий Маккой, вы можете узнать, предполагая, что вы уже являетесь javascript и CSS whiz.

MonoTouch теоретически будет чем-то, что вы сразу поймете. ИСКЛЮЧАЮТ, что вы не будете правильно следовать документации, если вы не изучите ObjC сначала, потому что ObjC - достаточно уникальный язык, который, если вы этого не знаете, будет выглядеть как тарабарщина.

Однако хорошая новость заключается в том, что Objective C легко является самым легким из семейства C, предполагая, что вы придерживаетесь рамки ObjC. по большей части вам действительно нужно знать, что вызов типа [Object DoActionWithVariable: x AndVariable: y] преобразуется в нечто вроде Object.DoAction(WithVariable = x, AndVariable = y) на другом языке и, возможно, потратит немного время, считывающее его модель управления памятью и т.д.

Но вы не можете пропустить обучение ObjC/ Cocoa и рассчитывать на производительность в MonoTouch. Его хорошая структура и все, но в конечном итоге вы будете тратить большую часть своего времени на мост Objective C/Cocoa.

Таким образом, ответ на вопрос "что лучше узнать для dot.net probrammer, Appcelerator vs MonoTouch" является "Objective C". Поскольку альтернативы MonoTouch довольно хромают, и если вы хотите сделать моноточ правильно, первым шагом будет изучение Objective C.

И как только вы это сделаете, вы, возможно, просто решите пойти на родной путь. По мере того как он качается Cocoa, это очень маленькая среда. Черт возьми, я бы оценил версию Mac там с dot-net и Borlands (?) VCL.