разрыв между телефоном и monotouch для приложения, интенсивно использующего данные - PullRequest
45 голосов
/ 08 февраля 2012

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

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

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

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

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

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

Вопрос

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

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

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

Нахальные дополнительные вопросы

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

Спасибо всем за опыт

Ответы [ 3 ]

40 голосов
/ 08 февраля 2012

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

Мы портируем это на Windows Phone и Android, используя MonoDroid.

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

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

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

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

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

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

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

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

  1. Нам придется хранить довольно много данных на клиенте

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

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

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

  1. Наш набор навыков очень похож на веб-разработку C # ASP.Net. Определенно не объективно C

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

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

14 голосов
/ 08 февраля 2012

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

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

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

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

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

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

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

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

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

В общем, трудный выбор!

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

2 голосов
/ 09 февраля 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...