Мы только что закончили очень интенсивное приложение, написанное на 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 был немного глючным. Основные ошибки, похоже, были устранены, и, поскольку это проект с открытым исходным кодом, вы всегда можете их исправить и помочь остальным из нас!
Чтобы ответить на ваши вопросы:
- Нам придется хранить довольно много данных на клиенте
Используйте классы System.IO .Net в C #. Если вы не уверены в этом, у MSDN есть множество примеров (MT скрывает реализацию iOS для хранения файлов)
- Клиент хочет, чтобы приложение работало в автономном режиме
они все могут это сделать, но приложение Native, по моему мнению, всегда будет чувствовать себя лучше.
- Наш набор навыков очень похож на веб-разработку C # ASP.Net. Определенно не объективно C
MonoTouch - это C # - проявите свои сильные стороны и запустите приложение в течение нескольких недель, а не месяцев!
Мои 2 копейки! Я без колебаний выберу один и тот же маршрут снова, снова и снова.