Программист, веб-дизайнер
0,0
рейтинг
4 мая 2014 в 22:50

Разработка → Впечатления о Xamarin Studio в Windows



Примерно год назад у меня появилась идея освоить разработку мобильных приложений. Поскольку изучение методик под каждую платформу отдельно (native) меня не впечатлило, большое внимание решил уделить проекту Mono и освоить кроссплатформенную разработку на C#.

Предисловие

Сперва прочитал ряд полезных статей на хабре: подробно о Xamarin, кроссплатформенная разработка для мобильных с Xamarin, пишем первое приложение на Mono Android. Воодушевившись, установил Monodroid-плагин к Visual Studio и попробовал портировать на Android несколько старых проектов мини-игр, оставшихся со времен XNA на ПК (в этом помог движок Monogame — синтаксически совместимая с XNA реализация под разные платформы).

Все, конечно, заработало, но не скажу, что результаты меня сильно впечатлили. Компиляция и запуск на внешнем устройстве занимали около 3-4 минут (на эмуляторе — еще дольше), отладка из-под VS была ужасной, установка breakpoint-а грозило зависанием минуты на 2-3, пошаговое выполнение практически не представлялось возможным. В общем, единственное, что тогда сильно выручило — портируемая мною игра функционировала нормально на XNA и была отлажена на ПК, при портировании на Android необходимость в тестировании была минимальной.

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

Впечатления

Однако желание писать C#-программы не только на ПК, но и на мобильные устройства, никак не оставляло. Подогревали интерес и регулярные новости о Xamarin, между делом смотрел отличный раздел документации на официальном сайте. Волей-неволей задвался вопросом: зачем подробно изучать Java и Objective-C, если есть Xamarin с такими грандиозными возможностями? Вот так примерно год спустя после прошлой попытки, в апреле 2014 я решил вернуться к мобильным разработкам на C#, установить свежую версию Monodroid и фирменную IDE — Xamarin Studio.

Xamarin Studio start screen

Честно скажу, изменения почувствовались сразу. Видно, что за последний год разработчики сильно продвинулись, уделив внимание комфортному использованию их продукта. Компиляция и запуск на устройстве занимает ~20-30 секунд, отладка работает как часы.

Отладка в Xamarin Studio

Дизайн IDE определенно имеет свою эстетику. Те, кто хоть раз пользовался Xcode, поймут о чем речь. Xamarin Studio разрабатывался в первую очередь для Mac, лишь после был портирован на Windows с сохраненим оформления.

Есть и приятная подсветка синтаксиса, и множество других хороших мелочей, например, присутствуют все приятные «фичи» VS вроде автоматического выстраивания отступов, автодополнения кода и подсказок. При этом Xamarin Studio, в отличие от VS, загружается практически мгновенно.

Настроек довольно много, но все нацелено на максимальную простоту. Подробно я с ними не разбирался, по-быстрому поменял лишь некоторые комбинации клавиш и посмотрел, как настраивается выстраивание отступов (по умолчанию включено, что открывающаяся фигурная скобка ставится в конце предыдущей строки, как в Java, а не в привычной для C# новой).

Некоторые из настроек






При всех несомненных плюсах есть один минус: отсутствие ReSharper-а. Ко всему хорошему быстро привыкаешь, к сожалению, это оказалось существенным, учитывая что в прошлом, при ПК-разработках на C# я без него не обходился. Встроенные возможности рефакторинга и подсказок Xamarin Studio оказались не настолько удобными, как в VS+ReSharper.

Поэтому решил запустить Visual Studio с обновленным плагином от Xamarin (поддерживаются VS2010, VS2012, VS2013; кстати, Xamarin всегда спрашивает, в формате какой версии VS сохранять *.sln). На удивление результаты тоже порадовали, поддержку VS разработчики тоже существенно улучшили (компиляция стала занимать меньше времени, и с отладкой дела наладились).

Настройки проекта в Xamarin Studio и Visual Studio



Вообще, прослеживается явная тенденция максимально упрощать типовые задачи. Появился UI-builder для Android и iOS приложений, доступный как из Xamarin Studio, так и для Visual Studio. Также есть визуальные средства для работы с *.xml и возможности удобной загрузки и установки плагинов за пару кликов. К приятным мелочам можно отнести и средства для отправки проекта на репозитарий и обновления.

Выводы

Xamarin Studio — очень многообещающая попытка создания кроссплатформенной IDE для разработки на iOS и Android. Возможно, пользователей Eclipse это не впечатлит, но меня, как человека, преимущественно работавшего в Visual Studio, подобная альтернатива вполне устраивает. Обновления выходят регулярно, как по Stable, так и по Alpha/Beta каналам.

Создавать и настраивать проект удобнее в Xamarin Studio, там же имеет смысл добавлять дополнительное содержимое и формировать *.xml-ы. Для рутинного процесса написания объемного кода можно использовать VS, особенно если требуется ReSharper, но и Xamarin Studio можно быстро привыкнуть, особенно если когда-либо работал в Xcode. В итоге удалось довести прошлогодний проект простенькой Android-игры на Monogame до конца, сборку и подписывание *.apk осуществлял из-под Xamarin Studio встроенными средствами.

Будни разработки под Android в среде Xamarin Studio и Visual Studio


Качество фотографий не очень, ибо фоткал телефон на другой телефон, где камера не слишком хорошая)

Дорогие хабравчане! Разрабатывал ли кто-либо iOS-приложения в Xamarin Windows?
Интересно послушать ваши впечатления.
Андрей @Dageron
карма
17,2
рейтинг 0,0
Программист, веб-дизайнер
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (17)

  • +1
    Конешно же) Любой труд приветствуется, а если и ёще приносит удовольствие автору от разработки, то интересно узнать глубже именно о процессе разработки (сам являюсь андроид разработчиком, пишу на джаве, но всегда было интересно, как работает кроссплатформеность в ксамарине)
  • 0
    Расскажите, платными возможностями Xamarin пользовались, или еще нет?
    • 0
      Плагин к VS вообще то входит только в состав платной версии, если, разве что автор не использовал какую-нибудь таблетку.
  • +4
    Разрабатываем игру под ios/android/wp8, и как показала практика гораздо удобнее оказалось иметь четвертой платформой обычную винду.
    Нормальный отладчик, Resharper, быстрая компиляция и запуск. Когда нужно пилить платформенные фишки, для андройда вполне удобно сидеть под VS, для IOS как показала практика лучше сидеть в Xamarin Studio на маке, ибо приложения сложнее пары формочек уже либо не запускаются через механизм Mac Build Host, либо отлаживаются адово медленно.
  • +2
    Дизайн IDE определенно имеет свою эстетику. Те, кто хоть раз пользовался Xcode, поймут о чем речь. Xamarin Studio разрабатывался в первую очередь для Mac, лишь после был портирован на Windows с сохраненим оформления.
    Вообще говоря, изначально это был форк SharpDevelop, виндовой IDE.
  • 0
    У меня остался лёгкий негатив от глюков среды разработки. Появляются на двух ПК с Windows, на одном триальная версия, на другом бесплатная. Огорчают плавающие баги:

    • Подсветка. Может пропадать в конкретном файле совсем, может работать криво (начинаться на середине одного оператора и заканчиваться в середине другого). Лечится переоткрытием файла или перезапуском IDE.
    • Автодополнение. Может отваливаться напрочь или показывать не все поля/методы. Лечится переоткрытием файла или перезапуском IDE.
    • Дизайнер layoute'ов (Android) может перестать обновлять превью при изменение кода. Как лечится, думаю, уже догадываетесь.
    • В документации указано, что для активации триала нужно попасть в менюшку, которая автоматически появляется, если попытаться в бесплатной версии попытаться скомпилировать приложение, выходящее за рамки бесплатной версии, например, больше 64 килобайт. На практике эта менюшка появляется не всегда (показывал, как активировать для пары знакомых). От чего зависит -= не ясно, соответствующий вопрос на форуме встречал — ответа нет.

    Будь это бесплатный продукт, меня бы это всё не так сильно огорчало, но тут цена в 300$ минимум.
  • –7
    все товарищи проплаченно…
  • +1
    Дорогие хабравчане! Разрабатывал ли кто-либо iOS-приложения в Xamarin Windows?

    То же было бы интересно послушать, т.к. для сборки и публикации приложения всё-равно нужен мак. Или можно обойтись виртуалкой/хакинтошем?
    • +1
      Виртуалкой можно обойтись.
  • +1
    Эх, если бы не стоимость…
  • 0
    Странно что скорость запуска и билда отличаются в разных IDE. Xamarin запускает процесс, с которым и происходит всё общение (через stdin\stdout). Собственно сама IDE (и плагины к ней) ничего особенного не делают — только отдают в этот процесс команды, а он уже творит всю магию…
  • 0
    Тема интересная. Хотя сильно огорчает стоимость Xamarin — 300 долларов в год за каждую платформу и только за попробовать и/или некоммерческие приложения как-то перебор. Для игр вообще слабо смотрится на фоне бесплатного Unity 3d.
    • 0
      Ммм, вроде 300$ за все платформы всё-таки?
      • 0
        Indie
        $299 / year
        Per platform, per developer

        store.xamarin.com/
        • +1
          Черт. Точно.
  • 0
    Сечас пытаюсь писать в xamarin studio под маком для iOS, до этого писал в xCode. Лично мое мнение, что без опыта с нативными тулами будет непросто разобраться, очень уж чудён SDK если только .net в «копилке».
  • 0
    С конца 2013 (iOS 7):
    • Привязали лицензии к компьютерам и платформам;
    • Средний ответ на баг репорт в багзилле увеличился с 2 недель (много) до месяцев;
    • Несмотря на Objective Sharpie, с подключением сторонних библиотек и их работоспособностью глюки остались;
    • Отладка на устройствах с Android и iOS всё чаще отваливается.

    Итог краток: Xamarin, ты кто такой? Давай, до свидания! :)
    Респект Touch Instinct, которые продолжают мучаться.
    Надеюсь, что Microsoft купит, сделает бесплатным, поддержит развитие QA и Tech. support.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.