О да, время летит быстро :)
К сожалению, от Mono Android достаточно быстро я ушел в сторону простой разработки под Android на java.
Могу поделиться теми данными, которыми я располагаю (их мало, но лучше, чем ничего).
1) Скорость работы приложений сопоставима. Я имею в виду такое себе сферическое приложение в вакууме с десятком активити, сервисом, минимумом вычислений.
2) Размер apk. Вот тут моно проигрывает из-за необходимости тянуть за собой несколько либ. Готовый apk весит на порядок больше, чем apk собранный из java проекта. Собственно это и сыграло решающую роль.
Эта информация чуть менее, чем годичной давности, так что она могла уже и устареть.
Теперь же для классического Android + java очень много замечательных 3rd party либ (таких как ActionBarSherlock или HoloEverywhere). Для Моно, к сожалению, такого нет — комьюнити развито слабее :(
К сожалению, я и сам пока не располагаю подобной информацией. Визуально различий в скоростях я не заметил. Я сейчас как раз занимаюсь изучением вопросов производительности Mono Android. Как только появится какая-либо интересная информация (а она появится), я ею обязательно поделюсь. И скорее всего я вынесу ее в отдельный топик.
Не совсем. Писать приложения «для себя», с использованием эмулятора, можно бесплатно. Платить прийдется только тогда, когда есть планы продукт разместить на одном из маркетов. Для размещения в Android Market/Amazon Appstore приложения написанного на Mono Android, от лица компании, потребуется Enterprise версия ($999). Для размещения от собственного имени достаточно версии Professional ($399).
Это — плата за удобство. Хотите писать на c#? Выкладывайте денежки.
Если кратко, то можно значительно сократить время разработки не переписывая один и тот же код многократно (для разных платформ). Ну и удобство для c# разработчиков, которые получили возможность писать приложения для Android используя привычный язык.
Более развернутые ответы также есть в комментариях выше.
Модель находится в общей папке. В соответствующих solution есть отдельный проект (Mono for Android Class Library либо Silverlight Class Library). В этих проектах добавлены линки на файлы. Вообще линки на файлы — незаслуженно забытая вещь. Например, с их помощью можно создавать unit tests логики приложение для тех же Mono Android проектов.
Из-за того, что в пакет, кроме всего прочего, входят сборки для Mono Android.
Например, в этом пакете директория assemblies содержит:
Mono.Android, Mono.Security, mscorlib, System.Core, System, System.Xml, System.Xml.Linq
Можно значительно сократить время разработки не переписывая один и тот же код многократно. Чтобы не быть голословным, приведу пример из собственной практики. У меня сейчас есть приложения, написанные для Windows Phone 7 и Android. Оба приложения используют паттерн MVC. Так вот, оба приложения используют одну и ту же модель. В ней действительно не нужно менять ни строчки кода.
Раз затронули MonoDevelop и мак, могу добавить, что по моим личным впечатлениям Mono Android работает лучше именно на маке.
Почему?
1. Опять же по личным ощущениям, гораздо быстрее работает deploy на эмулятор. На Windows я достаточно долго подбирать сочетание версии проекта/версии Android на эмуляторе, для более-менее приемлемого времени deploy (остановился на версии 2.1 для проекта и 2.1.1 для эмулятора).
2. (самое главное) Корректно работает отладка. Не знаю почему, но в Visual Studio в отладка работает невероятно медленно. Практически всегда нет возможности даже увидеть значение переменной на breakpoint. Вместо значения, выдается сообщение о том, что время ожидания истекло.
Так что когда мне нужно что-либо отладить, я перехожу на мак.
К сожалению, от Mono Android достаточно быстро я ушел в сторону простой разработки под Android на java.
Могу поделиться теми данными, которыми я располагаю (их мало, но лучше, чем ничего).
1) Скорость работы приложений сопоставима. Я имею в виду такое себе сферическое приложение в вакууме с десятком активити, сервисом, минимумом вычислений.
2) Размер apk. Вот тут моно проигрывает из-за необходимости тянуть за собой несколько либ. Готовый apk весит на порядок больше, чем apk собранный из java проекта. Собственно это и сыграло решающую роль.
Эта информация чуть менее, чем годичной давности, так что она могла уже и устареть.
Теперь же для классического Android + java очень много замечательных 3rd party либ (таких как ActionBarSherlock или HoloEverywhere). Для Моно, к сожалению, такого нет — комьюнити развито слабее :(
Это — плата за удобство. Хотите писать на c#? Выкладывайте денежки.
Более развернутые ответы также есть в комментариях выше.
Например, в этом пакете директория assemblies содержит:
Mono.Android, Mono.Security, mscorlib, System.Core, System, System.Xml, System.Xml.Linq
Почему?
1. Опять же по личным ощущениям, гораздо быстрее работает deploy на эмулятор. На Windows я достаточно долго подбирать сочетание версии проекта/версии Android на эмуляторе, для более-менее приемлемого времени deploy (остановился на версии 2.1 для проекта и 2.1.1 для эмулятора).
2. (самое главное) Корректно работает отладка. Не знаю почему, но в Visual Studio в отладка работает невероятно медленно. Практически всегда нет возможности даже увидеть значение переменной на breakpoint. Вместо значения, выдается сообщение о том, что время ожидания истекло.
Так что когда мне нужно что-либо отладить, я перехожу на мак.