2012-02-08 6 views
45

Мы стремимся разработать приложение для интенсивной работы с данными для мобильных устройств. Наша главная проблема в том,телефонный зазор против monotouch для приложения с интенсивным использованием данных

  1. Мы должны хранить довольно много данных о клиенте
  2. Клиент хочет приложение работать в автономном режиме
  3. Наш набор навыков очень много веб-разработки C# ASP.Net. Определенно не Objective C

Мы размышляли три возможности для разработчика

  1. веб-приложений с использованием HTML5 локального хранения Усиливая автономного кэша приложений. Мы находимся на пределе 5 МБ для локального хранилища, но это может быть до 2,5 МБ для определенных браузеров.

  2. Веб-приложение через PhoneGap для создания собственного приложения. Большое преимущество здесь в том, что мы можем использовать файловую систему для хранения. Нижняя сторона заключается в том, что ей придется пройти через App Store (особенно для iOS) - 30% -ный патч для подписки на приложение Apple для Apple

  3. Мы создаем приложение, используя MonoTouch для Android и iOS. Хорошо - C# и .Net мы можем это сделать. Плохо - нет Blackberry

Вопрос

Я изо всех сил, чтобы увидеть какие-либо подлинные преимущества использования MonoTouch над PhoneGap в данном случае. Кто они такие? Они такие?

В качестве примера в этом примере было бы действительно полезно сохранять данные в файловой системе, но я считаю, что разрыв в телефоне может сделать это через File object. Очевидно, monoTouch будет использовать System.IO.

Есть случаи, когда в MonoTouch есть определенные дополнительные функции - особенно функции, которые полезны для мобильных устройств, например. Функции геолокации или типа камеры ?. Или телефонные разговоры в значительной степени покрывают все это.

Чика Дополнительные вопросы

Есть ли другие варианты я пропустил или любые другие основные преимущества/недостатки для трех подходов я изложил, что я забыл о?

Спасибо за опыт каждого

+2

Вы можете взглянуть на AdobeFlex (https://www.adobe.com/de/products/flex.html). Который также утверждает, что способен скомпилировать исходные бинарные файлы iOS. – basti

+0

@chiffre. Спасибо, но какой язык используется. Это похоже на ActionScript, так что это вариант Flash. Это правильно? –

+0

Это ActionScript и MXML. Пока вы используете только предустановленные элементы управления, все довольно просто. Существует 60-дневная пробная версия FlashBuilder, поэтому вы можете просто попробовать.Я сам застрял немного, пытаясь создать собственные usercontrols/components. – basti

ответ

40

Мы только что закончили приложение с интенсивным использованием данных, написанное в MonoTouch. Приложение обращается к данным SAP через средний уровень и предоставляет это в приложении. Он также позволяет получать прямые обновления из приложения в SAP снова через один и тот же средний уровень.

В настоящее время мы переносим это на Windows Phone и Android с помощью MonoDroid.

Это мне потребовалось некоторое время, чтобы убедить босса, что MonoTouch был путь вперед, и мы попробовали несколько различных продуктов, в том числе заранее JQuery мобильный, ExtJS и Obj C.

время я пытался убедить его было время приобретения Attachmate и время от времени выглядело так, как MonoTouch был обречен. К счастью для нас (меня), Хамарин поднялся, как пресловутый Феникс от пламени, и они продолжали развивать Моно * к тому, что сегодня.

Как разработчик C# (и энтузиаст Mono) основной победой над Obj C или любым из HTML/JavaScript был тот факт, что я мог использовать C# для выполнения этой работы. Документация была очень хорошей, и когда doco не совсем отрезала ее (недавно была обновлена), сообщество это делало.

Канал IRC очень активен, сотрудники Xamarin и общинные евангелисты всегда готовы помочь или дать представление о проблеме. Как и списки рассылки.

Другим плюсом являются Эко-системы, которые растут вокруг МТ. MT.Dialog делает разработку табличного интерфейса UI абсолютным бризом по сравнению с эквивалентом XCode. Пара с этим .Net BCL, который, по общему признанию, является подмножеством на основе Silverlight, но в нем есть все: от Serialization, Email до криптографии и т. Д. Если .Net не покрывает его, или нет конкретного проекта Mono * , вы все равно можете использовать плагины ObjC с вашим кодом MT.

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

Для того, чтобы оставаться объективным, 2 минус MonoTouch для меня состоял в том, что вам все еще нужно читать ObjC (хотя, tbh, я не вижу в этом ничего общего ... Как «C#» разработчик, я должен быть в состоянии читать и писать множество языков в любом случае) и тот факт, что, исторически, MonoDevelop был немного ошибкой. Главные ошибки, похоже, были раздавлены, и, поскольку это проект с открытым исходным кодом, вы всегда можете исправить их и помочь остальным из нас!

Чтобы ответить на ваши проблемы:

  1. Мы должны хранить довольно много данных о клиенте

Используйте классы System.IO .NET, в C#. Если вы не уверены в них, MSDN имеет уйму примеров (MT скрывает реализацию IOS хранения файлов)

  1. Клиент хочет приложение работать в автономном режиме

все они могут сделать это, но На мой взгляд, приложение изначально будет чувствовать себя лучше.

  1. Наш набор навыков очень много веб-разработки C# ASP.Net. Определенно не Цель C

MonoTouch - это C# - играйте в свои сильные стороны и у вас есть приложение через несколько недель, а не месяцев!

Мои 2 пенни! Я бы без колебаний повторил один и тот же маршрут снова и снова.

+0

Хороший ответ. Один вопрос для вас, при переносе на MonoDroid, я думаю, вам нужно снова начать с кода пользовательского интерфейса? Но вы можете поделиться бизнес-логикой? – ColinE

+0

Если вы создадите решение с достаточным предвидением, вы сможете повторно использовать всю бизнес-логику между вашими приложениями. Между MonoDroid и MonoTouch есть несколько проектов с открытым исходным кодом с именем MD.Dialog и MT.Dialog соответственно - есть некоторое значительное повторное использование между этими двумя библиотеками, чтобы вы могли повторно использовать определенные части вашего интерфейса - не все, но с M * .Dialog вы можете написать свои собственные элементы в этом случае. – Darbio

+0

@JD Это отличный ответ. Спасибо за это, очень полезно подключиться к чьему-то реальному миру. На примере Файловой системы и System.IO - разрывы в телефоне не совпадают с файловым объектом. Есть ли заметные функциональные пробелы в разрыве телефона по сравнению с monoTouch? Это будет иметь практическое значение? Или действительно то преимущество, что вы используете C#, а не JavaScript для dev, что было бы проще (для нас как минимум). И, конечно, вы получаете подлинное родное приложение, а не веб-приложение в обертке. –

14

Я использовал PhoneGap на некоторое время теперь (на WP7), но не используется MonoTouch, но я опытный разработчик C#/Silverlight.

Несколько преимуществ MonoTouch:

  • Вы код приводит к родной UI, что дает лучший опыт на всех платформах
  • C# является «предприимчивый-сила» язык программирования.Он хорошо подходит для разработки приложений с интенсивным использованием данных.
  • Ваши текущие наборы навыков послужат вам здесь.
  • Доступно через магазин приложений numerous applications written with MonoTouch.

Некоторые недостатки MonoTouch:

  • Пишешь C# код снова с картинки API, поэтому в порт для Android, вам нужно будет иметь отдельный слой пользовательского интерфейса для MonoDroid.

Преимущества PhoneGap:

  • Это начинает выглядеть довольно зрелой структуры, с numerous applications written using PhoneGap по всему спектру поддерживаемых операционных систем.
  • Служба поддержки PhoneGap
  • Он использует HTML5, который многие считают технологией будущего. Это довольно широкое заявление, однако большинство крупных игроков (Microsoft, Adobe, ...) поддерживают его.

Недостатки PhoneGap:

  • Он использует JavaScript, вероятно, most misunderstood language in widespread use!
  • Пользовательский интерфейс написан в формате HTML. Несмотря на лучшие усилия таких рамок, как jQuery Mobile, он никогда не будет чувствовать себя родным.
  • Поскольку для обеспечения согласованного API у него есть специфический для платформы интерфейс, вы найдете проблемы, связанные с платформой. Тем не менее, я обнаружил, что команда PhoneGap исправляет их довольно быстро.

Таким образом, сложный выбор!

Лично я бы пошел по телефону, но не попытаться подражать внешнему виду какой-либо конкретной ОС, а создать собственный пользовательский интерфейс, который хорошо подходит для вашего приложения и будет использовать его на всех платформах.

+0

Благодарим вас за ответ. Очень информативно. Я спрашиваю о MonoTouch http://xamarin.com/monotouch не monCross - вы имеете в виду MonoTouch - это просто опечатка? –

+0

Да - MonoTouch :-) – ColinE

+0

@ColinE: Вы когда-нибудь видели приложение с интенсивным использованием данных с помощью PhoneGap? Мне также будет интересна тема, но все, что я могу найти, - это довольно «легкие» приложения. – basti

2

Появилась новая версия MonoTouch, которая вышла вчера (8 февраля 2012 г.) - 5.2. Множество новых функций, которые упрощают и ускоряют разработку приложений для iOS. Подробная информация о нем доступна по адресу: http://blog.xamarin.com/

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

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