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

Разрыв телефона и монотот для приложения с интенсивным использованием данных

Мы стремимся разработать приложение, интенсивно использующее данные для мобильных устройств. Наша центральная проблема -

  • Нам нужно будет хранить на клиенте довольно много данных
  • Клиент хочет, чтобы приложение работало в автономном режиме
  • Наш набор навыков - это очень много веб-разработки С# ASP.Net. Определенно не Цель C

Мы подумали о трех возможностях dev

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

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

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

Вопрос

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

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

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

Cheeky Дополнительные вопросы

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

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

4b9b3361

Ответ 1

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

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

Мне потребовалось некоторое время, чтобы убедить начальника, что MonoTouch - это путь вперед, и мы предварительно пробовали несколько разных продуктов, включая jQuery mobile, ExtJS и Obj C.

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

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

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

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

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

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

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

  • Нам нужно будет хранить на клиенте довольно много данных

Используйте классы System.IO.Net в С#. Если вы не уверены в этом, в MSDN есть примеры примеров (MT скрывает реализацию хранилища файлов iOS)

  • Клиент хочет, чтобы приложение работало в автономном режиме

они могут все это сделать, но, по моему мнению, приложение Native всегда будет лучше.

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

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

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

Ответ 2

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

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

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

Несколько недостатков MonoTouch:

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

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

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

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

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

В заключение, жесткий выбор!

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

Ответ 3

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

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